mirror of
https://github.com/jazzband/django-auditlog.git
synced 2026-03-16 22:20:26 +00:00
* Add locale files * Add Korean translations * Update translation files using LLM * Add missing gettext wrappers for UI strings * Add i18n support for audit log table headers * Add justfile for i18n workflow * Add `.mo` binary file * Update CHANGELOG.md * Add create-locale command to justfile for new language setup * Replace justfile with Makefile
18 KiB
18 KiB
Changes
Next Release
Improvements
- feat: Add audit log history view to Django Admin. (#743)
- Fix Expression test compatibility for Django 6.0+ (#759)
- Add I18N Support (#762)
3.2.1 (2025-07-03)
Improvements
- Confirm Django 5.2 support. (#730)
Fixes
- fix:
AUDITLOG_STORE_JSON_CHANGES=Truewas not respected during updates and deletions. (#732)
3.2.0 (2025-06-26)
Improvements
- feat: Support storing JSON in the changes field when
AUDITLOG_STORE_JSON_CHANGESis enabled. (#719) - feat: Added
AUDITLOG_MASK_CALLABLEsetting to allow custom masking functions (#725)
3.1.2 (2025-04-26)
Fixes
- CI: Pine twine and setuptools to fix release
3.1.1 (2025-04-16)
Fixes
- CI: Add required pkginfo to release workflow
3.1.0 (2025-04-15)
Improvements
- feat: Support masking field names globally when
AUDITLOG_INCLUDE_ALL_MODELSis enabled viaAUDITLOG_MASK_TRACKING_FIELDSsetting. (#702) - feat: Added
LogEntry.actor_emailfield. (#641) - Add Python 3.13 support. (#697)
- feat: Added
LogEntry.remote_portfield. (#671) - feat: Added
truncateoption toauditlogflushmanagement command. (#681) - feat: Added
AUDITLOG_CHANGE_DISPLAY_TRUNCATE_LENGTHsettings to keep or truncate strings ofchanges_display_dictproperty at variable length. (#684) - Drop Python 3.8 support. (#678)
- Confirm Django 5.1 support and drop Django 3.2 support. (#677)
Fixes
- fix: Use sender instead of receiver for
m2m_changedsignal ID to prevent duplicate entries for models that share a related model. (#686) - Fixed a problem when setting
Value(None)inJSONField(#646) - Fixed a problem when setting
django.db.models.functions.Now()inDateTimeField(#635) - Use the default manager instead of
objectsto support custom model managers. (#705) - Fixed crashes when cloning objects with
pk=None(#707)
3.0.0 (2024-04-12)
Fixes
- Fixed logging problem related to django translation before logging (#624)
- Fixed manuall logging when model is not registered (#627)
Improvements
- feat: Excluding ip address when
AUDITLOG_DISABLE_REMOTE_ADDRis set to True (#620)
3.0.0-beta.4 (2024-01-02)
Improvements
- feat: If any receiver returns False, no logging will be made. This can be useful if logging should be conditionally enabled / disabled (#590)
- Django: Confirm Django 5.0 support (#598)
- Django: Drop Django 4.1 support (#598)
3.0.0-beta.3 (2023-11-13)
Improvements
- Python: Confirm Python 3.12 support (#572)
- feat:
thread.localreplaced withContextVarto improve context managers in Django 4.2+
Fixes
- fix: Handle
ObjectDoesNotExistin evaluation ofobject_repr(#592)
3.0.0-beta.2 (2023-10-05)
Breaking Changes
- feat: stop deleting old log entries when a model with the same pk is created (i.e. the pk value is reused) (#559)
Fixes
- fix: only fire the
post_logsignal when the log is created or when there is an error in the process (#561) - fix: don't set the correlation_id if the
AUDITLOG_CID_GETTERisNone(#565)
3.0.0-beta.1 (2023-08-29)
Breaking Changes
- feat: Change
LogEntry.changefield type toJSONFieldrather thanTextField. This change include a migration that may take time to run depending on the number of records on yourLogEntrytable (#407)(#495) - Python: Drop support for Python 3.7 (#546)
- feat: Set
AuditlogHistoryField.delete_relatedtoFalseby default. This is different from the default configuration of Django'sGenericRelation, but we should not erase the audit log of objects on deletion by default. (#557)
Improvements
- Changes the view when it has changes in fields
JSONField. TheJSONField.encoderis assigned tojson.dumps. (#489) - feat: Added support for Correlation ID. (#481)
- feat: Added pre-log and post-log signals. (#483)
- feat: Make timestamp in LogEntry overwritable. (#476)
- feat: Support excluding field names globally when
AUDITLOG_INCLUDE_ALL_MODELSis enabled. (#498) - feat: Improved auto model registration to include auto-created models and exclude non-managed models, and automatically register m2m fields for models. (#550)
Fixes
- fix: Audit changes to FK fields when saved using
*_idnaming. (#525) - fix: Fix a bug in audit log admin page when
USE_TZ=False. (#511) - fix: Make sure
LogEntry.changes_dict()returns an empty dict instead ofNonewhenjson.loads()returnsNone. (#472) - fix: Always set remote_addr even if the request has no authenticated user. (#484)
- fix: Fix a bug in getting field's
verbose_namewhen model is not accessible. (508) - fix: Fix a bug in
serialized_datawith F expressions. (508) - fix: Make log entries read-only in the admin. (#449, #556) (applied again after being reverted in 2.2.2)
2.2.2 (2023-01-16)
Fixes
- fix: revert #449 "Make log entries read-only in the admin" as it breaks deletion of any auditlogged model through the admin when
AuditlogHistoryFieldis used. (#496)
2.2.1 (2022-11-28)
Fixes
- fix: Make log entries read-only in the admin. (#449)
- fix: Handle IPv6 addresses in
X-Forwarded-For. (#457)
2.2.0 (2022-10-07)
Improvements
- feat: Add
ACCESSaction toLogEntrymodel and allow object access to be logged. (#436) - feat: Add
serialized_datafield onLogEntrymodel. (#412) - feat: Display the field name as it would be displayed in Django Admin or use
mapping_fieldif available #428 - feat: New context manager
disable_auditlogto turn off logging and a new settingAUDITLOG_DISABLE_ON_RAW_SAVEto disable it during raw-save operations like loaddata. #446 - Python: Confirm Python 3.11 support (#447)
- feat: Replace the
django.utils.timezone.utcbydatetime.timezone.utc. #448
Fixes
- fix: Foreign key values are used to check for changes in related fields instead of object representations. When changes are detected, the foreign key value is persisted in
LogEntry.changesfield instead of object representations. (#420) - fix: Display
createdtimestamp in server timezone (#404) - fix: Handle port in
remote_addr(#417) - fix: Handle the error with AttributeError: 'OneToOneRel' error occur during a
PolymorphicModelhas relation with other models (#429) - fix: Support search by custom USERNAME_FIELD (#432)
2.1.1 (2022-07-27)
Improvements
- feat: Display the diff for deleted objects in the admin (#396)
- Django: Confirm Django 4.1 support (#406)
Fixes
- fix: Pin
python-dateutilto 2.7.0 or higher for compatibility with Python 3.10 (#401)
2.1.0 (2022-06-27)
Improvements
- feat: Add
--before-dateoption toauditlogflushto support retention windows (#365) - feat: Add db_index to the
LogEntry.timestampcolumn (#364) - feat: Add register model from settings (#368)
- Context manager set_actor() for use in Celery tasks (#262)
- Tracking of changes in many-to-many fields (#309)
Fixes
- Fix inconsistent changes with JSONField (#355)
- Disable
addbutton in admin ui (#378) - Fix n+1 query problem(#381)
2.0.0 (2022-05-09)
Improvements
- feat: enable use of replica database (delegating the choice to
DATABASES_ROUTER) (#359) - Add
mask_fieldsargument inregisterto mask sensitive information when logging (#310) - Django: Drop 2.2 support.
django_jsonfield_backportis not required anymore (#370) - Remove
default_app_configconfiguration (#372)
Important notes
- LogEntry no longer save to same database instance is using
1.0.0 (2022-01-24)
Final
Improvements
- build: add classifiers for Python and Django
- build: replace django-jsonfield with django-jsonfield-backport (#339)
- ci: replace Travis with Github Actions
- docs: follow Jazzband guidelines (badge, how to contribute, code of conduct) (#269)
- docs: add a changelog
- docs: remove note about maintenance
- docs: update the release strategy
- docs: use the latest django LTS (3.2) to build docs
- feat: add a db index to
LogEntry'sactionfield (#236) - feat: add the content type to
resourcefield - feat: add the
actorusername to search fields in admin - refactor: lint the code with Black and isort
- tests: init pre-commit config
- Python: add 3.9 and 3.10 support, drop 3.5 and 3.6 support
- Django: add 3.2 (LTS) and 4.0 support, drop 3.0 and 3.1 support
Fixes
- docs: replace
MIDDLEWARE_CLASSESwithMIDDLEWARE - Remove old django (< 1.9) related codes
- Replace deprecated
smart_text()withsmart_str() - Replace
ugettextwithgettextfor Django 4 - Support Django's save method
update_fieldskwarg (#336) - Fix invalid escape sequence on Python 3.7
Alpha 1 (1.0a1, 2020-09-07)
Improvements
- Refactor the
auditlogflushmanagement command - Clean up project structure
- Python: add 3.8 support, drop 2.7 and 3.4 support
- Django: add 3.0 and 3.1 support, drop 1.11, 2.0 and 2.1 support
Fixes
- Fix field choices diff
- Allow higher versions of python-dateutil than 2.6.0
0.4.8 (2019-11-12)
Improvements
- Add support for PostgreSQL 10
0.4.7 (2019-12-19)
Improvements
- Improve support multiple database (PostgreSQL, MySQL)
- Django: add 2.1 and 2.2 support, drop < 1.11 versions
- Python: add 3.7 support
0.4.6 (2018-09-18)
Features
- Allow
AuditlogHistoryFieldto block cascading deletes (#172)
Improvements
- Add Python classifiers for supported Python versions (#176)
- Update README to include steps to release (#185)
Fixes
- Fix the rendering of the
msgfield with Django 2.0 (#166) - Mark
LogEntryAdminMixinmethods output as safe where required (#167)
0.4.5 (2018-01-12)
Improvements
Added support for Django 2.0, along with a number of bug fixes.
0.4.4 (2017-11-17)
Improvements
- Use Tox to run tests
- Use Codecov to check to coverage before merging
- Django: drop 1.9 support, add 1.11 (LTS) support
- Python: tests against 2.7, 3.4, 3.5 and 3.6 versions
- Add
python-dateutilto requirements
Fixes
- Support models with UUID primary keys (#111)
- Add management commands package to setup.py (#130)
- Add
changes_display_dictproperty toLogEntrymodel to display diff in a more human readable format (#94)
0.4.3 (2017-02-16)
Fixes
- Fixes cricital bug in admin mixin making the library only usable on Django 1.11
0.4.2 (2017-02-16)
As it turns out, haste is never good. Due to the focus on quickly releasing this version a nasty bug was not spotted, which makes this version only usable with Django 1.11 and above. Upgrading to 0.4.3 is not only encouraged but most likely necessary. Apologies for the inconvenience and lacking quality control.
Improvements
- Models can be registered with decorators now
Fixes
- A lot, yes, really a lot, of fixes for the admin integration
- Flush command fixed for Django 1.10
0.4.1 (2016-12-27)
Improvements
- Improved Django Admin pages
Fixes
- Fixed multithreading issue where the wrong user was written to the log
0.4.0 (2016-08-17)
Breaking changes
- Dropped support for Django 1.7
- Updated dependencies - please check whether your project works with these higher versions
New features
- Management command for deleting all log entries
- Added admin interface (thanks, @crackjack)
Improvements
- Django: add 1.10 support
Fixes
- Solved migration error for MySQL users
0.3.3 (2016-01-23)
Fixes
- fix
unregistermethod LogEntry.objects.get_for_objectsworks properly on PostgreSQL- Added index in 0.3.2 no longer breaks for users with MySQL databases
Important notes
- The
object_pkfield is now limited to 255 chars
0.3.2 (2015-10-19)
New functionality
- Django: support 1.9
Improvements
- Enhanced performance for non-integer primary key lookups
0.3.1 (2015-07-29)
Fixes
- Auditlog data is now correctly stored in the thread.
0.3.0 (2015-07-22)
Breaking changes
- Django: drop out-of-date versions support, support 1.7+
- South is no longer supported
New functionality
- Workaround for many-to-many support
- Additional data
- Python: support 2.7 and 3.4
Improvements
- Better diffs
- Remote address is logged through middleware
- Better documentation
- Compatibility with django-polymorphic
0.2.1 (2014-07-08)
New functionality
- South compatibility for
AuditlogHistoryField
0.2.0 (2014-03-08)
Although this release contains mostly bugfixes, the improvements were significant enough to justify a higher version number.
Improvements
- Signal disconnection fixed
- Model diffs use unicode strings instead of regular strings
- Tests on middleware
0.1.1 (2013-12-12)
New functionality
- Utility methods for using log entry data
Improvements
- Only save a new log entry if there are actual changes
- Better way of loading the user model in the middleware
0.1.0 (2013-10-21)
First beta release of Auditlog.