# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

<!-- towncrier release notes start -->

## [4.0.86] - 2024-06-02
### Feature
- More confortable copytoclipboard filter

## [4.0.85] - 2024-06-01
### Feature
- Improvements to link filter and added codenerix-copy-to-clipboard directive


## [4.0.84] - 2024-06-01
### Feature
- Added new Angular filter 'link_blank'


## [4.0.83] - 2024-05-31
### Feature
- Angular QR filter and helpers to generate QR codes
- Authentication backend (OTPAuth) and middleware (OTPAuthMiddleware) for OTP authentication


## [4.0.82] - 2024-05-30
### Feature
- Translations


## [4.0.81] - 2024-05-30
### Features
- Added parent_pk with the main PK of the Detailed Object and is available in Sublists inside GenDetail view
- Added static_controllers_row loading for Sublists
- Brought to template tabs_js_obj as an object
- GenUpdate and GenDetail includde in Django's context self_pk with the actual PK of the object


## [4.0.80] - 2024-05-29
### Bugfix
- Resolved bug on GenLog while deleting all elements in a model and the object can not be represented


## [4.0.79] - 2024-05-29
### Bugfix
- Limit Log.object_repr to 200 characters to avoid errors when saving logs with long object_repr


## [4.0.78] - 2024-05-29
### Feature
- MODELINFO (info argument) in  __searchF__ has the attribute __searchQ_serach with the string that is being searched in the main search box


## [4.0.77] - 2024-05-29
### Bugfix
- Corrected partial for automatic Log rendering

## [4.0.76] - 2024-05-29
### Bugfix
- Corrected save() arguments for GenLog and GenRemoteLog to standarize


## [4.0.75] - 2024-05-28
### Feature
- Support autodiscovery for templates, partials and controllers using group names

## [4.0.74] - 2024-05-28
### Bugfix
- Style for bottom page marker for GenList has been fixed

## [4.0.73] - 2024-05-23
### Feature
- Support for keyboard event to submit & new when alt+enter is pressed in a form

## [4.0.72] - 2024-05-23
### Feature
- On GenDetails, inside groups, cols for each field maybe None so it won't be shown in the DetailView

## [4.0.71] - 2024-05-23
### Feature
- Allow get_foreignkey() processor to understand lists and querysets as an answer

## [4.0.70] - 2024-04-09
### Changed
- New translations
### Removed
- Managemente command 'check_dependencies' has been removed

## [4.0.69] - 2024-04-08
### Changed
- Removed all depencendies on django-codenerix lib.debugger library which is now DEPRECATED
- Library codenerix-lib.debugger will be used instead

## [4.0.68] - 2024-04-04
### Feature
- Properties are now usable on GenList inside __fields__() method
### Added
- A readonly=True attribute has been added to GenList as an alias for linkadd=False and linkedit=False
- A readonly=True attribute has been added to GenDetails as an alias for linkedit=False, linkdelete=False
- A readonly=True attribute has been added to GenModify as an alias for linkdelete=False, linksavenew=False and linksavehere=False

## [4.0.67] - 2024-04-01
#### Changed
- requirements updated

## [4.0.66] - 2024-04-01
### Feature
 - On lists, it will show an hyphen symbol when a multi elements cell is empty


## [4.0.65] - 2024-03-18
### Feature
 - Avoid mypy warning when validating GENPERMISSIONS attribute in settings


## [4.0.64] - 2024-03-18
### Feature
 - Typing and error detection added on GenList authorization system


## [4.0.63] - 2024-03-06
### Bugfixes
 - Export feature will process all registers and not only those selected by the user on the screen


## [4.0.62] - 2024-03-05
### Bugfixes
 - Repair Django 4.x compatibility


## [4.0.61] - 2024-03-05
### Bugfixes
 - Repair Django 4.x compatibility


## [4.0.60] - 2024-03-04
### Bugfixes
 - Repair StaticSelect widget to process properly Django 5.x choices detecting BlankChoiceIterator as a list object instead a queryset
 - Repair get_success_url() method to work correctly on Django 5.x and stay compatible with Django 4.x


## [4.0.59] - 2024-02-14
### Features
 - Verified to work with Django 5.x
### Bugfixes
 - Repair export lists in any format when having None columns and complex columns with dictionaries inside them


## [4.0.58] - 2024-02-14
### Bugfixes
 - Repair exporting lists in XLS format


## [4.0.57] - 2024-01-30
### Bugfixes
 - Limited requirements to Django < 5 since CODENERIX is not yet compatible


