Commit 46f076fa410ae0de4eda90b9586ca9845f6d2462

Authored by Marcel Kawski
1 parent f5e46594

Add UniqueConstraint for name and sequence in Document

Showing 1 changed file with 11 additions and 11 deletions
collector/storage/models.py
... ... @@ -44,14 +44,14 @@ class Document(models.Model):
44 44 parent = models.ForeignKey("self", null=True, default=None, on_delete=models.CASCADE)
45 45 sequence = models.PositiveIntegerField(default=0)
46 46  
47   - # def delete(self, *args, **kwargs):
48   - # super().delete(*args, **kwargs)
49   - # if self.parent is not None:
50   - # bigger_subdocs = Document.objects.filter(parent=self.parent,
51   - # sequence__gt=self.sequence).order_by('sequence')
52   - # for subdoc in bigger_subdocs:
53   - # subdoc.sequence -= 1
54   - # subdoc.save()
  47 + def delete(self, *args, **kwargs):
  48 + super().delete(*args, **kwargs)
  49 + if self.parent is not None:
  50 + bigger_subdocs = Document.objects.filter(parent=self.parent,
  51 + sequence__gt=self.sequence).order_by('sequence')
  52 + for subdoc in bigger_subdocs:
  53 + subdoc.sequence -= 1
  54 + subdoc.save()
55 55  
56 56 def annotated(self):
57 57 for chunk in self.chunks.all():
... ... @@ -145,9 +145,9 @@ class Document(models.Model):
145 145 class Meta:
146 146 db_table = 'document'
147 147 ordering = ['id']
148   - # constraints = [
149   - # models.UniqueConstraint(fields=['name', 'sequence'], name='unique subdocument sequence')
150   - # ]
  148 + constraints = [
  149 + models.UniqueConstraint(fields=['name', 'sequence'], name='unique subdocument sequence')
  150 + ]
151 151  
152 152 def __str__(self):
153 153 return f'{self.name}-{self.id}'
... ...