Add get_divorce_or_fallback function
svn: r16352
This commit is contained in:
parent
077230473f
commit
bb41511fc4
@ -261,6 +261,14 @@ class EventType(GrampsType):
|
|||||||
"""
|
"""
|
||||||
return self.value == self.DIVORCE
|
return self.value == self.DIVORCE
|
||||||
|
|
||||||
|
def is_divorce_fallback(self):
|
||||||
|
"""
|
||||||
|
Returns True if EventType is a divorce fallback, False
|
||||||
|
otherwise.
|
||||||
|
"""
|
||||||
|
return self.value in [self.ANNULMENT,
|
||||||
|
self.DIV_FILING]
|
||||||
|
|
||||||
def is_relationship_event(self):
|
def is_relationship_event(self):
|
||||||
"""
|
"""
|
||||||
Returns True is EventType is a relationship type event.
|
Returns True is EventType is a relationship type event.
|
||||||
|
@ -68,14 +68,14 @@ def get_death_or_fallback(db, person, format=None):
|
|||||||
return event
|
return event
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def get_marriage_ref(db, family):
|
def get_event_ref(db, family, event_type):
|
||||||
"""
|
"""
|
||||||
Return a reference to the primary MARRIAGE event of the family.
|
Return a reference to a primary family event of the given event type.
|
||||||
"""
|
"""
|
||||||
from gen.lib import EventType, EventRoleType
|
from gen.lib import EventRoleType
|
||||||
for event_ref in family.get_event_ref_list():
|
for event_ref in family.get_event_ref_list():
|
||||||
event = db.get_event_from_handle(event_ref.ref)
|
event = db.get_event_from_handle(event_ref.ref)
|
||||||
if (event and event.get_type() == EventType.MARRIAGE and
|
if (event and event.get_type() == event_type and
|
||||||
(event_ref.get_role() == EventRoleType.FAMILY or
|
(event_ref.get_role() == EventRoleType.FAMILY or
|
||||||
event_ref.get_role() == EventRoleType.PRIMARY)):
|
event_ref.get_role() == EventRoleType.PRIMARY)):
|
||||||
return event_ref
|
return event_ref
|
||||||
@ -98,10 +98,10 @@ def get_primary_event_ref_list(db, family):
|
|||||||
def get_marriage_or_fallback(db, family, format=None):
|
def get_marriage_or_fallback(db, family, format=None):
|
||||||
"""
|
"""
|
||||||
Get a MARRIAGE event from a family, or fallback to an
|
Get a MARRIAGE event from a family, or fallback to an
|
||||||
event around the time of marriage.
|
alternative event type.
|
||||||
"""
|
"""
|
||||||
from gen.lib import EventRoleType
|
from gen.lib import EventType, EventRoleType
|
||||||
marriage_ref = get_marriage_ref(db, family)
|
marriage_ref = get_event_ref(db, family, EventType.MARRIAGE)
|
||||||
if marriage_ref: # regular marriage found
|
if marriage_ref: # regular marriage found
|
||||||
event = db.get_event_from_handle(marriage_ref.ref)
|
event = db.get_event_from_handle(marriage_ref.ref)
|
||||||
if event:
|
if event:
|
||||||
@ -118,3 +118,27 @@ def get_marriage_or_fallback(db, family, format=None):
|
|||||||
event.date.format = format
|
event.date.format = format
|
||||||
return event
|
return event
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
def get_divorce_or_fallback(db, family, format=None):
|
||||||
|
"""
|
||||||
|
Get a DIVORCE event from a family, or fallback to an
|
||||||
|
alternative event type.
|
||||||
|
"""
|
||||||
|
from gen.lib import EventType, EventRoleType
|
||||||
|
divorce_ref = get_event_ref(db, family, EventType.DIVORCE)
|
||||||
|
if divorce_ref: # regular marriage found
|
||||||
|
event = db.get_event_from_handle(divorce_ref.ref)
|
||||||
|
if event:
|
||||||
|
return event
|
||||||
|
# now search the event list for fallbacks
|
||||||
|
for event_ref in get_primary_event_ref_list(db, family):
|
||||||
|
if event_ref:
|
||||||
|
event = db.get_event_from_handle(event_ref.ref)
|
||||||
|
if (event
|
||||||
|
and event.type.is_divorce_fallback()
|
||||||
|
and (event_ref.role == EventRoleType.FAMILY or
|
||||||
|
event_ref.role == EventRoleType.PRIMARY)):
|
||||||
|
if format:
|
||||||
|
event.date.format = format
|
||||||
|
return event
|
||||||
|
return None
|
||||||
|
Loading…
x
Reference in New Issue
Block a user