Bug 3499: Referenced proxy not filtering out unreferenced sources

svn: r13974
This commit is contained in:
Gerald Britton 2010-01-05 16:56:56 +00:00
parent 7001690176
commit 57ac58b67e

View File

@ -118,6 +118,24 @@ class ReferencedProxyDb(ProxyDbBase):
elif class_name == 'Family': elif class_name == 'Family':
if not self.get_family_from_handle(handle): if not self.get_family_from_handle(handle):
continue continue
elif class_name == 'Event':
if handle in self.unreferenced_events:
continue
elif class_name == 'Place':
if handle in self.unreferenced_places:
continue
elif class_name == 'Source':
if handle in self.unreferenced_sources:
continue
elif class_name == 'Repository':
if handle in self.unreferenced_repositories:
continue
elif class_name == 'MediaObject':
if handle in self.unreferenced_media_objects:
continue
elif class_name == 'Note':
if handle in self.unreferenced_notes:
continue
yield (class_name, handle) yield (class_name, handle)
return return
@ -152,10 +170,9 @@ class ReferencedProxyDb(ProxyDbBase):
for object_type, object_dict in object_types.iteritems(): for object_type, object_dict in object_types.iteritems():
unref_list = object_dict['unref_list'] unref_list = object_dict['unref_list']
handle_list = object_dict['handle_list']() handle_list = object_dict['handle_list']()
for handle in handle_list: unref_list.update(
if (handle not in unref_list and handle for handle in handle_list
not any(self.find_backlink_handles(handle)) ): if not any(self.find_backlink_handles(handle)))
unref_list.add(handle)
current_count += len(unref_list) current_count += len(unref_list)
if current_count == last_count: if current_count == last_count: