import logging
import os
import re
+import sre_constants
import types
import uuid
pre_save.connect(Sequencer.update_isdefault, sender=Sequencer)
+class FlowCellModel(models.Model):
+ name = models.TextField()
+ fixed_time = models.IntegerField(default=0, help_text='(seconds)')
+ per_cycle_time = models.IntegerField(default=0, help_text='(seconds)')
+ isdefault = models.BooleanField(default=False)
+
+ def __unicode__(self):
+ return unicode(self.name)
+
+ @classmethod
+ def default(cls):
+ d = cls.objects.filter(isdefault=True).all()
+ if len(d) > 0:
+ return d[-1]
+ return None
+
+ @staticmethod
+ def update_isdefault(sender, instance, **kwargs):
+ """Clear default if needed
+ """
+ if instance.isdefault:
+ for s in FlowCellType.objects.filter(isdefault=True).all():
+ if s.id != instance.id:
+ s.isdefault = False
+ s.save()
+
+pre_save.connect(FlowCellModel.update_isdefault, sender=FlowCellModel)
class FlowCell(models.Model):
flowcell_id = models.CharField(max_length=20, unique=True, db_index=True)
cluster_station = models.ForeignKey(ClusterStation, default=ClusterStation.default)
sequencer = models.ForeignKey(Sequencer, default=Sequencer.default)
+ flowcell_model = models.ForeignKey(FlowCellModel, default=FlowCellModel.default)
notes = models.TextField(blank=True)
#return u"<FileType: %s>" % (self.name,)
return self.name
+ def regex_is_valid(self):
+ try:
+ regex = re.compile(self.regex)
+ except sre_constants.error as e:
+ return False
+ return re.compile(self.regex) is not None
def str_uuid():
"""Helper function to set default UUID in DataFile"""