* src/plugins/FamilyGroup.py: Convert to db interface.
svn: r3122
This commit is contained in:
		| @@ -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 | ||||||
|  |  | ||||||
| #------------------------------------------------------------------------ | #------------------------------------------------------------------------ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user