* src/plugins/FamilyGroup.py: Convert to db interface.
svn: r3122
This commit is contained in:
parent
23953f0611
commit
258fca1347
@ -2,6 +2,7 @@
|
|||||||
* src/plugins/DetDescendantReport.py: Convert to db interface.
|
* src/plugins/DetDescendantReport.py: Convert to db interface.
|
||||||
* src/plugins/DetAncestralReport.py: Translate string.
|
* src/plugins/DetAncestralReport.py: Translate string.
|
||||||
* src/plugins/FtmStyleDescendants.py: Convert to db interface.
|
* src/plugins/FtmStyleDescendants.py: Convert to db interface.
|
||||||
|
* src/plugins/FamilyGroup.py: Convert to db interface.
|
||||||
|
|
||||||
2004-05-02 Don Allingham <donaldallingham@users.sourceforge.net>
|
2004-05-02 Don Allingham <donaldallingham@users.sourceforge.net>
|
||||||
* src/DbPrompter.py: 2.4 filechooser
|
* src/DbPrompter.py: 2.4 filechooser
|
||||||
|
@ -50,9 +50,13 @@ from QuestionDialog import ErrorDialog
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
class FamilyGroup:
|
class FamilyGroup:
|
||||||
|
|
||||||
def __init__(self,database,family,doc,output,newpage=0):
|
def __init__(self,database,family_id,doc,output,newpage=0):
|
||||||
self.db = database
|
self.db = database
|
||||||
self.family = family
|
|
||||||
|
if family_id:
|
||||||
|
self.family = self.db.find_family_from_id(family_id)
|
||||||
|
else:
|
||||||
|
self.family = None
|
||||||
self.output = output
|
self.output = output
|
||||||
self.doc = doc
|
self.doc = doc
|
||||||
self.newpage = newpage
|
self.newpage = newpage
|
||||||
@ -126,11 +130,13 @@ class FamilyGroup:
|
|||||||
if self.standalone:
|
if self.standalone:
|
||||||
self.doc.close()
|
self.doc.close()
|
||||||
|
|
||||||
def dump_parent(self,person):
|
def dump_parent(self,person_id):
|
||||||
|
|
||||||
if not person:
|
if not person_id:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
person = self.db.find_person_from_id(person_id)
|
||||||
|
|
||||||
if person.get_gender() == RelLib.Person.male:
|
if person.get_gender() == RelLib.Person.male:
|
||||||
id = _("Husband")
|
id = _("Husband")
|
||||||
else:
|
else:
|
||||||
@ -146,8 +152,25 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
birth = person.get_birth()
|
birth_id = person.get_birth_id()
|
||||||
death = person.get_death()
|
bdate = ""
|
||||||
|
bplace = ""
|
||||||
|
if birth_id:
|
||||||
|
birth = self.db.find_event_from_id(birth_id)
|
||||||
|
bdate = birth.get_date()
|
||||||
|
bplace_id = birth.get_place_id()
|
||||||
|
if bplace_id:
|
||||||
|
bplace = self.db.find_place_from_id(bplace_id).get_title()
|
||||||
|
|
||||||
|
death_id = person.get_death_id()
|
||||||
|
ddate = ""
|
||||||
|
dplace = ""
|
||||||
|
if death_id:
|
||||||
|
death = self.db.find_event_from_id(death_id)
|
||||||
|
ddate = death.get_date()
|
||||||
|
dplace_id = death.get_place_id()
|
||||||
|
if dplace_id:
|
||||||
|
dplace = self.db.find_place_from_id(dplace_id).get_title()
|
||||||
|
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell("FGR-TextContents")
|
self.doc.start_cell("FGR-TextContents")
|
||||||
@ -157,12 +180,12 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell("FGR-TextContents")
|
self.doc.start_cell("FGR-TextContents")
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
self.doc.write_text(birth.get_date())
|
self.doc.write_text(bdate)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell("FGR-TextContentsEnd")
|
self.doc.start_cell("FGR-TextContentsEnd")
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
self.doc.write_text(birth.get_place_name())
|
self.doc.write_text(bplace)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
@ -175,25 +198,27 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell("FGR-TextContents")
|
self.doc.start_cell("FGR-TextContents")
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
self.doc.write_text(death.get_date())
|
self.doc.write_text(ddate)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell("FGR-TextContentsEnd")
|
self.doc.start_cell("FGR-TextContentsEnd")
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
self.doc.write_text(death.get_place_name())
|
self.doc.write_text(dplace)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
family = person.get_main_parents_family_id()
|
family_id = person.get_main_parents_family_id()
|
||||||
if family == None or family.get_father_id() == None:
|
father_name = ""
|
||||||
father_name = ""
|
mother_name = ""
|
||||||
else:
|
if family_id:
|
||||||
father_name = family.get_father_id().get_primary_name().get_regular_name()
|
family = self.db.find_family_from_id(family_id)
|
||||||
if family == None or family.get_mother_id() == None:
|
father_id = family.get_father_id()
|
||||||
mother_name = ""
|
if father_id:
|
||||||
else:
|
father_name = self.db.find_person_from_id(father_id).get_primary_name().get_regular_name()
|
||||||
mother_name = family.get_mother_id().get_primary_name().get_regular_name()
|
mother_id = family.get_mother_id()
|
||||||
|
if mother_id:
|
||||||
|
mother_name = self.db.find_person_from_id(mother_id).get_primary_name().get_regular_name()
|
||||||
|
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell("FGR-TextContents")
|
self.doc.start_cell("FGR-TextContents")
|
||||||
@ -224,12 +249,14 @@ class FamilyGroup:
|
|||||||
self.doc.end_table()
|
self.doc.end_table()
|
||||||
|
|
||||||
def dump_child_event(self,text,name,event):
|
def dump_child_event(self,text,name,event):
|
||||||
|
date = ""
|
||||||
|
place = ""
|
||||||
if event:
|
if event:
|
||||||
date = event.get_date()
|
date = event.get_date()
|
||||||
place = event.get_place_name()
|
place_id = event.get_place_id()
|
||||||
else:
|
if place_id:
|
||||||
date = ""
|
place = self.db.find_place_from_id(place_id).get_title()
|
||||||
place = ""
|
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell(text)
|
self.doc.start_cell(text)
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
@ -252,8 +279,9 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
def dump_child(self,index,person):
|
def dump_child(self,index,person_id):
|
||||||
|
|
||||||
|
person = self.db.find_person_from_id(person_id)
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell('FGR-TextChild1')
|
self.doc.start_cell('FGR-TextChild1')
|
||||||
self.doc.start_paragraph('FGR-ChildText')
|
self.doc.start_paragraph('FGR-ChildText')
|
||||||
@ -271,19 +299,38 @@ class FamilyGroup:
|
|||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
|
|
||||||
families = len(person.get_family_id_list())
|
families = len(person.get_family_id_list())
|
||||||
self.dump_child_event('FGR-TextChild1',_('Birth'),person.get_birth())
|
birth_id = person.get_birth_id()
|
||||||
if families == 0:
|
if birth_id:
|
||||||
self.dump_child_event('FGR-TextChild2',_('Death'),person.get_death())
|
birth = self.db.find_event_from_id(birth_id)
|
||||||
else:
|
else:
|
||||||
self.dump_child_event('FGR-TextChild1',_('Death'),person.get_death())
|
birth = None
|
||||||
|
death_id = person.get_death_id()
|
||||||
|
if death_id:
|
||||||
|
death = self.db.find_event_from_id(death_id)
|
||||||
|
else:
|
||||||
|
death = None
|
||||||
|
self.dump_child_event('FGR-TextChild1',_('Birth'),birth)
|
||||||
|
if families == 0:
|
||||||
|
self.dump_child_event('FGR-TextChild2',_('Death'),death)
|
||||||
|
else:
|
||||||
|
self.dump_child_event('FGR-TextChild1',_('Death'),death)
|
||||||
|
|
||||||
index = 1
|
index = 1
|
||||||
for family in person.get_family_id_list():
|
for family_id in person.get_family_id_list():
|
||||||
m = family.get_marriage()
|
family = self.db.find_family_from_id(family_id)
|
||||||
if person == family.get_father_id():
|
for event_id in family.get_event_list():
|
||||||
spouse = family.get_mother_id()
|
if event_id:
|
||||||
|
event = self.db.find_event_from_id(event_id)
|
||||||
|
if event.get_name() == "Marriage":
|
||||||
|
m = event
|
||||||
|
break
|
||||||
else:
|
else:
|
||||||
spouse = family.get_father_id()
|
m = None
|
||||||
|
|
||||||
|
if person_id == family.get_father_id():
|
||||||
|
spouse_id = family.get_mother_id()
|
||||||
|
else:
|
||||||
|
spouse_id = family.get_father_id()
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell('FGR-TextChild1')
|
self.doc.start_cell('FGR-TextChild1')
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
@ -296,7 +343,8 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.start_cell('FGR-TextContentsEnd',2)
|
self.doc.start_cell('FGR-TextContentsEnd',2)
|
||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
if spouse:
|
if spouse_id:
|
||||||
|
spouse = self.db.find_person_from_id(spouse_id)
|
||||||
self.doc.write_text(spouse.get_primary_name().get_regular_name())
|
self.doc.write_text(spouse.get_primary_name().get_regular_name())
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
@ -339,8 +387,8 @@ class FamilyGroup:
|
|||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
self.doc.end_row()
|
self.doc.end_row()
|
||||||
index = 1
|
index = 1
|
||||||
for child in self.family.get_child_id_list():
|
for child_id in self.family.get_child_id_list():
|
||||||
self.dump_child(index,child)
|
self.dump_child(index,child_id)
|
||||||
index = index + 1
|
index = index + 1
|
||||||
self.doc.end_table()
|
self.doc.end_table()
|
||||||
self.end()
|
self.end()
|
||||||
@ -356,6 +404,7 @@ class FamilyGroupDialog(Report.TextReportDialog):
|
|||||||
report_options = {}
|
report_options = {}
|
||||||
|
|
||||||
def __init__(self,database,person):
|
def __init__(self,database,person):
|
||||||
|
self.db = database
|
||||||
Report.TextReportDialog.__init__(self,database,person,self.report_options)
|
Report.TextReportDialog.__init__(self,database,person,self.report_options)
|
||||||
|
|
||||||
def get_title(self):
|
def get_title(self):
|
||||||
@ -384,7 +433,7 @@ class FamilyGroupDialog(Report.TextReportDialog):
|
|||||||
return (0, 0)
|
return (0, 0)
|
||||||
|
|
||||||
def get_report_extra_menu_info(self):
|
def get_report_extra_menu_info(self):
|
||||||
spouse_map = _build_spouse_map(self.person)
|
spouse_map = _build_spouse_map(self.db,self.person)
|
||||||
return (_("Spouse"), spouse_map, None, None)
|
return (_("Spouse"), spouse_map, None, None)
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -461,7 +510,7 @@ class FamilyGroupBareDialog(Report.BareReportDialog):
|
|||||||
|
|
||||||
self.new_person = None
|
self.new_person = None
|
||||||
|
|
||||||
self.spouse_map = _build_spouse_map(self.person)
|
self.spouse_map = _build_spouse_map(self.db,self.person)
|
||||||
if self.extra_menu:
|
if self.extra_menu:
|
||||||
myMenu = Utils.build_string_optmenu(self.spouse_map,self.spouse_name)
|
myMenu = Utils.build_string_optmenu(self.spouse_map,self.spouse_name)
|
||||||
self.extra_menu.set_menu(myMenu)
|
self.extra_menu.set_menu(myMenu)
|
||||||
@ -641,23 +690,25 @@ def _make_default_style(default_style):
|
|||||||
para.set_description(_("The style used for the parent's name"))
|
para.set_description(_("The style used for the parent's name"))
|
||||||
default_style.add_style('FGR-ParentName',para)
|
default_style.add_style('FGR-ParentName',para)
|
||||||
|
|
||||||
def _build_spouse_map(person):
|
def _build_spouse_map(database,person):
|
||||||
"""Create a mapping of all spouse names:families to be put
|
"""Create a mapping of all spouse names:families to be put
|
||||||
into the 'extra' option menu in the report options box. If
|
into the 'extra' option menu in the report options box. If
|
||||||
the selected person has never been married then this routine
|
the selected person has never been married then this routine
|
||||||
will return a placebo label and disable the OK button."""
|
will return a placebo label and disable the OK button."""
|
||||||
spouse_map = {}
|
spouse_map = {}
|
||||||
family_list = person.get_family_id_list()
|
family_list = person.get_family_id_list()
|
||||||
for family in family_list:
|
for family_id in family_list:
|
||||||
if person == family.get_father_id():
|
family = database.find_family_from_id(family_id)
|
||||||
spouse = family.get_mother_id()
|
if person.get_id() == family.get_father_id():
|
||||||
|
spouse_id = family.get_mother_id()
|
||||||
else:
|
else:
|
||||||
spouse = family.get_father_id()
|
spouse_id = family.get_father_id()
|
||||||
if spouse:
|
if spouse_id:
|
||||||
|
spouse = database.find_person_from_id(spouse_id)
|
||||||
name = spouse.get_primary_name().get_name()
|
name = spouse.get_primary_name().get_name()
|
||||||
else:
|
else:
|
||||||
name= _("unknown")
|
name= _("unknown")
|
||||||
spouse_map[name] = family
|
spouse_map[name] = family_id
|
||||||
return spouse_map
|
return spouse_map
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user