Metadata-Version: 1.0
Name: django-reversion-compare
Version: 0.2.2.beta.0515
Summary: history compare for django-reversion
Home-page: https://github.com/jedie/django-reversion-compare/
Author: Jens Diemer
Author-email: django-reversion-compare@jensdiemer.de
License: UNKNOWN
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
        
        Optional you can install `google-diff-match-patch <https://code.google.com/p/google-diff-match-patch/>`_ otherwise difflib would be used.
        The easiest way it to use the unofficial package `diff-match-patch <http://pypi.python.org/pypi/diff-match-patch/>`_, e.g.:
        
        ::
        
            pip install diff-match-patch
        
        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)
        
        -----------
        screenshots
        -----------
        
        Here some screenshots of django-reversion-compare:
        
        ----
        
        How to select the versions to compare:
        
        |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
        
        ----
        
        from **v0.1.0**: DateTimeField compare (last update), TextField compare (content) with small changes and a ForeignKey compare (child model instance was added):
        
        |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
        
        ----
        
        from **v0.1.0**: Same as above, but the are more lines changed in TextField and the ForeignKey relation was removed:
        
        |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
        
        ----
        
        Example screenshot from **v0.2.0**: One simple CharField compare (name) and two many-to-many field compare (friends, hobbies):
        
        |django-reversion-compare_v0_2_0pre-04.png|
        
        .. |django-reversion-compare_v0_2_0pre-04.png| image:: http://www.pylucid.org/media/pylucid.org/screenshots_PyLucid/django-reversion/django-reversion-compare_v0_2_0pre-04.png
        
        ----
        test
        ----
        
        start local server
        ==================
        
        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>`_
        
        run unittests
        =============
        
        ::
        
            $ cd path/to/django-reversion-compare/reversion_compare_test_project/
            django-reversion-compare/reversion_compare_test_project$  ./manage.py test reversion_compare
        
        ---------
        changelog
        ---------
        
        * v0.2.2 - 15.05.2012:
        
            * Compare many-to-many in the right way.
        
        * v0.2.1 - 10.05.2012:
        
            * Bugfix for models which has no m2m field: `https://github.com/jedie/django-reversion-compare/commit/c8e042945a6e78e5540b6ae27666f9b0cfc94880 <https://github.com/jedie/django-reversion-compare/commit/c8e042945a6e78e5540b6ae27666f9b0cfc94880>`_
        
        * v0.2.0 - 09.05.2012:
        
            * many-to-many compare works, too.
        
        * 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/
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Programming Language :: Python
Classifier: Framework :: Django
Classifier: Topic :: Database :: Front-Ends
Classifier: Topic :: Documentation
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
Classifier: Topic :: Internet :: WWW/HTTP :: WSGI :: Application
Classifier: Operating System :: OS Independent
