* src/plugins/FtmStyleDescendants.py: Convert to db interface.
svn: r3121
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
2004-05-03  Alex Roitman  <shura@alex.neuro.umn.edu>
 | 
			
		||||
	* src/plugins/DetDescendantReport.py: Convert to db interface.
 | 
			
		||||
	* src/plugins/DetAncestralReport.py: Translate string.
 | 
			
		||||
	* src/plugins/FtmStyleDescendants.py: Convert to db interface.
 | 
			
		||||
 | 
			
		||||
2004-05-02  Don Allingham  <donaldallingham@users.sourceforge.net>
 | 
			
		||||
	* src/DbPrompter.py:  2.4 filechooser
 | 
			
		||||
 
 | 
			
		||||
@@ -85,22 +85,24 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
        cell = BaseDoc.TableCellStyle()
 | 
			
		||||
        self.doc.add_cell_style('FTD-Normal',cell)
 | 
			
		||||
 | 
			
		||||
    def apply_filter(self,person,index,generation=1):
 | 
			
		||||
    def apply_filter(self,person_id,index,generation=1):
 | 
			
		||||
 | 
			
		||||
        if person == None or generation > self.max_generations:
 | 
			
		||||
        if (not person_id) or (generation > self.max_generations):
 | 
			
		||||
            return
 | 
			
		||||
 | 
			
		||||
        self.anc_map[index] = person
 | 
			
		||||
        self.anc_map[index] = person_id
 | 
			
		||||
        try:
 | 
			
		||||
            self.gen_map[generation].append(index)
 | 
			
		||||
        except:
 | 
			
		||||
            self.gen_map[generation] = []
 | 
			
		||||
            self.gen_map[generation].append(index)
 | 
			
		||||
 | 
			
		||||
        for family in person.get_family_id_list():
 | 
			
		||||
            for child in family.get_child_id_list():
 | 
			
		||||
        person = self.database.find_person_from_id(person_id)
 | 
			
		||||
        for family_id in person.get_family_id_list():
 | 
			
		||||
            family = self.database.find_family_from_id(family_id)
 | 
			
		||||
            for child_id in family.get_child_id_list():
 | 
			
		||||
                ix = max(self.anc_map.keys())
 | 
			
		||||
                self.apply_filter(child,ix+1,generation+1)
 | 
			
		||||
                self.apply_filter(child_id,ix+1,generation+1)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def write_report(self):
 | 
			
		||||
@@ -108,7 +110,7 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
        if self.newpage:
 | 
			
		||||
            self.doc.page_break()
 | 
			
		||||
 | 
			
		||||
        self.apply_filter(self.start,1)
 | 
			
		||||
        self.apply_filter(self.start.get_id(),1)
 | 
			
		||||
        
 | 
			
		||||
        name = self.start.get_primary_name().get_regular_name()
 | 
			
		||||
        self.doc.start_paragraph("FTD-Title")
 | 
			
		||||
@@ -130,7 +132,8 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
            indexlist = self.gen_map[generation]
 | 
			
		||||
            indexlist.sort()
 | 
			
		||||
            for key in indexlist:
 | 
			
		||||
                person = self.anc_map[key]
 | 
			
		||||
                person_id = self.anc_map[key]
 | 
			
		||||
                person = self.database.find_person_from_id(person_id)
 | 
			
		||||
 | 
			
		||||
                pri_name = person.get_primary_name()
 | 
			
		||||
                self.doc.start_paragraph("FTD-Entry","%d." % key)
 | 
			
		||||
