* 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
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.
to remove the following Django Warning:
site-packages/auditlog/models.py:6: RemovedInDjango19Warning:
django.contrib.contenttypes.generic is deprecated and will be
removed in Django 1.9. Its contents have been moved to the
fields, forms, and admin submodules of
django.contrib.contenttypes.
from django.contrib.contenttypes import generic