Added ability to print container labels.
authorBrandon King <kingb@caltech.edu>
Tue, 17 Mar 2009 21:56:01 +0000 (21:56 +0000)
committerBrandon King <kingb@caltech.edu>
Tue, 17 Mar 2009 21:56:01 +0000 (21:56 +0000)
samplebc/samples/urls.py
samplebc/samples/views.py
templates/container_summary.html
templates/zpl_container_label.txt [new file with mode: 0644]

index 132f58039b84d77381f27e33c86ad92f97146a88..a435d297f4b8c224fd8ad09e56a5c5133e109ce1 100644 (file)
@@ -17,6 +17,8 @@ urlpatterns = patterns('',
      'samplebc.samples.views.container_add'),
     (r'^container/(?P<container_id>[a-fA-F0-9]+)/edit/$',
      'samplebc.samples.views.container_edit'),
+    (r'^container/(?P<container_id>[a-fA-F0-9]+)/print/$',
+     'samplebc.samples.views.container_print'),
     (r'^container/(?P<container_id>[a-fA-F0-9]+)/$',
      'samplebc.samples.views.container_summary'),
     
index 32a69c05c73554248d623cc2e5e64d5d03017467..161ca0dfb90eaa7e663644b0a5fa71bff972ec5b 100644 (file)
@@ -200,6 +200,30 @@ def container_edit(request, container_id):
     })
 
 
+def container_print(request, container_id):
+    """
+    prints a container label
+    """
+    
+    try:
+        container = models.Container.objects.get(uuid=container_id)
+    except ObjectDoesNotExist:
+        return HttpResponse('Container (%s) does not exist!' % (container_id))
+    
+    params = {}
+    params['line1'] = __center_line('', 10)
+    params['line2'] = __center_line('', 14)
+    params['line3'] = __center_line('%s' % (container.name[16:16+15]), 15)
+    params['container_name'] = __center_line(container.name[0:16], 16)
+    params['barcode'] = 'cntr|%s' % (container.uuid)
+    params['symbol'] = ''
+    
+    c = Context(params)
+    t = get_template('zpl_container_label.txt')
+    print_zpl(t.render(c))
+    
+    return HttpResponse('print command for container %s sent.' % (container.uuid))
+
 
 ################################################
 # Freezer
index b3a8794dc2259df7ea527c4d78906d2210d500b4..ccce461a40cced1a57598dda6d5d787694eb6eb5 100644 (file)
@@ -1,6 +1,7 @@
 <h3>Container Summary</h3>
 
-[ <a href="{{ container.get_absolute_url }}edit/">Edit</a> ]<br />
+[ <a href="{{ container.get_absolute_url }}edit/">Edit</a>
+ | <a href="{{ container.get_absolute_url }}print/">Print Label</a> ]<br />
 <br />
 
 <b>Name:</b> {{ container.name }}<br />
diff --git a/templates/zpl_container_label.txt b/templates/zpl_container_label.txt
new file mode 100644 (file)
index 0000000..61ba9b6
--- /dev/null
@@ -0,0 +1,58 @@
+^FX=========================
+^FX 1/2" Container Label
+^FX=========================
+
+^XA
+^FX-------------------------
+^FX Container ID
+^FX-------------------------
+^FO105,167
+^CF0,24^FD{{ container_name }}^FS
+
+^FX-------------------------
+^FX Content
+^FX-------------------------
+
+^FX Line 1 (max_length=10)
+^FO135,113
+^CF0,16^FD{{ line1 }}^FS
+
+^FX Line 2 (max_length=14)
+^FO120,131
+^CF0,16^FD{{ line2 }}^FS
+
+^FX Line 3 (max_length=15)
+^FO115,149
+^CF0,16^FD{{ line3 }}^FS
+
+^FX-------------------------
+^FX Slot #
+^FX
+^FX (75 - (54 / 2)) / 2 == 24
+^FX x_center = (175 + 30 + 24)
+^FX x = x_center - 24 + 4
+^FX y = x_center - 24 + 4 - (28/2)
+^FX-------------------------
+^FO209,195
+^CF0,28^FD{{ symbol }}^FS
+
+^FX-------------------------
+^FX Circle - Temp
+^FX-------------------------
+^FX FO100,100
+^FX GC150,1^FS
+
+^FX-------------------------
+^FX Datamatrix Barcode
+^FX 
+^FX h=w=<#col>*3 
+^FX upper_left_coords=(175-(w/2), 250-6-h)
+^FX-------------------------
+^FO148,188
+^BXN,3,200
+^FD{{ barcode }}^FS
+
+^FX-------------------------
+^FX End Label
+^FX-------------------------
+^XZ