from django.db.models import signals
from django.contrib.auth.models import User, Group
+from samplebc import settings
+
+
#AUDIT_TYPES = [('Create', 'Create'),
# ('Update', 'Update'),
# ('Delete', 'Delete')]
class Container(models.Model):
- name = models.CharField(max_length=256)
+ name = models.CharField(max_length=256, unique=True)
sample_type = models.ManyToManyField(SampleType)
max_items = models.IntegerField()
freezer = models.ForeignKey(Freezer)
class Sample(models.Model):
- name = models.CharField(max_length=256)
+ name = models.CharField(max_length=256, unique=True)
+ #sampleid = models.CharField(max_length=64, unique=True)
sampleid = models.CharField(max_length=64, unique=True)
sample_type = models.ForeignKey(SampleType)
owner = models.ForeignKey(Owner)
def get_absolute_url(self):
return ('samplebc.samples.views.sample_summary', [str(self.sampleid)])
+def assign_sample_id(sender, instance, **kwargs):
+
+ print 'Instance ID: %s' % (instance.id)
+ if instance.sampleid is None or len(instance.sampleid) == 0:
+ instance.sampleid = settings.HTSW_SAMPLE_ID_TEMPLATE % (instance.id)
+ instance.save()
+
+signals.post_save.connect(assign_sample_id, sender=Sample)
+
import random
import ftplib
+import socket
import StringIO
ftp.login()
ftp.storlines("STOR printme.txt", StringIO.StringIO(zpl_text))
ftp.quit()
-
+
+def print_zpl_socket(zpl_text):
+ """
+ Sends zpl_text to printer via a socket
+ """
+ s = socket.socket()
+ # PORT 9100 is default for Zebra tabletop/desktop printers
+ # PORT 6101 is default for Zebra mobile printers
+ s.connect((settings.PRINTER_HOST, settings.PRINTER_PORT))
+ s.sendall(zpl_text)
+ s.close()
def __center_line(line, width):
spaces_to_add = width - len(line)
s_obj = form.save(commit=False)
# Add sample ID
- s_obj.sampleid = get_sampleid()
+ #s_obj.sampleid = get_sampleid()
# If the user wants us to assign a container.
if form.cleaned_data['assign_container']: