8634: DB-API Database backend doesn't compute inverse filters correctly
This commit is contained in:
parent
8b4c5c4ebe
commit
4c47a396a8
@ -77,87 +77,6 @@ class LivingProxyDb(ProxyDbBase):
|
|||||||
else:
|
else:
|
||||||
self.current_date = None
|
self.current_date = None
|
||||||
self.years_after_death = years_after_death
|
self.years_after_death = years_after_death
|
||||||
# need to update _tables with these functions
|
|
||||||
self._tables['Person'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_person_from_handle,
|
|
||||||
"gramps_id_func": self.get_person_from_gramps_id,
|
|
||||||
"class_func": Person,
|
|
||||||
"cursor_func": self.get_person_cursor,
|
|
||||||
"handles_func": self.get_person_handles,
|
|
||||||
})
|
|
||||||
self._tables['Family'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_family_from_handle,
|
|
||||||
"gramps_id_func": self.get_family_from_gramps_id,
|
|
||||||
"class_func": Family,
|
|
||||||
"cursor_func": self.get_family_cursor,
|
|
||||||
"handles_func": self.get_family_handles,
|
|
||||||
})
|
|
||||||
self._tables['Source'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_source_from_handle,
|
|
||||||
"gramps_id_func": self.get_source_from_gramps_id,
|
|
||||||
"class_func": Source,
|
|
||||||
"cursor_func": self.get_source_cursor,
|
|
||||||
"handles_func": self.get_source_handles,
|
|
||||||
})
|
|
||||||
self._tables['Citation'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_citation_from_handle,
|
|
||||||
"gramps_id_func": self.get_citation_from_gramps_id,
|
|
||||||
"class_func": Citation,
|
|
||||||
"cursor_func": self.get_citation_cursor,
|
|
||||||
"handles_func": self.get_citation_handles,
|
|
||||||
})
|
|
||||||
self._tables['Event'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_event_from_handle,
|
|
||||||
"gramps_id_func": self.get_event_from_gramps_id,
|
|
||||||
"class_func": Event,
|
|
||||||
"cursor_func": self.get_event_cursor,
|
|
||||||
"handles_func": self.get_event_handles,
|
|
||||||
})
|
|
||||||
self._tables['Media'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_object_from_handle,
|
|
||||||
"gramps_id_func": self.get_object_from_gramps_id,
|
|
||||||
"class_func": MediaObject,
|
|
||||||
"cursor_func": self.get_media_cursor,
|
|
||||||
"handles_func": self.get_media_object_handles,
|
|
||||||
})
|
|
||||||
self._tables['Place'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_place_from_handle,
|
|
||||||
"gramps_id_func": self.get_place_from_gramps_id,
|
|
||||||
"class_func": Place,
|
|
||||||
"cursor_func": self.get_place_cursor,
|
|
||||||
"handles_func": self.get_place_handles,
|
|
||||||
})
|
|
||||||
self._tables['Repository'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_repository_from_handle,
|
|
||||||
"gramps_id_func": self.get_repository_from_gramps_id,
|
|
||||||
"class_func": Repository,
|
|
||||||
"cursor_func": self.get_repository_cursor,
|
|
||||||
"handles_func": self.get_repository_handles,
|
|
||||||
})
|
|
||||||
self._tables['Note'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_note_from_handle,
|
|
||||||
"gramps_id_func": self.get_note_from_gramps_id,
|
|
||||||
"class_func": Note,
|
|
||||||
"cursor_func": self.get_note_cursor,
|
|
||||||
"handles_func": self.get_note_handles,
|
|
||||||
})
|
|
||||||
self._tables['Tag'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_tag_from_handle,
|
|
||||||
"gramps_id_func": None,
|
|
||||||
"class_func": Tag,
|
|
||||||
"cursor_func": self.get_tag_cursor,
|
|
||||||
"handles_func": self.get_tag_handles,
|
|
||||||
})
|
|
||||||
|
|
||||||
def get_person_from_handle(self, handle):
|
def get_person_from_handle(self, handle):
|
||||||
"""
|
"""
|
||||||
|
@ -56,86 +56,6 @@ class PrivateProxyDb(ProxyDbBase):
|
|||||||
Create a new PrivateProxyDb instance.
|
Create a new PrivateProxyDb instance.
|
||||||
"""
|
"""
|
||||||
ProxyDbBase.__init__(self, db)
|
ProxyDbBase.__init__(self, db)
|
||||||
self._tables['Person'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_person_from_handle,
|
|
||||||
"gramps_id_func": self.get_person_from_gramps_id,
|
|
||||||
"class_func": Person,
|
|
||||||
"cursor_func": self.get_person_cursor,
|
|
||||||
"handles_func": self.get_person_handles,
|
|
||||||
})
|
|
||||||
self._tables['Family'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_family_from_handle,
|
|
||||||
"gramps_id_func": self.get_family_from_gramps_id,
|
|
||||||
"class_func": Family,
|
|
||||||
"cursor_func": self.get_family_cursor,
|
|
||||||
"handles_func": self.get_family_handles,
|
|
||||||
})
|
|
||||||
self._tables['Source'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_source_from_handle,
|
|
||||||
"gramps_id_func": self.get_source_from_gramps_id,
|
|
||||||
"class_func": Source,
|
|
||||||
"cursor_func": self.get_source_cursor,
|
|
||||||
"handles_func": self.get_source_handles,
|
|
||||||
})
|
|
||||||
self._tables['Citation'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_citation_from_handle,
|
|
||||||
"gramps_id_func": self.get_citation_from_gramps_id,
|
|
||||||
"class_func": Citation,
|
|
||||||
"cursor_func": self.get_citation_cursor,
|
|
||||||
"handles_func": self.get_citation_handles,
|
|
||||||
})
|
|
||||||
self._tables['Event'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_event_from_handle,
|
|
||||||
"gramps_id_func": self.get_event_from_gramps_id,
|
|
||||||
"class_func": Event,
|
|
||||||
"cursor_func": self.get_event_cursor,
|
|
||||||
"handles_func": self.get_event_handles,
|
|
||||||
})
|
|
||||||
self._tables['Media'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_object_from_handle,
|
|
||||||
"gramps_id_func": self.get_object_from_gramps_id,
|
|
||||||
"class_func": MediaObject,
|
|
||||||
"cursor_func": self.get_media_cursor,
|
|
||||||
"handles_func": self.get_media_object_handles,
|
|
||||||
})
|
|
||||||
self._tables['Place'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_place_from_handle,
|
|
||||||
"gramps_id_func": self.get_place_from_gramps_id,
|
|
||||||
"class_func": Place,
|
|
||||||
"cursor_func": self.get_place_cursor,
|
|
||||||
"handles_func": self.get_place_handles,
|
|
||||||
})
|
|
||||||
self._tables['Repository'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_repository_from_handle,
|
|
||||||
"gramps_id_func": self.get_repository_from_gramps_id,
|
|
||||||
"class_func": Repository,
|
|
||||||
"cursor_func": self.get_repository_cursor,
|
|
||||||
"handles_func": self.get_repository_handles,
|
|
||||||
})
|
|
||||||
self._tables['Note'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_note_from_handle,
|
|
||||||
"gramps_id_func": self.get_note_from_gramps_id,
|
|
||||||
"class_func": Note,
|
|
||||||
"cursor_func": self.get_note_cursor,
|
|
||||||
"handles_func": self.get_note_handles,
|
|
||||||
})
|
|
||||||
self._tables['Tag'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_tag_from_handle,
|
|
||||||
"gramps_id_func": None,
|
|
||||||
"class_func": Tag,
|
|
||||||
"cursor_func": self.get_tag_cursor,
|
|
||||||
"handles_func": self.get_tag_handles,
|
|
||||||
})
|
|
||||||
|
|
||||||
def get_person_from_handle(self, handle):
|
def get_person_from_handle(self, handle):
|
||||||
"""
|
"""
|
||||||
|
@ -82,87 +82,6 @@ class ReferencedBySelectionProxyDb(ProxyDbBase):
|
|||||||
while len(self.queue):
|
while len(self.queue):
|
||||||
obj_type, handle, reference = self.queue.pop()
|
obj_type, handle, reference = self.queue.pop()
|
||||||
self.process_object(obj_type, handle, reference)
|
self.process_object(obj_type, handle, reference)
|
||||||
# need to update _tables with these functions
|
|
||||||
self._tables['Person'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_person_from_handle,
|
|
||||||
"gramps_id_func": self.get_person_from_gramps_id,
|
|
||||||
"class_func": Person,
|
|
||||||
"cursor_func": self.get_person_cursor,
|
|
||||||
"handles_func": self.get_person_handles,
|
|
||||||
})
|
|
||||||
self._tables['Family'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_family_from_handle,
|
|
||||||
"gramps_id_func": self.get_family_from_gramps_id,
|
|
||||||
"class_func": Family,
|
|
||||||
"cursor_func": self.get_family_cursor,
|
|
||||||
"handles_func": self.get_family_handles,
|
|
||||||
})
|
|
||||||
self._tables['Source'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_source_from_handle,
|
|
||||||
"gramps_id_func": self.get_source_from_gramps_id,
|
|
||||||
"class_func": Source,
|
|
||||||
"cursor_func": self.get_source_cursor,
|
|
||||||
"handles_func": self.get_source_handles,
|
|
||||||
})
|
|
||||||
self._tables['Citation'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_citation_from_handle,
|
|
||||||
"gramps_id_func": self.get_citation_from_gramps_id,
|
|
||||||
"class_func": Citation,
|
|
||||||
"cursor_func": self.get_citation_cursor,
|
|
||||||
"handles_func": self.get_citation_handles,
|
|
||||||
})
|
|
||||||
self._tables['Event'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_event_from_handle,
|
|
||||||
"gramps_id_func": self.get_event_from_gramps_id,
|
|
||||||
"class_func": Event,
|
|
||||||
"cursor_func": self.get_event_cursor,
|
|
||||||
"handles_func": self.get_event_handles,
|
|
||||||
})
|
|
||||||
self._tables['Media'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_object_from_handle,
|
|
||||||
"gramps_id_func": self.get_object_from_gramps_id,
|
|
||||||
"class_func": MediaObject,
|
|
||||||
"cursor_func": self.get_media_cursor,
|
|
||||||
"handles_func": self.get_media_object_handles,
|
|
||||||
})
|
|
||||||
self._tables['Place'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_place_from_handle,
|
|
||||||
"gramps_id_func": self.get_place_from_gramps_id,
|
|
||||||
"class_func": Place,
|
|
||||||
"cursor_func": self.get_place_cursor,
|
|
||||||
"handles_func": self.get_place_handles,
|
|
||||||
})
|
|
||||||
self._tables['Repository'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_repository_from_handle,
|
|
||||||
"gramps_id_func": self.get_repository_from_gramps_id,
|
|
||||||
"class_func": Repository,
|
|
||||||
"cursor_func": self.get_repository_cursor,
|
|
||||||
"handles_func": self.get_repository_handles,
|
|
||||||
})
|
|
||||||
self._tables['Note'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_note_from_handle,
|
|
||||||
"gramps_id_func": self.get_note_from_gramps_id,
|
|
||||||
"class_func": Note,
|
|
||||||
"cursor_func": self.get_note_cursor,
|
|
||||||
"handles_func": self.get_note_handles,
|
|
||||||
})
|
|
||||||
self._tables['Tag'].update(
|
|
||||||
{
|
|
||||||
"handle_func": self.get_tag_from_handle,
|
|
||||||
"gramps_id_func": None,
|
|
||||||
"class_func": Tag,
|
|
||||||
"cursor_func": self.get_tag_cursor,
|
|
||||||
"handles_func": self.get_tag_handles,
|
|
||||||
})
|
|
||||||
|
|
||||||
def queue_object(self, obj_type, handle, reference=True):
|
def queue_object(self, obj_type, handle, reference=True):
|
||||||
self.queue.append((obj_type, handle, reference))
|
self.queue.append((obj_type, handle, reference))
|
||||||
|
@ -87,6 +87,32 @@ def run(database, document, filter_name, *args, **kwargs):
|
|||||||
sdoc.paragraph(_("Right-click row (or press ENTER) to see selected items."))
|
sdoc.paragraph(_("Right-click row (or press ENTER) to see selected items."))
|
||||||
sdoc.paragraph("")
|
sdoc.paragraph("")
|
||||||
stab.columns(_("Object"), _("Count/Total"))
|
stab.columns(_("Object"), _("Count/Total"))
|
||||||
|
if hasattr(database, "db"):
|
||||||
|
stab.row([_("People"), "Filter", "Person"],
|
||||||
|
"%d/%d" % (len(database.get_person_handles()),
|
||||||
|
len(database.db.get_person_handles())))
|
||||||
|
stab.row([_("Families"), "Filter", "Family"],
|
||||||
|
"%d/%d" % (len(database.get_family_handles()),
|
||||||
|
len(database.db.get_family_handles())))
|
||||||
|
stab.row([_("Events"), "Filter", "Event"],
|
||||||
|
"%d/%d" % (len(database.get_event_handles()),
|
||||||
|
len(database.db.get_event_handles())))
|
||||||
|
stab.row([_("Places"), "Filter", "Place"],
|
||||||
|
"%d/%d" % (len(database.get_place_handles()),
|
||||||
|
len(database.db.get_place_handles())))
|
||||||
|
stab.row([_("Sources"), "Filter", "Source"],
|
||||||
|
"%d/%d" % (len(database.get_source_handles()),
|
||||||
|
len(database.db.get_source_handles())))
|
||||||
|
stab.row([_("Repositories"), "Filter", "Repository"],
|
||||||
|
"%d/%d" % (len(database.get_repository_handles()),
|
||||||
|
len(database.db.get_repository_handles())))
|
||||||
|
stab.row([_("Media"), "Filter", "MediaObject"],
|
||||||
|
"%d/%d" % (len(database.get_media_object_handles()),
|
||||||
|
len(database.db.get_media_object_handles())))
|
||||||
|
stab.row([_("Notes"), "Filter", "Note"],
|
||||||
|
"%d/%d" % (len(database.get_note_handles()),
|
||||||
|
len(database.db.get_note_handles())))
|
||||||
|
else:
|
||||||
stab.row([_("People"), "Filter", "Person"],
|
stab.row([_("People"), "Filter", "Person"],
|
||||||
"%d/%d" % (len(database.get_person_handles()),
|
"%d/%d" % (len(database.get_person_handles()),
|
||||||
len(database.basedb.get_person_handles())))
|
len(database.basedb.get_person_handles())))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user