forked from 0x2620/pandora
track annotation id in table to avoid IntegrityErrors while adding multiple annotations to one item, fixes #2780
This commit is contained in:
parent
34f2cfe290
commit
ef56f4aec4
3 changed files with 198 additions and 9 deletions
|
|
@ -115,14 +115,7 @@ class Annotation(models.Model):
|
|||
|
||||
def set_public_id(self):
|
||||
if self.id:
|
||||
public_id = Annotation.objects.filter(item=self.item, id__lt=self.id).count() + 1
|
||||
if public_id > 1:
|
||||
previous = Annotation.objects.filter(item=self.item,
|
||||
id__lt=self.id).order_by('-id')[0]
|
||||
if not previous.public_id:
|
||||
previous.set_public_id()
|
||||
public_id = ox.fromAZ(previous.public_id.split('/')[-1]) + 1
|
||||
self.public_id = "%s/%s" % (self.item.public_id, ox.toAZ(public_id))
|
||||
self.public_id = self.item.next_annotationid()
|
||||
Annotation.objects.filter(id=self.id).update(public_id=self.public_id)
|
||||
|
||||
@classmethod
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue