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)
+
+ @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)