@@ -141,16 +144,28 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
 | 
			
		||||
                # Check birth record
 | 
			
		||||
        
 | 
			
		||||
                birth = person.get_birth()
 | 
			
		||||
                bplace = birth.get_place_name()
 | 
			
		||||
                birth_id = person.get_birth_id()
 | 
			
		||||
                bplace = ""
 | 
			
		||||
                bdate = ""
 | 
			
		||||
                if birth_id:
 | 
			
		||||
                    birth = self.database.find_event_from_id(birth_id)
 | 
			
		||||
                    bdate = birth.get_date()
 | 
			
		||||
                    bplace_id = birth.get_place_id()
 | 
			
		||||
                    if bplace_id:
 | 
			
		||||
                        bplace = self.database.find_place_from_id(bplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
                death = person.get_death()
 | 
			
		||||
                dplace = death.get_place_name()
 | 
			
		||||
                death_id = person.get_death_id()
 | 
			
		||||
                dplace = ""
 | 
			
		||||
                ddate = ""
 | 
			
		||||
                if death_id:
 | 
			
		||||
                    death = self.database.find_event_from_id(death_id)
 | 
			
		||||
                    ddate = death.get_date()
 | 
			
		||||
                    dplace_id = death.get_place_id()
 | 
			
		||||
                    if dplace_id:
 | 
			
		||||
                        dplace = self.database.find_place_from_id(dplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
                birth_valid = bdate != "" or bplace != ""
 | 
			
		||||
                death_valid = ddate != "" or dplace != ""
 | 
			
		||||
                birth_valid = bdate or bplace
 | 
			
		||||
                death_valid = ddate or dplace
 | 
			
		||||
 | 
			
		||||
                if birth_valid or death_valid:
 | 
			
		||||
                    if person.get_gender() == RelLib.Person.male:
 | 
			
		||||
@@ -460,12 +475,13 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
        keys.sort()
 | 
			
		||||
        for key in keys:
 | 
			
		||||
            srcref = self.sref_map[key]
 | 
			
		||||
            base = srcref.get_base_id()
 | 
			
		||||
            base_id = srcref.get_base_id()
 | 
			
		||||
            base = self.database.find_source_from_id(base_id)
 | 
			
		||||
            
 | 
			
		||||
            self.doc.start_paragraph('FTD-Endnotes',"%d." % key)
 | 
			
		||||
            self.doc.write_text(base.get_title())
 | 
			
		||||
 | 
			
		||||
            for item in [ base.get_author(), base.get_publication_info(), base.getAbbrev(),
 | 
			
		||||
            for item in [ base.get_author(), base.get_publication_info(), base.get_abbreviation(),
 | 
			
		||||
                          srcref.get_date().get_date(),]:
 | 
			
		||||
                if item:
 | 
			
		||||
                    self.doc.write_text('; %s' % item)
 | 
			
		||||
@@ -544,9 +560,16 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
            self.doc.end_paragraph()
 | 
			
		||||
            ncount += 1
 | 
			
		||||
            
 | 
			
		||||
        for event in person.get_event_list():
 | 
			
		||||
        for event_id in person.get_event_list():
 | 
			
		||||
            if not event_id:
 | 
			
		||||
                continue
 | 
			
		||||
            event = self.database.find_event_from_id(event_id)
 | 
			
		||||
            date = event.get_date()
 | 
			
		||||
            place = event.get_place_id()
 | 
			
		||||
            place_id = event.get_place_id()
 | 
			
		||||
            if place_id:
 | 
			
		||||
                place = self.database.find_place_from_id(place_id)
 | 
			
		||||
            else:
 | 
			
		||||
                place = None
 | 
			
		||||
 | 
			
		||||
            if not date and not place:
 | 
			
		||||
                continue
 | 
			
		||||
@@ -561,19 +584,19 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
            if date and place:
 | 
			
		||||
                self.doc.write_text(_('%(event_name)s: %(date)s, %(place)s%(endnotes)s. ') % {
 | 
			
		||||
                    'event_name' : _(event.get_name()),
 | 
			
		||||
                    'date' : event.get_date(),
 | 
			
		||||
                    'date' : date,
 | 
			
		||||
                    'endnotes' : self.endnotes(event),
 | 
			
		||||
                    'place' : event.get_place_name() })
 | 
			
		||||
                    'place' : place.get_title() })
 | 
			
		||||
            elif date:
 | 
			
		||||
                self.doc.write_text(_('%(event_name)s: %(date)s%(endnotes)s. ') % {
 | 
			
		||||
                    'event_name' : _(event.get_name()),
 | 
			
		||||
                    'endnotes' : self.endnotes(event),
 | 
			
		||||
                    'date' : event.get_date()})
 | 
			
		||||
                    'date' : date})
 | 
			
		||||
            else:
 | 
			
		||||
                self.doc.write_text(_('%(event_name)s: %(place)s%(endnotes)s. ') % {
 | 
			
		||||
                    'event_name' : _(event.get_name()),
 | 
			
		||||
                    'endnotes' : self.endnotes(event),
 | 
			
		||||
                    'place' : event.get_place_name() })
 | 
			
		||||
                    'place' : place.get_title() })
 | 
			
		||||
            if event.get_description():
 | 
			
		||||
                self.doc.write_text(event.get_description())
 | 
			
		||||
            self.doc.end_paragraph()
 | 
			
		||||
