Commit 46f076fa410ae0de4eda90b9586ca9845f6d2462
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}' |
... | ... |