Cleaned up code; added cause of death, cremation, and burial events to be evidence of death
svn: r11550
This commit is contained in:
parent
6d2cc418e4
commit
5aa95a60ee
@ -42,6 +42,7 @@ from gen.plug.menu import (BooleanOption, EnumeratedListOption,
|
|||||||
from ReportBase import Report, ReportUtils, MenuReportOptions, \
|
from ReportBase import Report, ReportUtils, MenuReportOptions, \
|
||||||
CATEGORY_TEXT
|
CATEGORY_TEXT
|
||||||
from gen.plug import PluginManager
|
from gen.plug import PluginManager
|
||||||
|
from gen.lib import EventType
|
||||||
|
|
||||||
MODE_GUI = PluginManager.REPORT_MODE_GUI
|
MODE_GUI = PluginManager.REPORT_MODE_GUI
|
||||||
MODE_BKI = PluginManager.REPORT_MODE_BKI
|
MODE_BKI = PluginManager.REPORT_MODE_BKI
|
||||||
@ -56,12 +57,28 @@ MODE_CLI = PluginManager.REPORT_MODE_CLI
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
|
||||||
def good_date(date):
|
def _good_date(date):
|
||||||
if RecordsReportOptions.REGULAR_DATES_ONLY:
|
if RecordsReportOptions.REGULAR_DATES_ONLY:
|
||||||
return date.is_regular()
|
return date.is_regular()
|
||||||
else:
|
else:
|
||||||
return date.is_valid()
|
return date.is_valid()
|
||||||
|
|
||||||
|
def _find_death_date(db, person):
|
||||||
|
death_ref = person.get_death_ref()
|
||||||
|
if death_ref:
|
||||||
|
death = db.get_event_from_handle(death_ref.ref)
|
||||||
|
return death.get_date_object()
|
||||||
|
else:
|
||||||
|
event_list = person.get_primary_event_ref_list()
|
||||||
|
for event_ref in event_list:
|
||||||
|
event = db.get_event_from_handle(event_ref.ref)
|
||||||
|
if (event.get_type() == EventType.BURIAL or
|
||||||
|
event.get_type() == EventType.CAUSE_DEATH or
|
||||||
|
event.get_type() == EventType.CREMATION):
|
||||||
|
return event.get_date_object()
|
||||||
|
return None
|
||||||
|
|
||||||
|
|
||||||
def _find_records(db, filter, callname):
|
def _find_records(db, filter, callname):
|
||||||
|
|
||||||
today = datetime.date.today()
|
today = datetime.date.today()
|
||||||
@ -98,24 +115,19 @@ def _find_records(db, filter, callname):
|
|||||||
birth = db.get_event_from_handle(birth_ref.ref)
|
birth = db.get_event_from_handle(birth_ref.ref)
|
||||||
birth_date = birth.get_date_object()
|
birth_date = birth.get_date_object()
|
||||||
|
|
||||||
death_ref = person.get_death_ref()
|
death_date = _find_death_date(db, person)
|
||||||
if death_ref:
|
|
||||||
death = db.get_event_from_handle(death_ref.ref)
|
|
||||||
death_date = death.get_date_object()
|
|
||||||
else:
|
|
||||||
death_date = None
|
|
||||||
|
|
||||||
if not good_date(birth_date):
|
if not _good_date(birth_date):
|
||||||
# Birth date unknown or incomplete, so we can't calculate any age.
|
# Birth date unknown or incomplete, so we can't calculate any age.
|
||||||
continue
|
continue
|
||||||
|
|
||||||
name = _person_get_display_name(person, callname)
|
name = _person_get_display_name(person, callname)
|
||||||
|
|
||||||
if death_ref is None:
|
if death_date is None:
|
||||||
# Still living, look for age records
|
# Still living, look for age records
|
||||||
_record(person_youngestliving, person_oldestliving,
|
_record(person_youngestliving, person_oldestliving,
|
||||||
today_date - birth_date, name, 'Person', person_handle)
|
today_date - birth_date, name, 'Person', person_handle)
|
||||||
elif good_date(death_date):
|
elif _good_date(death_date):
|
||||||
# Already died, look for age records
|
# Already died, look for age records
|
||||||
_record(person_youngestdied, person_oldestdied,
|
_record(person_youngestdied, person_oldestdied,
|
||||||
death_date - birth_date, name, 'Person', person_handle)
|
death_date - birth_date, name, 'Person', person_handle)
|
||||||
@ -132,12 +144,12 @@ def _find_records(db, filter, callname):
|
|||||||
elif event.get_type() == EventType.DIVORCE:
|
elif event.get_type() == EventType.DIVORCE:
|
||||||
divorce_date = event.get_date_object()
|
divorce_date = event.get_date_object()
|
||||||
|
|
||||||
if marriage_date is not None and good_date(marriage_date):
|
if marriage_date is not None and _good_date(marriage_date):
|
||||||
_record(person_youngestmarried, person_oldestmarried,
|
_record(person_youngestmarried, person_oldestmarried,
|
||||||
marriage_date - birth_date,
|
marriage_date - birth_date,
|
||||||
name, 'Person', person_handle)
|
name, 'Person', person_handle)
|
||||||
|
|
||||||
if divorce_date is not None and good_date(divorce_date):
|
if divorce_date is not None and _good_date(divorce_date):
|
||||||
_record(person_youngestdivorced, person_oldestdivorced,
|
_record(person_youngestdivorced, person_oldestdivorced,
|
||||||
divorce_date - birth_date,
|
divorce_date - birth_date,
|
||||||
name, 'Person', person_handle)
|
name, 'Person', person_handle)
|
||||||
@ -161,7 +173,7 @@ def _find_records(db, filter, callname):
|
|||||||
child_birth = db.get_event_from_handle(child_birth_ref.ref)
|
child_birth = db.get_event_from_handle(child_birth_ref.ref)
|
||||||
child_birth_date = child_birth.get_date_object()
|
child_birth_date = child_birth.get_date_object()
|
||||||
|
|
||||||
if not good_date(child_birth_date):
|
if not _good_date(child_birth_date):
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if person.get_gender() == person.MALE:
|
if person.get_gender() == person.MALE:
|
||||||
@ -220,48 +232,37 @@ def _find_records(db, filter, callname):
|
|||||||
divorce = event
|
divorce = event
|
||||||
divorce_date = event.get_date_object()
|
divorce_date = event.get_date_object()
|
||||||
|
|
||||||
father_death = None
|
father_death_date = _find_death_date(db, father)
|
||||||
father_death_date = None
|
mather_death_date = _find_death_date(db, mother)
|
||||||
father_death_ref = father.get_death_ref()
|
|
||||||
if father_death_ref:
|
|
||||||
father_death = db.get_event_from_handle(father_death_ref.ref)
|
|
||||||
father_death_date = father_death.get_date_object()
|
|
||||||
|
|
||||||
mother_death = None
|
if not marriage or not _good_date(marriage_date):
|
||||||
mother_death_date = None
|
|
||||||
mother_death_ref = mother.get_death_ref()
|
|
||||||
if mother_death_ref:
|
|
||||||
mother_death = db.get_event_from_handle(mother_death_ref.ref)
|
|
||||||
mother_death_date = mother_death.get_date_object()
|
|
||||||
|
|
||||||
if not marriage or not good_date(marriage_date):
|
|
||||||
# Not married or marriage date unknown
|
# Not married or marriage date unknown
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if divorce and not good_date(divorce_date):
|
if divorce and not _good_date(divorce_date):
|
||||||
# Divorced, but divorce date unknown
|
# Divorced, but divorce date unknown
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if father_death and (not father_death_date or not good_date(father_death_date)):
|
if (not father_death_date or not _good_date(father_death_date)):
|
||||||
# Father dead, but death date unknown
|
# Father dead, but death date unknown
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if mother_death and (not mother_death_date or not good_date(mother_death_date)):
|
if (not mother_death_date or not _good_date(mother_death_date)):
|
||||||
# Mother dead, but death date unknown
|
# Mother dead, but death date unknown
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if not divorce and not father_death and not mother_death:
|
if not divorce and not father_death_date and not mother_death_date:
|
||||||
# Still married and alive
|
# Still married and alive
|
||||||
_record(family_youngestmarried, family_oldestmarried,
|
_record(family_youngestmarried, family_oldestmarried,
|
||||||
today_date - marriage_date,
|
today_date - marriage_date,
|
||||||
name, 'Family', family_handle)
|
name, 'Family', family_handle)
|
||||||
else:
|
else:
|
||||||
end = None
|
end = None
|
||||||
if father_death and mother_death:
|
if father_death_date and mother_death_date:
|
||||||
end = min(father_death_date, mother_death_date)
|
end = min(father_death_date, mother_death_date)
|
||||||
elif father_death:
|
elif father_death_date:
|
||||||
end = father_death_date
|
end = father_death_date
|
||||||
elif mother_death:
|
elif mother_death_date:
|
||||||
end = mother_death_date
|
end = mother_death_date
|
||||||
if divorce:
|
if divorce:
|
||||||
if end:
|
if end:
|
||||||
|
Loading…
Reference in New Issue
Block a user