* Mark LogEntryAdminMixin method output as safe where required
Use format_html to provide conditional escaping and mark_safe functionality
* Unwrap function call to prevent py27 and py34 errors
* Add changes for django 2.0
Made the following changes to ensure compatibility with django 2.0:
1. Replaced function calls to `is_authenticated()` with reference to
property `is_authenticated`.
2. Added try/except call to import `django.core.urlresolvers` (now
called `django.urls`.
Also added an `... as ...` statement to ensure that references in the
code to `urlresolvers` don't need to be changed.
3. Fixed calls statement of `on_delete` arg to all ForeignKey
fields.
Note that previously a kwarg was acceptable, but this is now a
positional arg, and the selected `on_delete` method has been
retained.
* Update tox tests and consequentual changes
Updated tox.ini to also test django 2.0 on python 3+. Some changes made
to previous commits required to ensure all tests passed:
- Added `compat.py` to have a `is_authenticated()` function to check
authentication.
This was necessary as the property/method call for `is_authenticated`
is no compatible between django 1.8 (LTS) and 2.0.
Changed AuditLogMiddleware to call this compatibility function instead
of the django built-ins as a result.
- Changes made to `auditlog/models.py` to apply kwargs to both `to=` and
`on_delete=` for consistency of handling in all version tested.
Incorrect django version specified for tox.ini. Now fixed.
* Add 'on_delete' kwarg to initial migration
Added and re-arranged 'on_delete' and 'to' kwargs in initial migration
to ensure compatbility with later versions of Django.
Also included updated manifest with changes required due to django 2.0
work.
* Add TestCase for compat.py
Added simple test case for compat.py file.
* Changes follow code review 2017-12-21
* More changes following code review 2017-12-28
1. Added detailed commentary to `compat.py` to ensure reason why
`is_authenticated()` compatibility function is needed
2. Changed `hasattr` to `callable` in compat.is_authenticated()
3. Fixed typo in migration 0001 to use correct `on_delete` function
Fixes#93 - Add 'changes_display_dict' property to 'LogEntry' model to display diff in a more human readable format
'changes_display_dict' currently handles fields with choices, long textfields and charfields, datefields, timefields, and datetimefields. Supports `django-multiselectfield` with choices and Postgres's ArrayField with choices.
Textfields and Charfields longer than 140 characters are truncated with an ellipsis appended.
Date, Time and DateTime fields are rendered according to `L10N`, or if turned off fall back on Django settings defaults for DATE_FORMAT, TIME_FORMAT and DATETIME_FORMAT.
A new kwarg was added to 'AuditlogModelRegistry' called 'mapping_fields'. The kwarg allows the user to map the fields in the model to a more human readable or intuitive name. If a field isn't mapped it will default to the `verbose_name` as defined on the model or the Django default `verbose_name`. Partial mapping is supported, all fields do not need to be mapped to use the feature.
* Add django-multiselectfield test dep
* Add psycopg2 test dep
* Add postgres testing database and router
* Add postgres support to travis builds
* Add support for multiple databases. LogEntry saves to same database of the model its associated to
* If any literal evals fail default to None
* Add support for Postgres ArrayField in changes_display_dict
* Revert to old travis image while they are fixing issues with it
* Update docs
* Add full test coverage
* Ignore new testing related files
* Add tox testing, coverage and codecov integration.
Drop Django 1.9 testing as support officially ended in April,
Add Django 1.11 testing, the new LTS version of Django
Add testing against Django for each versions supported python versions.
Remove Django from requirements, install handled through tox for tests and
regular repositories do not need us to install Django for them or enforce
a django version, they can choose to use a supported version or not.
* Update for python 3.6 tests
Fixes#110 to add support for UUID primary keys in related many to many querysets in the `get_for_objects()` method.
Forces queryset evaluation in `get_for_objects()` to cache the queryset, reducing additional db queries.