Metadata-Version: 2.1
Name: django-tracking-fields
Version: 1.3.6
Summary: A Django app allowing the tracking of objects field in the admin site.
Home-page: https://github.com/makinacorpus/django-tracking-fields
Author: Yann Fouillat (alias Gagaro)
Author-email: yann.fouillat@makina-corpus.com
License: GPLv3+
Platform: UNKNOWN
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
License-File: LICENSE

===============
Tracking Fields
===============

.. image:: https://travis-ci.org/makinacorpus/django-tracking-fields.png
    :target: https://travis-ci.org/makinacorpus/django-tracking-fields

.. image:: https://coveralls.io/repos/makinacorpus/django-tracking-fields/badge.png?branch=master
    :target: https://coveralls.io/r/makinacorpus/django-tracking-fields?branch=master


A Django app allowing the tracking of objects field in the admin site.

Requirements
------------

* Django 2.2: See older versions for earlier version of Django.
* django-cuser: Only if you want to track which user made the modifications.

Quick start
-----------

1. Add "tracking_fields" to your INSTALLED_APPS settings.

2. Add the ``tracking_fields.decorators.track`` decorator to your models with the fields you want to track as parameters::

     @track('test', 'm2m')
     class MyModel(models.Model):
         test = models.BooleanField('Test', default=True)
         m2m = models.ManyToManyField(SubModelTest, null=True)

3. Your objects are now tracked. See the admin site for the tracking information.

4. If you want to track who does the changes, please install the ``django-cuser`` app.

5. You can also track fields of related objects::

     class MyModel(models.Model):
         test = models.BooleanField('Test', default=True)

     @track('related__test')
     class MyOtherModel(models.Model):
         related = models.ForeignKey(MyModel)


6. You can run the tests with ``tox`` (make sure to have ``django-cuser`` installed).

Upgrades from 0.1 or 1.0.1
==========================

The change to UUID is a mess to do in a migration. The migrations have thus been squashed. You can either alter your fields by hand and do a fake migration afterward or remove your tracking fields tables and run migrations again::

    ./manage.py migrate --fake tracking_fields zero
    ./manage.py migrate tracking_fields

FAQ
===

* Why does my relationship change create two events ?

  Please see https://docs.djangoproject.com/en/1.7/ref/models/relations/#direct-assignment


AUTHORS
=======

* Yann FOUILLAT (alias Gagaro) <yann.fouillat@makina-corpus.com>

|makinacom|_

.. |makinacom| image:: http://depot.makina-corpus.org/public/logo.gif
.. _makinacom:  http://www.makina-corpus.com


=======
LICENSE
=======

* GPLv3+


=========
Changelog
=========

1.3.6 (2022-03-16)
------------------

* Fix error on admin related to filtering content from deleted user
* Fix deprecation warnings for Django 5.0.
* Django 3.2 and 4.0 compatibility

1.3.5 (2022-03-09)
------------------

* Increase max_length of TrackedFieldModification.field from 40 to 250

1.3.4 (2021-11-24)
------------------

* Bulk create TrackedFieldModification

1.3.3 (2021-10-25)
------------------

* Fix tracking of models with uuid ids

1.3.2 (2021-09-01)
------------------

* Fix related event when there is no backward relation.

1.3.1 (2021-02-19)
------------------

* Added `get_object_model_verbose_name`.

1.3.0 (2021-02-19)
------------------

* Added `get_object_model` on `TrackingEvent` to be able to get model class in templates.
* Fix deprecation warnings for Django 4.0.
* Drop support for Django 2.0 and 2.1.

1.2.1 (2020-10-20)
------------------

* Deferred fields are not tracked to avoid additional requests.

1.2.0 (2020-05-07)
------------------

* fix 'str' object has no attribute 'name' #6
* Django 3.0 compatibility
* Drop support for Django 1.11

1.1.2 (2019-09-11)
------------------

* added serialization for xworkflow StateWrapper

1.1.1 (2019-01-25)
------------------

* Optimize admin user lookup

1.1.0 (2019-01-24)
------------------

* Compatibility with Django 1.11 to 2.1
* Compatibility droped for earlier versions

1.0.6
-----

* Fix unicode error in admin with Python 3.4 and django_cuser

1.0.5
-----

* Fix MANIFEST

1.0.4
-----

* Order TrackingEvent by -date

1.0.3
-----

* Fix MANIFEST

1.0.2
-----

* Include migrations in MANIFEST

1.0.0
-----

* Initial release