@@ -584,15 +607,25 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
        
 | 
			
		||||
        first = 1
 | 
			
		||||
 | 
			
		||||
        for family in person.get_family_id_list():
 | 
			
		||||
            if family.get_father_id() and family.get_mother_id():
 | 
			
		||||
                husband = family.get_father_id().get_primary_name().get_regular_name()
 | 
			
		||||
                wife = family.get_mother_id().get_primary_name().get_regular_name()
 | 
			
		||||
        for family_id in person.get_family_id_list():
 | 
			
		||||
            family = self.database.find_family_from_id(family_id)
 | 
			
		||||
            father_id = family.get_father_id()
 | 
			
		||||
            mother_id = family.get_mother_id()
 | 
			
		||||
            if father_id and mother_id:
 | 
			
		||||
                husband = self.database.find_person_from_id(father_id).get_primary_name().get_regular_name()
 | 
			
		||||
                wife = self.database.find_person_from_id(mother_id).get_primary_name().get_regular_name()
 | 
			
		||||
            else:
 | 
			
		||||
                continue
 | 
			
		||||
            for event in family.get_event_list():
 | 
			
		||||
            for event_id in family.get_event_list():
 | 
			
		||||
                if not event_id:
 | 
			
		||||
                    continue
 | 
			
		||||
                event = self.database.find_event_from_id(event_id)
 | 
			
		||||
                date = event.get_date()
 | 
			
		||||
                place = event.get_place_id()
 | 
			
		||||
                place_id = event.get_place_id()
 | 
			
		||||
                if place_id:
 | 
			
		||||
                    place = self.database.find_place_from_id(place_id)
 | 
			
		||||
                else:
 | 
			
		||||
                    place = None
 | 
			
		||||
 | 
			
		||||
                if not date and not place:
 | 
			
		||||
                    continue
 | 
			
		||||
@@ -606,19 +639,19 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
                if date and place:
 | 
			
		||||
                    self.doc.write_text(_('%(event_name)s: %(date)s, %(place)s%(endnotes)s. ') % {
 | 
			
		||||
                        'event_name' : _(event.get_name()),
 | 
			
		||||
                        'date' : event.get_date(),
 | 
			
		||||
                        'date' : date,
 | 
			
		||||
                        'endnotes' : self.endnotes(event),
 | 
			
		||||
                        'place' : event.get_place_name() })
 | 
			
		||||
                        'place' : place.get_title() })
 | 
			
		||||
                elif date:
 | 
			
		||||
                    self.doc.write_text(_('%(event_name)s: %(date)s%(endnotes)s. ') % {
 | 
			
		||||
                        'event_name' : _(event.get_name()),
 | 
			
		||||
                        'endnotes' : self.endnotes(event),
 | 
			
		||||
                        'date' : event.get_date()})
 | 
			
		||||
                        'date' : date})
 | 
			
		||||
                else:
 | 
			
		||||
                    self.doc.write_text(_('%(event_name)s: %(place)s%(endnotes)s. ') % {
 | 
			
		||||
                        'event_name' : _(event.get_name()),
 | 
			
		||||
                        'endnotes' : self.endnotes(event),
 | 
			
		||||
                        'place' : event.get_place_name() })
 | 
			
		||||
                        'place' : place.get_title() })
 | 
			
		||||
                if event.get_description():
 | 
			
		||||
                    self.doc.write_text(event.get_description())
 | 
			
		||||
                self.doc.end_paragraph()
 | 
			
		||||