## [4.0.56] - 2024-01-30
### Bugfixes
 - Improved JSON encoding with DjangoJSONEncoder in a few places where no other encoder was used


## [4.0.55] - 2024-01-26
### Bugfixes
 - Added CustomFilters dependency to AngularJS so the user Custom Filters will work as expected


## [4.0.55] - 2024-01-24
### Features
 - Requirements updated

## [4.0.54] - 2024-01-24
### Bugfixes
 - Little bug corrected when tryin to parse dates on Export to Excel


## [4.0.53] - 2024-01-23
### Features
 - Suppot for new export formats like: CSV, JSON, JSONL and BSON (all of them disabled by default, use export_csv=True, export_json=True, export_jsonl=True, export=bson=True to enable them on GenList views)
 - __searchF__ filtering function support lists or tuples for choices (before was only lists)

### Bugfixes
 - Export to Excel now works with newer versions of openpyxl


## [4.0.52] - 2024-01-18
### Features
 - Added support for 'request', 'user', 'codenerix_uuid' and 'codenerix_request' to be able to use it on GenDetail while using limitQ on GenList


## [4.0.51] - 2024-01-11
### Bugfixes
- On GenList 'default_rows_per_page' now behaves as expected


## [4.0.50] - 2024-01-09
### Bugfixes
- Undeclared variable produces a warning on the console, I just prevented the error from happening


## [4.0.49] - 2024-01-09
### Features
- GenList now support 'autorefresh' attribute to refresh the list automatically after a given time in miliseconds


## [4.0.48] - 2023-12-29
### Bugfixes
- Rewritten the places where class attributes 'codenerix_request' and 'codenerix_uuid' are set
- Moved the class attributes 'codenerix_request' and 'codenerix_uuid' in bodybuilder to the if statement where objects are processed not fixed values from optimized queries


## [4.0.47] - 2023-12-29
### Features
 - Class attributes 'codenerix_request' and 'codenerix_uuid' are now generally available in all classes that inherit from GenBase, GenList, GenCreate, GenUpdate, GenDelete, GenDetail, GenForeignKey, CodenerixModel, CodenerixForm & CodenerixModelForm


## [4.0.46] - 2023-12-18
### Features
 - Added a new method decorator to control group access to a method.


## [4.0.45] - 2023-12-15
### Bugfixes
 - Basic types where being converted to string during lists answer generation. Now int, float and bool won't be converted to string and they will be returned as they are.


## [4.0.44] - 2023-12-15
### Features
 - At AngularJS userbehaviour answer is copied to the $scope


## [4.0.43] - 2023-12-13
### Features
 - Added a new filter to support rounding of values in AngularJS templates (Usage: round:8 & codenerix:round:7)
 - Translations to Spanish


## [4.0.42] - 2023-12-13
### Features
 - Added SearchFAutoFilter to helper library so it makes quicker to build serachF filters


## [4.0.41] - 2023-12-12
### Bugfixes
 - Correction on permission system


## [4.0.40] - 2023-12-12
### Bugfixes
 - Added missing auth for superuser to allow evertyhing without checks


## [4.0.39] - 2023-12-07
### Bugfixes
 - Allow detail view to show functions as a fields when the function is not a custom function from the user that has a first argument as a request. This is commonly used for get_XXXXX_display() functions.


## [4.0.38] - 2023-12-07
### Bugfixes
 - Prevent GenList from raising a Http404 error when the DetailView is not found.


## [4.0.37] - 2023-12-07
### Features
 - Improved permission system to provide better information when a user is denied access to a resource.
- Improved documentation for permission and permission_group in GenList


## [4.0.36] - 2023-11-30
### Features
 - Added support for towncrier


## [4.0.36] - 2023-11-27
### Added
- Enabled access to request object in Forms and Models in addition to Views (Django) using self.codenerix_request
### Changed
- CODENERIX UUID is now accesible by self.codenerix_uuid in Views, Forms and Models


## [4.0.35] - 2023-11-27
### Added
- Support for CODENERIX UUID on submirts
- Passes through CODENERIX UUID to views, forms and models
### Changed
- The way that UserBehaviour is logged, now it uses CODENERIX UUID instead of a generic UUID
- Windows focus is also sent as an UserBehaviour variable


## [4.0.34] - 2023-11-24
### Fixed
- Added UUID field to UserBehaviour


## [4.0.33] - 2023-11-23
### Fixed
- On UserBehaviour it prevents Angular JS from removing the last slash on URL


## [4.0.32] - 2023-11-23
### Added
- Add support for UserBehaviour automatic logger, that logs into the server the actual Location of the user to /userbehaviour (documentation can be found at /codenerix/static/codenerix/js/notify.js). This funtionality is enabled only if cnf_user_behaviour is set to true in JS environment.


## [4.0.31] - 2023-11-23
### Fixed
- GenLog, corrected a bug that prevented data gathering from related fields when deleting an object.


## [4.0.30] - 2023-11-10
### Fixed
- Bug that prevented forms from behaving as expected on invalid form fields


## [4.0.29] - 2023-11-07
### Fixed
- Important error on GenLog that prevent Log dependent models from saving data as expected


## [4.0.28] - 2023-10-27
### Added
- Addedm missing migration file for LOG model

### Fixed
- Fixed some bugs in management commands


## [4.0.27] - 2023-10-27
### Fixed
- multiform have renamed their form_valid() and form_invalid() methods to multiform_valid() and multiform_invalid()


## [4.0.26] - 2023-10-27
### Added
- Full update to existing code
- Clean up and PEP8 standardization
- get_object() queryset argument added
- delete() method in models improved to support extra fields

### Fixed
- Several bugs repaired


## [4.0.25] - 2023-10-23
### Added
- Added new feature to GenModify to enable 'return_invalid_json' that will make the form to return a 409 Conflict HTTP ERROR with a json including invalid fields and the reason why they are invalid.
- Support for data injection from views into Angular forms
- Few of PEP8


## [4.0.24] - 2023-05-12
### Fixed
- PEP8 refactoring and a quick mypy type revision
- Skipped version 4.0.23


## [4.0.22] - 2023-02-23
### Fixed
- Improved genmail to support better SSL and clean_memcache changed to clean_caches and now it supports cleaning several cache entries in configuration using settings.CACHES


## [4.0.21] - 2023-02-21
### Fixed
- Memcache CMD correction


## [4.0.20] - 2023-01-26
### Fixed
- Support for Pyinstruments added


## [4.0.19] - 2022-11-09
### Fixed
- meunify upgraded for URLs since _ is not recommended on SEO, it will be replaced with -


## [4.0.18] - 2022-11-07
### Fixed
- Resolved bug "AttributeError: type object 'Meta' has no attribute 'extend'"


## [4.0.17] - 2022-10-27
### Added
- Extend system on forms
- Translations


## [4.0.16] - 2022-10-21
### Fixed
- Resolved bug "type object 'Meta' has no attribute 'widgets'"


## [4.0.15] - 2022-10-21
### Added
- CODENERIX will respect the widgets added by the user in the Meta section of the forms


## [4.0.14] - 2022-09-12
### Fixed
- On forms resolves "'EmailValidator' object has no attribute 'domain_whitelist'" which is deprectated on Django >= 4.0.6


## [4.0.13] - 2022-09-12
### Fixed
- On GenList frontend, it prevents empty cells when rendering columns which renders lists with duplicated entries


## [4.0.12] - 2022-08-16
### Added
- Added support on DynamicSelects to allow Angular JS query the selected element details
- Style cleanup on widgets.py


## [4.0.11] - 2022-07-14
### Fixed
- Added missing dependency over codenerix_lib package


## [4.0.10] - 2022-07-11
### Changed
- Push all sites to prevent BUG CVE-2022-34265: SQL injection on Trunc() and Extract()


## [4.0.9] - 2022-06-18
### Changed
- Dependency system simplified for setup.py and restricted to Django>=4.0.1 (Python 2.x not supported anymore)


## [4.0.8] - 2022-06-18
### Fixed
- Repaired GenForm that was preventing rendering of forms on specific situations


## [4.0.7] - 2022-06-18
### Fixed
- "authjson_details" is using DjangoJSONEncoder for json.dumps(), which prevents authjson_details from failing on newer Django.


## [4.0.6] - 2022-06-13
### Changed
- AUTHENTICATION_DEBUG improved debugging output


## [4.0.5] - 2022-06-12
###  Added
- Support for AUTHENTICATION_DEBUG in config which helps debugging Authentication problems


## [4.0.4] - 2022-05-27
### Changed
- Template filters static64, media64 and file64 to simple_tags for easier usage

## [4.0.3] - 2022-05-27
### Added
- New templatetags in codenerix_special library for templates: static64, media64 and file64 to serve files from disk as base64 text. Intended to embed binary data in templates.


## [4.0.2] - 2022-05-18
### Added
- Added missing folder in last published version in pypy


## [4.0.1] - 2022-05-17
### Added
- Django 4.x is fully supported

### Fixed
- Resolved XLS export problems with float
- FileAngularInput repaired on details when adding new entry
