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

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