From d52c4bb59cf91b2ffaab56b8647d8b9c59583027 Mon Sep 17 00:00:00 2001 From: Brandon King Date: Wed, 29 Apr 2009 19:58:16 +0000 Subject: [PATCH] Made reversion actually track changes: * Done by using middleware * Added comments for each type of change so it will show up in object history Updated summary pages: * Notes & Description fields now show up in the summary --- samplebc/samples/views.py | 40 ++++++++++++++++++++++++++++---- samplebc/settings.py | 2 ++ templates/container_summary.html | 5 ++++ templates/freezer_summary.html | 5 ++++ templates/sample_summary.html | 3 +++ 5 files changed, 50 insertions(+), 5 deletions(-) diff --git a/samplebc/samples/views.py b/samplebc/samples/views.py index 00c13a9..77a43b2 100644 --- a/samplebc/samples/views.py +++ b/samplebc/samples/views.py @@ -17,6 +17,8 @@ from samplebc import settings # Barcode Magic! from samplebc.bcmagic.forms import BarcodeMagicForm +# Reversion +from reversion import revision import random import ftplib @@ -27,7 +29,6 @@ import StringIO # Util functions ################################################ -@login_required def print_zpl(zpl_text): """ Sends zpl_text to printer @@ -117,10 +118,15 @@ def container_summary(request, container_id): context_instance=RequestContext(request)) @login_required +@revision.create_on_success def container_add(request): """ Form for adding a container. """ + #Reversion stuff + #revision.user = me + revision.comment = "New container created by user." + # If user submitted the Container form. if request.method == 'POST': # Fill in ContainerForm with POSTed data. @@ -156,11 +162,15 @@ def container_add(request): }, context_instance=RequestContext(request)) -@login_required +@login_required +@revision.create_on_success def container_edit(request, container_id): """ Allow editing of a container """ + #Reversion stuff + revision.comment = "Manual container edit by user." + try: container = models.Container.objects.get(uuid=container_id) except ObjectDoesNotExist, e: @@ -226,7 +236,7 @@ def container_print(request, container_id): params['barcode'] = 'cntr|%s' % (container.uuid) params['symbol'] = '' - c = Context(params) + c = RequestContext(request, params) t = get_template('zpl_container_label.txt') print_zpl(t.render(c)) @@ -295,10 +305,14 @@ def freezer_summary(request, freezer_id): context_instance=RequestContext(request)) @login_required +@revision.create_on_success def freezer_add(request): """ Allows you to add a new freezer. """ + #Reversion stuff + revision.comment = "New freezer created by user." + # If user submitted the freezer form. if request.method == 'POST': # Fill in FreezerForm with POSTed data. @@ -333,10 +347,14 @@ def freezer_add(request): context_instance=RequestContext(request)) @login_required +@revision.create_on_success def freezer_edit(request, freezer_id): """ Allow editing of a freezer """ + #Reversion stuff + revision.comment = "Manual freezer edit by user." + try: freezer = models.Freezer.objects.get(uuid=freezer_id) except ObjectDoesNotExist, e: @@ -400,7 +418,7 @@ def freezer_print(request, freezer_id): params['barcode'] = 'frzr|%s' % (freezer.uuid) params['symbol'] = '' - c = Context(params) + c = RequestContext(request, params) t = get_template('zpl_freezer_label.txt') print_zpl(t.render(c)) @@ -453,11 +471,15 @@ def sample_homeless(request): }, context_instance=RequestContext(request)) -@login_required +@login_required +@revision.create_on_success def sample_add(request): """ Allow adding of a new sample """ + #Reversion stuff + revision.comment = "New sample created by user." + ASSIGNED_CONTAINER = False # If user submitted the sample form. @@ -514,10 +536,14 @@ def sample_add(request): context_instance=RequestContext(request)) @login_required +@revision.create_on_success def sample_edit(request, sampleid): """ Allow editing of a sample """ + #Reversion stuff + revision.comment = "Manual sample edit by user." + try: sample = models.Sample.objects.get(sampleid=sampleid) except ObjectDoesNotExist, e: @@ -563,6 +589,7 @@ def sample_edit(request, sampleid): context_instance=RequestContext(request)) @login_required +@revision.create_on_success def sample_assign_container(request, sampleid): """ Assigns sample to container using the assign to container algorithm @@ -589,6 +616,9 @@ def sample_assign_container(request, sampleid): body = 'Sample (%s) assigned to container (%s)' \ % (sample.get_absolute_url(), str(sample), sample.container.get_absolute_url(), str(sample.container)) + #Reversion stuff + revision.comment = "Sample auto-assigned to container (%s: %s)" % (str(sample.container), sample.container.uuid) + return render_to_response('app.html', { 'app_name': settings.HTSW_ST_APPNAME, 'page_name': 'Sample Assign', diff --git a/samplebc/settings.py b/samplebc/settings.py index 7569b8b..bed4831 100644 --- a/samplebc/settings.py +++ b/samplebc/settings.py @@ -64,6 +64,8 @@ MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.middleware.transaction.TransactionMiddleware', + 'reversion.middleware.RevisionMiddleware', ) ROOT_URLCONF = 'samplebc.urls' diff --git a/templates/container_summary.html b/templates/container_summary.html index ccce461..179a6e0 100644 --- a/templates/container_summary.html +++ b/templates/container_summary.html @@ -9,6 +9,11 @@
uuid: {{ container.uuid }}

+Notes:
+

+ {{ container.notes }} +

+
Allowed Sample Types:
{{ container.sample_type.all|join:", " }}

diff --git a/templates/freezer_summary.html b/templates/freezer_summary.html index 850123c..af4820c 100644 --- a/templates/freezer_summary.html +++ b/templates/freezer_summary.html @@ -10,6 +10,11 @@ Loc. Desc.: {{ freezer.loc_desc }}

uuid: {{ freezer.uuid }}
+
+Notes: +

+{{ freezer.notes }} +

Containers in Freezer

diff --git a/templates/sample_summary.html b/templates/sample_summary.html index 98dd413..f05a634 100644 --- a/templates/sample_summary.html +++ b/templates/sample_summary.html @@ -14,6 +14,9 @@ Type: {{ sample.sample_type.name }}
Owner: {{ sample.owner.name }}

+Description: +

{{ sample.description }}

+
Concentration (ug/ml): {{ sample.concentration }}
Volume (ml): {{ sample.volume }}

-- 2.30.2