@@ -629,20 +662,25 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
 | 
			
		||||
        name = person.get_primary_name().get_regular_name()
 | 
			
		||||
        
 | 
			
		||||
        for family in person.get_family_id_list():
 | 
			
		||||
        for family_id in person.get_family_id_list():
 | 
			
		||||
            family = self.database.find_family_from_id(family_id)
 | 
			
		||||
            first = 1
 | 
			
		||||
        
 | 
			
		||||
            if family.get_father_id() == person:
 | 
			
		||||
                spouse = family.get_mother_id()
 | 
			
		||||
            father_id = family.get_father_id()
 | 
			
		||||
            mother_id = family.get_mother_id()
 | 
			
		||||
            if father_id == person.get_id():
 | 
			
		||||
                spouse_id = mother_id
 | 
			
		||||
            else:
 | 
			
		||||
                spouse = family.get_father_id()
 | 
			
		||||
                spouse_id = father_id
 | 
			
		||||
            spouse = self.database.find_person_from_id(spouse_id)
 | 
			
		||||
 | 
			
		||||
            child_index = 0
 | 
			
		||||
            for child in family.get_child_id_list():
 | 
			
		||||
            for child_id in family.get_child_id_list():
 | 
			
		||||
                child = self.database.find_person_from_id(child_id)
 | 
			
		||||
                child_index = child_index + 1
 | 
			
		||||
                child_name = child.get_primary_name().get_regular_name()
 | 
			
		||||
                for (ind,p) in self.anc_map.items():
 | 
			
		||||
                    if p == child:
 | 
			
		||||
                for (ind,p_id) in self.anc_map.items():
 | 
			
		||||
                    if p_id == child_id:
 | 
			
		||||
                        index = ind
 | 
			
		||||
 | 
			
		||||
                if first:
 | 
			
		||||
