From: Brandon King Date: Tue, 17 Mar 2009 21:44:11 +0000 (+0000) Subject: Added the ability to print freezer labels. X-Git-Url: http://woldlab.caltech.edu/gitweb/?p=htsworkflow.git;a=commitdiff_plain;h=ad058e9ea56d88af527c566ce53a9397b25ed790 Added the ability to print freezer labels. --- diff --git a/samplebc/samples/urls.py b/samplebc/samples/urls.py index e7947fc..132f580 100644 --- a/samplebc/samples/urls.py +++ b/samplebc/samples/urls.py @@ -27,6 +27,8 @@ urlpatterns = patterns('', 'samplebc.samples.views.freezer_add'), (r'^freezer/(?P[a-fA-F0-9]+)/edit/$', 'samplebc.samples.views.freezer_edit'), + (r'^freezer/(?P[a-fA-F0-9]+)/print/$', + 'samplebc.samples.views.freezer_print'), (r'^freezer/(?P[a-fA-F0-9]+)/$', 'samplebc.samples.views.freezer_summary') diff --git a/samplebc/samples/views.py b/samplebc/samples/views.py index e8ffb35..32a69c0 100644 --- a/samplebc/samples/views.py +++ b/samplebc/samples/views.py @@ -344,6 +344,29 @@ def freezer_edit(request, freezer_id): }) +def freezer_print(request, freezer_id): + """ + prints a freezer label + """ + + try: + freezer = models.Freezer.objects.get(uuid=freezer_id) + except ObjectDoesNotExist: + return HttpResponse('Freezer (%s) does not exist!' % (freezer_id)) + + params = {} + params['line1'] = __center_line('', 10) + params['line2'] = __center_line('', 14) + params['line3'] = __center_line('Temp: %s C' % (freezer.temperature), 15) + params['freezer_name'] = __center_line(freezer.name, 16) + params['barcode'] = 'frzr|%s' % (freezer.uuid) + params['symbol'] = '' + + c = Context(params) + t = get_template('zpl_freezer_label.txt') + print_zpl(t.render(c)) + + return HttpResponse('print command for freezer %s sent.' % (freezer.uuid)) ################################################ # Samples diff --git a/templates/freezer_summary.html b/templates/freezer_summary.html index a0dc5b6..850123c 100644 --- a/templates/freezer_summary.html +++ b/templates/freezer_summary.html @@ -1,6 +1,6 @@

Freezer Summary

-[ Edit ]
+[ Edit | Print Label ]

Name: {{ freezer.name }}
diff --git a/templates/zpl_freezer_label.txt b/templates/zpl_freezer_label.txt new file mode 100644 index 0000000..cdfd78c --- /dev/null +++ b/templates/zpl_freezer_label.txt @@ -0,0 +1,58 @@ +^FX========================= +^FX 1/2" Freezer Label +^FX========================= + +^XA +^FX------------------------- +^FX Freezer ID +^FX------------------------- +^FO105,167 +^CF0,24^FD{{ freezer_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