From 45514d387b8afdb35a858265ef5b0f0307c25ac8 Mon Sep 17 00:00:00 2001 From: Paul Eggleton Date: Thu, 14 Feb 2013 07:24:24 +0000 Subject: [PATCH] Enable auditing using django-reversion and django-reversion-compare Collect history for changes, and allow browsing / reverting / comparison within the admin interface. Signed-off-by: Paul Eggleton --- README | 2 ++ TODO | 1 - layerindex/admin.py | 21 +++++++++++++++++---- settings.py | 5 ++++- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/README b/README index c401dea..9bd4236 100644 --- a/README +++ b/README @@ -27,6 +27,8 @@ In order to make use of this application you will need: building). * GitPython (python-git) version 0.3.1 or later * django-registration +* django-reversion +* django-reversion-compare Setup instructions: diff --git a/TODO b/TODO index 2b17fd7..1d6d4d3 100644 --- a/TODO +++ b/TODO @@ -7,7 +7,6 @@ TODO: - we might consider adding a link to the all layers and all recipes tables from the layer details page * Ensure publishing a published layer doesn't do anything -* Auditing * Need an "About" section descriptibing what the site is for * Need an admin contact in footer diff --git a/layerindex/admin.py b/layerindex/admin.py index 4418c34..0890ff2 100644 --- a/layerindex/admin.py +++ b/layerindex/admin.py @@ -6,9 +6,22 @@ from layerindex.models import * from django.contrib import admin +from reversion_compare.admin import CompareVersionAdmin -admin.site.register(LayerItem) -admin.site.register(LayerMaintainer) -admin.site.register(LayerDependency) -admin.site.register(LayerNote) +class LayerItemAdmin(CompareVersionAdmin): + """ Admin settings here """ + +class LayerMaintainerAdmin(CompareVersionAdmin): + """ Admin settings here """ + +class LayerDependencyAdmin(CompareVersionAdmin): + """ Admin settings here """ + +class LayerNoteAdmin(CompareVersionAdmin): + """ Admin settings here """ + +admin.site.register(LayerItem, LayerItemAdmin) +admin.site.register(LayerMaintainer, LayerMaintainerAdmin) +admin.site.register(LayerDependency, LayerDependencyAdmin) +admin.site.register(LayerNote, LayerNoteAdmin) admin.site.register(Recipe) diff --git a/settings.py b/settings.py index 068ea3e..53dac13 100644 --- a/settings.py +++ b/settings.py @@ -105,6 +105,7 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', + 'reversion.middleware.RevisionMiddleware', ) ROOT_URLCONF = 'urls' @@ -128,7 +129,9 @@ INSTALLED_APPS = ( # Uncomment the next line to enable admin documentation: # 'django.contrib.admindocs', 'layerindex', - 'registration' + 'registration', + 'reversion', + 'reversion_compare' ) # A sample logging configuration. The only tangible logging