@@ -672,13 +710,25 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
                self.doc.start_cell('FTD-Normal')
 | 
			
		||||
                self.doc.start_paragraph('FTD-Details')
 | 
			
		||||
 | 
			
		||||
                death = child.get_death()
 | 
			
		||||
                dplace = death.get_place_name()
 | 
			
		||||
                ddate = death.get_date()
 | 
			
		||||
        
 | 
			
		||||
                birth = child.get_birth()
 | 
			
		||||
                bplace = birth.get_place_name()
 | 
			
		||||
                birth_id = child.get_birth_id()
 | 
			
		||||
                bplace = ""
 | 
			
		||||
                bdate = ""
 | 
			
		||||
                if birth_id:
 | 
			
		||||
                    birth = self.database.find_event_from_id(birth_id)
 | 
			
		||||
                    bdate = birth.get_date()
 | 
			
		||||
                    bplace_id = birth.get_place_id()
 | 
			
		||||
                    if bplace_id:
 | 
			
		||||
                        bplace = self.database.find_place_from_id(bplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
                death_id = child.get_death_id()
 | 
			
		||||
                dplace = ""
 | 
			
		||||
                ddate = ""
 | 
			
		||||
                if death_id:
 | 
			
		||||
                    death = self.database.find_event_from_id(death_id)
 | 
			
		||||
                    ddate = death.get_date()
 | 
			
		||||
                    dplace_id = death.get_place_id()
 | 
			
		||||
                    if dplace_id:
 | 
			
		||||
                        dplace = self.database.find_place_from_id(dplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
                if child.get_gender() == RelLib.Person.male:
 | 
			
		||||
                    if bdate:
 | 
			
		||||
@@ -949,18 +999,32 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
        family_list = person.get_family_id_list()
 | 
			
		||||
        if not family_list:
 | 
			
		||||
            return
 | 
			
		||||
        family = family_list[0]
 | 
			
		||||
        if family.get_father_id() == person:
 | 
			
		||||
            spouse = family.get_mother_id()
 | 
			
		||||
        family_id = family_list[0]
 | 
			
		||||
        family = self.database.find_family_from_id(family_id)
 | 
			
		||||
        if family.get_father_id() == person.get_id():
 | 
			
		||||
            spouse_id = family.get_mother_id()
 | 
			
		||||
        else:
 | 
			
		||||
            spouse = family.get_father_id()
 | 
			
		||||
        if not spouse:
 | 
			
		||||
            spouse_id = family.get_father_id()
 | 
			
		||||
        if not spouse_id:
 | 
			
		||||
            return
 | 
			
		||||
        event = family.get_marriage()
 | 
			
		||||
        spouse = self.database.find_person_from_id(spouse_id)
 | 
			
		||||
        
 | 
			
		||||
        for event_id in family.get_event_list():
 | 
			
		||||
            if event_id:
 | 
			
		||||
                event = self.database.find_event_from_id(event_id)
 | 
			
		||||
                if event.get_name() == "Marriage":
 | 
			
		||||
                    break
 | 
			
		||||
        else:
 | 
			
		||||
            event = None
 | 
			
		||||
 | 
			
		||||
        if not event:
 | 
			
		||||
            return
 | 
			
		||||
        date = event.get_date()
 | 
			
		||||
        place = event.get_place_name()
 | 
			
		||||
        place_id = event.get_place_id()
 | 
			
		||||
        if place_id:
 | 
			
		||||
            place = self.database.find_place_from_id(place_id).get_title()
 | 
			
		||||
        else:
 | 
			
		||||
            place = ""
 | 
			
		||||
 | 
			
		||||
        if date and place:
 | 
			
		||||
            if person.get_gender() == RelLib.Person.male:
 | 
			
		||||
@@ -1008,16 +1072,28 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
                        'endnotes' : self.endnotes(event)})
 | 
			
		||||
        self.doc.write_text(' ')
 | 
			
		||||
 | 
			
		||||
        death = spouse.get_death()
 | 
			
		||||
        dplace = death.get_place_name()
 | 
			
		||||
        ddate = death.get_date()
 | 
			
		||||
        
 | 
			
		||||
        birth = spouse.get_birth()
 | 
			
		||||
        bplace = birth.get_place_name()
 | 
			
		||||
        birth_id = spouse.get_birth_id()
 | 
			
		||||
        bplace = ""
 | 
			
		||||
        bdate = ""
 | 
			
		||||
        if birth_id:
 | 
			
		||||
            birth = self.database.find_event_from_id(birth_id)
 | 
			
		||||
            bdate = birth.get_date()
 | 
			
		||||
            bplace_id = birth.get_place_id()
 | 
			
		||||
            if bplace_id:
 | 
			
		||||
                bplace = self.database.find_place_from_id(bplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
        death_valid = ddate != "" or dplace != ""
 | 
			
		||||
        birth_valid = bdate != "" or bplace != ""
 | 
			
		||||
        death_id = spouse.get_death_id()
 | 
			
		||||
        dplace = ""
 | 
			
		||||
        ddate = ""
 | 
			
		||||
        if death_id:
 | 
			
		||||
            death = self.database.find_event_from_id(death_id)
 | 
			
		||||
            ddate = death.get_date()
 | 
			
		||||
            dplace_id = death.get_place_id()
 | 
			
		||||
            if dplace_id:
 | 
			
		||||
                dplace = self.database.find_place_from_id(dplace_id).get_title()
 | 
			
		||||
 | 
			
		||||
        death_valid = ddate or dplace
 | 
			
		||||
        birth_valid = bdate or bplace
 | 
			
		||||
 | 
			
		||||
        if birth_valid or death_valid:
 | 
			
		||||
            if spouse.get_gender() == RelLib.Person.male:
 | 
			
		||||
@@ -1303,10 +1379,19 @@ class FtmDescendantReport(Report.Report):
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    def print_parents(self,person,dead):
 | 
			
		||||
        family = person.get_main_parents_family_id()
 | 
			
		||||
        if family:
 | 
			
		||||
            mother = family.get_mother_id()
 | 
			
		||||
            father = family.get_father_id()
 | 
			
		||||
        family_id = person.get_main_parents_family_id()
 | 
			
		||||
        if family_id:
 | 
			
		||||
            family = self.database.find_family_from_id(family_id)
 | 
			
		||||
            mother_id = family.get_mother_id()
 | 
			
		||||
            if mother_id:
 | 
			
		||||
                mother = self.database.find_person_from_id(mother_id)
 | 
			
		||||
            else:
 | 
			
		||||
                mother = None
 | 
			
		||||
            father_id = family.get_father_id()
 | 
			
		||||
            if father_id:
 | 
			
		||||
                father = self.database.find_person_from_id(father_id)
 | 
			
		||||
            else:
 | 
			
		||||
                father = None
 | 
			
		||||
            if person.get_gender() == RelLib.Person.male:
 | 
			
		||||
                if mother and father:
 | 
			
		||||
                    if dead:
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user