From c47b494b39d55978a80cc5ac34420911272fae22 Mon Sep 17 00:00:00 2001 From: Doug Blank Date: Sun, 20 Dec 2009 22:21:59 +0000 Subject: [PATCH] Cleaning up Utils and refactoring common functionality svn: r13862 --- src/gen/db/base.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/gen/db/base.py b/src/gen/db/base.py index c407eb31c..622531d62 100644 --- a/src/gen/db/base.py +++ b/src/gen/db/base.py @@ -1526,3 +1526,40 @@ class GrampsDbBase(object): Return whethere there were bookmark changes during the session. """ raise NotImplementedError + + def get_birth_or_fallback(self, person): + """ + """ + birth_ref = person.get_birth_ref() + if birth_ref: # regular birth found + event = self.get_event_from_handle(birth_ref.ref) + if event: + return event + # now search the event list for fallbacks + for event_ref in person.get_primary_event_ref_list(): + if event_ref: + event = self.get_event_from_handle(event_ref.ref) + if (event + and event.type.is_birth_fallback() + and event_ref.role.is_primary()): + return event + return None + + def get_death_or_fallback(self, person): + """ + """ + death_ref = person.get_death_ref() + if death_ref: # regular death found + event = self.get_event_from_handle(death_ref.ref) + if event: + return event + # now search the event list for fallbacks + for event_ref in person.get_primary_event_ref_list(): + if event_ref: + event = self.get_event_from_handle(event_ref.ref) + if (event + and event.type.is_death_fallback() + and event_ref.role.is_primary()): + return event + return None +