mirror of
https://github.com/olivierkes/manuskript.git
synced 2024-05-17 11:22:28 +12:00
Does not simply warn of duplicate IDs, but fixes them.
This commit is contained in:
parent
47b55ba164
commit
0330336311
|
@ -224,15 +224,23 @@ class abstractItem():
|
|||
if max([self.IDs.count(i) for i in self.IDs if i]) != 1:
|
||||
LOGGER.warning("There are some items with overlapping IDs: %s", [i for i in self.IDs if i and self.IDs.count(i) != 1])
|
||||
|
||||
_IDs = [self.ID()]
|
||||
def checkChildren(item):
|
||||
"Check recursively every children and give them unique, non-empty, non-zero IDs."
|
||||
for c in item.children():
|
||||
_id = c.ID()
|
||||
if not _id or _id == "0":
|
||||
if not _id or _id == "0" or _id in _IDs:
|
||||
c.getUniqueID()
|
||||
LOGGER.warning("* Item {} '{}' is given new unique ID: '{}'".format(_id, c.title(), c.ID()))
|
||||
_IDs.append(_id)
|
||||
checkChildren(c)
|
||||
|
||||
checkChildren(self)
|
||||
|
||||
# Not sure if self.IDs is still useful (it was used in the old unique ID generating system at least).
|
||||
# It might be deleted everywhere. But just in the meantime, it should at least be up to date.
|
||||
self.IDs = self.listAllIDs()
|
||||
|
||||
def listAllIDs(self):
|
||||
IDs = [self.ID()]
|
||||
for c in self.children():
|
||||
|
|
Loading…
Reference in a new issue