Made reversion actually track changes:
[htsworkflow.git] / samplebc / samples / views.py
index 00c13a9aa3663caecd167e009ae5534f16afc893..77a43b2e5147d000ce4c309517be44bed6d563c0 100644 (file)
@@ -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 (<a href="%s">%s</a>) assigned to container (<a href="%s">%s</a>)' \
            % (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',