Skip to main content

history compare for django-reversion

Project description

========================
django-reversion-compare
========================

**django-reversion-compare** is an extension to `django-reversion <https://github.com/etianen/django-reversion/>`_ that provides a history compare view to compare two versions of a model which is under reversion.

Comparing model versions is not a easy task. Maybe there are different view how this should looks like.
This project will gives you a generic way to see whats has been changed.

Many parts are customizable by overwrite methods or subclassing, see above.

------------
installation
------------

Just use:

::

pip install django-reversion-compare

setup
=====

Add **reversion_compare** to **INSTALLED_APPS** in your settings.py, e.g.:

::

INSTALLED_APPS = (
'django...',
...
'reversion', # https://github.com/etianen/django-reversion
'reversion_compare', # https://github.com/jedie/django-reversion-compare
...
)

usage
=====

Inherit from **CompareVersionAdmin** instead of **VersionAdmin** to get the compare feature.

admin.py e.g.:

::

from django.contrib import admin
from reversion_compare.admin import CompareVersionAdmin

from my_app.models import ExampleModel

class ExampleModelAdmin(CompareVersionAdmin):
pass

admin.site.register(ExampleModel, ExampleModelAdmin)

customize
=========

It's possible to change the look for every field or for a entire field type.
You must only define a methods to your admin class with this name scheme:

* ``"compare_%s" % field_name``

* ``"compare_%s" % field.get_internal_type()``

If there exist no method with this name scheme, the ``fallback_compare()`` method would be used.

example for specify a compare method for a model field by name:

::

class YourAdmin(CompareVersionAdmin):
def compare_foo_bar(self, obj_compare):
""" compare the foo_bar model field """
return "%r <-> %r" % (obj_compare.value1, obj_compare.value2)

----
test
----

We ship a simple test project. To use this, do this steps:

::

$ cd path/to/django-reversion-compare/reversion_compare_test_project/
django-reversion-compare/reversion_compare_test_project$ ./reset.sh # creates test.db3 with syncdb and run createsuperuser
django-reversion-compare/reversion_compare_test_project$ ./manage.py runserver --traceback

See, also: `reversion_compare_test_project <http://github.com/jedie/django-reversion-compare/tree/master/reversion_compare_test_project>`_

-----------
screenshots
-----------

----

|django-reversion-compare_v0_1_0-01.png|

.. |django-reversion-compare_v0_1_0-01.png| image:: http://www.pylucid.org/media/pylucid.org/screenshots_PyLucid/django-reversion/django-reversion-compare_v0_1_0-01.png

----

|django-reversion-compare_v0_1_0-02.png|

.. |django-reversion-compare_v0_1_0-02.png| image:: http://www.pylucid.org/media/pylucid.org/screenshots_PyLucid/django-reversion/django-reversion-compare_v0_1_0-02.png

----

|django-reversion-compare_v0_1_0-03.png|

.. |django-reversion-compare_v0_1_0-03.png| image:: http://www.pylucid.org/media/pylucid.org/screenshots_PyLucid/django-reversion/django-reversion-compare_v0_1_0-03.png

----

---------
changelog
---------

* v0.1.0 - 08.05.2012:

* First release

* v0.0.1 - 08.05.2012:

* collect all compare stuff from old "diff" branch

* see also: `https://github.com/etianen/django-reversion/issues/147 <https://github.com/etianen/django-reversion/issues/147>`_

-----
Links
-----

+-----------------+----------------------------------------------------------+
| IRC | `#pylucid on freenode.net`_ |
+-----------------+----------------------------------------------------------+
| Github | `http://github.com/jedie/django-reversion-compare`_ |
+-----------------+----------------------------------------------------------+
| Python Packages | `http://pypi.python.org/pypi/django-reversion-compare/`_ |
+-----------------+----------------------------------------------------------+

.. _#pylucid on freenode.net: http://www.pylucid.org/permalink/304/irc-channel
.. _http://github.com/jedie/django-reversion-compare: http://github.com/jedie/django-reversion-compare
.. _http://pypi.python.org/pypi/django-reversion-compare/: http://pypi.python.org/pypi/django-reversion-compare/

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

File details

Details for the file django-reversion-compare-0.1.0.beta.0508.tar.gz.

File metadata

File hashes

Hashes for django-reversion-compare-0.1.0.beta.0508.tar.gz
Algorithm Hash digest
SHA256 926304ee316d4114ec19796e9e6efebce24ce664705855557430633302746869
MD5 2dd0a6956bd80594961bee27a9425b4e
BLAKE2b-256 98b0126d8d31ffb671ded59cd0e4b4eaae7aa56fe7c8d836146d812ea010d300

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page