9450: LivingProxyDB leaves data in when back references followed
This commit is contained in:
parent
ef0b2b8aea
commit
c469240c65
@ -336,14 +336,32 @@ class LivingProxyDb(ProxyDbBase):
|
|||||||
"""
|
"""
|
||||||
handle_itr = self.db.find_backlink_handles(handle, include_classes)
|
handle_itr = self.db.find_backlink_handles(handle, include_classes)
|
||||||
for (class_name, handle) in handle_itr:
|
for (class_name, handle) in handle_itr:
|
||||||
if class_name == "Person" and self.mode != self.MODE_INCLUDE_ALL:
|
if self.mode == self.MODE_INCLUDE_ALL:
|
||||||
|
yield (class_name, handle)
|
||||||
|
elif class_name == 'Person':
|
||||||
## Don't get backlinks to living people at all
|
## Don't get backlinks to living people at all
|
||||||
person = self.db.get_person_from_handle(handle)
|
person = self.db.get_person_from_handle(handle)
|
||||||
if person and not self.__is_living(person):
|
if person and not self.__is_living(person):
|
||||||
yield (class_name, handle)
|
yield (class_name, handle)
|
||||||
|
elif class_name == 'Family':
|
||||||
|
father = mother = None
|
||||||
|
family = self.db.get_family_from_handle(handle)
|
||||||
|
father_handle = family.get_father_handle()
|
||||||
|
mother_handle = family.get_mother_handle()
|
||||||
|
if father_handle:
|
||||||
|
father = self.db.get_person_from_handle(father_handle)
|
||||||
|
if mother_handle:
|
||||||
|
mother = self.db.get_person_from_handle(mother_handle)
|
||||||
|
father_not_living = father and not self.__is_living(father)
|
||||||
|
mother_not_living = mother and not self.__is_living(mother)
|
||||||
|
if ((father is None and mother is None) or # shouldn't happen
|
||||||
|
(father is None and mother_not_living) or # could
|
||||||
|
(mother is None and father_not_living) or # could
|
||||||
|
(father_not_living and mother_not_living) # could
|
||||||
|
):
|
||||||
|
yield (class_name, handle)
|
||||||
else:
|
else:
|
||||||
yield (class_name, handle)
|
yield (class_name, handle)
|
||||||
return
|
|
||||||
|
|
||||||
def __is_living(self, person):
|
def __is_living(self, person):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user