def add_family(self, family): """ Add a family to the Graph. The node id will be the family's gramps id. """ family_id = family.get_gramps_id() label = "" marriage = utils.find_marriage(self.__db, family) if marriage: label = self._get_date(marriage.get_date_object()) if self.includeid == 1 and label: # same line label = "%s (%s)" % (label, family_id) elif self.includeid == 1 and not label: label = "(%s)" % family_id elif self.includeid == 2 and label: # own line label = "%s\\n(%s)" % (label, family_id) elif self.includeid == 2 and not label: label = "(%s)" % family_id color = "" fill = "" style = "solid" if self.colorize == 'colored': color = self.colors['family'] elif self.colorize == 'filled': fill = self.colors['family'] style = "filled" self.doc.add_node(family_id, label, "ellipse", color, style, fill)
def add_family(self, family): """ Add a family to the Graph. The node id will be the family's gramps id. """ family_id = family.get_gramps_id() label = "" marriage = ReportUtils.find_marriage(self.__db, family) if marriage: label = self._get_date(marriage.get_date_object()) if self.includeid == 1 and label: # same line label = "%s (%s)" % (label, family_id) elif self.includeid == 1 and not label: label = "(%s)" % family_id elif self.includeid == 2 and label: # own line label = "%s\\n(%s)" % (label, family_id) elif self.includeid == 2 and not label: label = "(%s)" % family_id color = "" fill = "" style = "solid" if self.colorize == 'colored': color = self.colors['family'] elif self.colorize == 'filled': fill = self.colors['family'] style = "filled" self.doc.add_node(family_id, label, "ellipse", color, style, fill)
def add_family(self, family): """ Add a family to the Graph. The node id will be the family's gramps id. """ family_id = family.get_gramps_id() label = "" marriage = ReportUtils.find_marriage(self.__db, family) if marriage: label = self._get_date(marriage.get_date_object()) color = "" fill = "" style = "solid" if self.colorize == 'colored': color = self.colors['family'] elif self.colorize == 'filled': fill = self.colors['family'] style = "filled" self.doc.add_node(family_id, label, "ellipse", color, style, fill)
def display(self, tobj, person): """Fill text buffer tobj with detailed info on person person.""" normal = tobj.create_tag() normal.set_property('indent', 10) normal.set_property('pixels-above-lines', 1) normal.set_property('pixels-below-lines', 1) indent = tobj.create_tag() indent.set_property('indent', 30) indent.set_property('pixels-above-lines', 1) indent.set_property('pixels-below-lines', 1) title = tobj.create_tag() title.set_property('weight', Pango.Weight.BOLD) title.set_property('scale', 1.2) self.add(tobj, title, name_displayer.display(person)) self.add(tobj, normal, "%s:\t%s" % (_('ID'), person.get_gramps_id())) self.add(tobj, normal, "%s:\t%s" % (_('Gender'), sex[person.get_gender()])) bref = person.get_birth_ref() if bref: self.add(tobj, normal, "%s:\t%s" % (_('Birth'), self.get_event_info(bref.ref))) dref = person.get_death_ref() if dref: self.add(tobj, normal, "%s:\t%s" % (_('Death'), self.get_event_info(dref.ref))) nlist = person.get_alternate_names() if len(nlist) > 0: self.add(tobj, title, _("Alternate Names")) for name in nlist: self.add(tobj, normal, name_displayer.display_name(name)) elist = person.get_event_ref_list() if len(elist) > 0: self.add(tobj, title, _("Events")) for event_ref in person.get_event_ref_list(): event_handle = event_ref.ref role = event_ref.get_role() name = str( self.database.get_event_from_handle( event_handle).get_type()) if role.is_primary(): self.add( tobj, normal, "%s:\t%s" % (name, self.get_event_info(event_handle))) else: self.add( tobj, normal, "%s (%s):\t%s" % (name, role, self.get_event_info(event_handle))) plist = person.get_parent_family_handle_list() if len(plist) > 0: self.add(tobj, title, _("Parents")) for fid in person.get_parent_family_handle_list(): (fname, mname, gid) = self.get_parent_info(fid) self.add(tobj, normal, "%s:\t%s" % (_('Family ID'), gid)) if fname: self.add(tobj, indent, "%s:\t%s" % (_('Father'), fname)) if mname: self.add(tobj, indent, "%s:\t%s" % (_('Mother'), mname)) else: self.add(tobj, normal, _("No parents found")) self.add(tobj, title, _("Spouses")) slist = person.get_family_handle_list() if len(slist) > 0: for fid in slist: (fname, mname, pid) = self.get_parent_info(fid) family = self.database.get_family_from_handle(fid) self.add(tobj, normal, "%s:\t%s" % (_('Family ID'), pid)) spouse_id = ReportUtils.find_spouse(person, family) if spouse_id: spouse = self.database.get_person_from_handle(spouse_id) self.add(tobj, indent, "%s:\t%s" % (_('Spouse'), name_of(spouse))) relstr = str(family.get_relationship()) self.add(tobj, indent, "%s:\t%s" % (_('Type'), relstr)) event = ReportUtils.find_marriage(self.database, family) if event: self.add( tobj, indent, "%s:\t%s" % (_('Marriage'), self.get_event_info(event.get_handle()))) for child_ref in family.get_child_ref_list(): child = self.database.get_person_from_handle(child_ref.ref) self.add(tobj, indent, "%s:\t%s" % (_('Child'), name_of(child))) else: self.add(tobj, normal, _("No spouses or children found")) alist = person.get_address_list() if len(alist) > 0: self.add(tobj, title, _("Addresses")) for addr in alist: location = ", ".join([ addr.get_street(), addr.get_city(), addr.get_state(), addr.get_country(), addr.get_postal_code(), addr.get_phone() ]) self.add(tobj, normal, location.strip())
def display(self, tobj, person): """Fill text buffer tobj with detailed info on person person.""" normal = tobj.create_tag() normal.set_property('indent', 10) normal.set_property('pixels-above-lines', 1) normal.set_property('pixels-below-lines', 1) indent = tobj.create_tag() indent.set_property('indent', 30) indent.set_property('pixels-above-lines', 1) indent.set_property('pixels-below-lines', 1) title = tobj.create_tag() title.set_property('weight', Pango.Weight.BOLD) title.set_property('scale', 1.2) self.add(tobj, title, name_displayer.display(person)) self.add(tobj, normal, KEYVAL % { 'key': _('ID'), 'value': person.get_gramps_id() }) self.add( tobj, normal, KEYVAL % { 'key': _('Gender'), 'value': sex[person.get_gender()] }) bref = person.get_birth_ref() if bref: self.add( tobj, normal, KEYVAL % { 'key': _('Birth'), 'value': self.get_event_info(bref.ref) }) dref = person.get_death_ref() if dref: self.add( tobj, normal, KEYVAL % { 'key': _('Death'), 'value': self.get_event_info(dref.ref) }) nlist = person.get_alternate_names() if len(nlist) > 0: self.add(tobj, title, _("Alternate Names")) for name in nlist: self.add(tobj, normal, name_displayer.display_name(name)) elist = person.get_event_ref_list() if len(elist) > 0: self.add(tobj, title, _("Events")) for event_ref in person.get_event_ref_list(): event_handle = event_ref.ref role = event_ref.get_role() name = str( self.database.get_event_from_handle( event_handle).get_type()) ev_info = self.get_event_info(event_handle) if role.is_primary(): self.add(tobj, normal, KEYVAL % { 'key': name, 'value': ev_info }) else: self.add( tobj, normal, # translators: needed for French "%(name)s (%(role)s):\t%(info)s" % { 'name': name, 'role': role, 'info': ev_info }) plist = person.get_parent_family_handle_list() if len(plist) > 0: self.add(tobj, title, _("Parents")) for fid in person.get_parent_family_handle_list(): (fname, mname, gid) = self.get_parent_info(fid) self.add(tobj, normal, KEYVAL % { 'key': _('Family ID'), 'value': gid }) if fname: self.add(tobj, indent, KEYVAL % { 'key': _('Father'), 'value': fname }) if mname: self.add(tobj, indent, KEYVAL % { 'key': _('Mother'), 'value': mname }) else: self.add(tobj, normal, _("No parents found")) self.add(tobj, title, _("Spouses")) slist = person.get_family_handle_list() if len(slist) > 0: for fid in slist: (fname, mname, pid) = self.get_parent_info(fid) family = self.database.get_family_from_handle(fid) self.add(tobj, normal, KEYVAL % { 'key': _('Family ID'), 'value': pid }) spouse_id = utils.find_spouse(person, family) if spouse_id: spouse = self.database.get_person_from_handle(spouse_id) self.add( tobj, indent, KEYVAL % { 'key': _('Spouse'), 'value': name_of(spouse) }) relstr = str(family.get_relationship()) self.add(tobj, indent, KEYVAL % { 'key': _('Type'), 'value': relstr }) event = utils.find_marriage(self.database, family) if event: m_info = self.get_event_info(event.get_handle()) self.add(tobj, indent, KEYVAL % { 'key': _('Marriage'), 'value': m_info }) for child_ref in family.get_child_ref_list(): child = self.database.get_person_from_handle(child_ref.ref) self.add( tobj, indent, KEYVAL % { 'key': _('Child'), 'value': name_of(child) }) else: self.add(tobj, normal, _("No spouses or children found")) alist = person.get_address_list() if len(alist) > 0: self.add(tobj, title, _("Addresses")) for addr in alist: # TODO for Arabic, should the next line's comma be translated? location = ", ".join([ addr.get_street(), addr.get_city(), addr.get_state(), addr.get_country(), addr.get_postal_code(), addr.get_phone() ]) self.add(tobj, normal, location.strip())
def display(self, tobj, person): """Fill text buffer tobj with detailed info on person person.""" normal = tobj.create_tag() normal.set_property('indent', 10) normal.set_property('pixels-above-lines', 1) normal.set_property('pixels-below-lines', 1) indent = tobj.create_tag() indent.set_property('indent', 30) indent.set_property('pixels-above-lines', 1) indent.set_property('pixels-below-lines', 1) title = tobj.create_tag() title.set_property('weight', Pango.Weight.BOLD) title.set_property('scale', 1.2) self.add(tobj, title, name_displayer.display(person)) self.add(tobj, normal, KEYVAL % {'key': _('ID'), 'value': person.get_gramps_id()}) self.add(tobj, normal, KEYVAL % {'key': _('Gender'), 'value': sex[person.get_gender()]}) bref = person.get_birth_ref() if bref: self.add(tobj, normal, KEYVAL % {'key': _('Birth'), 'value': self.get_event_info(bref.ref)}) dref = person.get_death_ref() if dref: self.add(tobj, normal, KEYVAL % {'key': _('Death'), 'value': self.get_event_info(dref.ref)}) nlist = person.get_alternate_names() if len(nlist) > 0: self.add(tobj, title, _("Alternate Names")) for name in nlist: self.add(tobj, normal, name_displayer.display_name(name)) elist = person.get_event_ref_list() if len(elist) > 0: self.add(tobj, title, _("Events")) for event_ref in person.get_event_ref_list(): event_handle = event_ref.ref role = event_ref.get_role() name = str( self.database.get_event_from_handle(event_handle).get_type()) ev_info = self.get_event_info(event_handle) if role.is_primary(): self.add(tobj, normal, KEYVAL % {'key': name, 'value': ev_info}) else: self.add(tobj, normal, # translators: needed for French "%(name)s (%(role)s):\t%(info)s" % {'name': name, 'role': role, 'info': ev_info}) plist = person.get_parent_family_handle_list() if len(plist) > 0: self.add(tobj, title, _("Parents")) for fid in person.get_parent_family_handle_list(): (fname, mname, gid) = self.get_parent_info(fid) self.add(tobj, normal, KEYVAL % {'key': _('Family ID'), 'value': gid}) if fname: self.add(tobj, indent, KEYVAL % {'key': _('Father'), 'value': fname}) if mname: self.add(tobj, indent, KEYVAL % {'key': _('Mother'), 'value': mname}) else: self.add(tobj, normal, _("No parents found")) self.add(tobj, title, _("Spouses")) slist = person.get_family_handle_list() if len(slist) > 0: for fid in slist: (fname, mname, pid) = self.get_parent_info(fid) family = self.database.get_family_from_handle(fid) self.add(tobj, normal, KEYVAL % {'key': _('Family ID'), 'value': pid}) spouse_id = utils.find_spouse(person, family) if spouse_id: spouse = self.database.get_person_from_handle(spouse_id) self.add(tobj, indent, KEYVAL % {'key': _('Spouse'), 'value': name_of(spouse)}) relstr = str(family.get_relationship()) self.add(tobj, indent, KEYVAL % {'key': _('Type'), 'value': relstr}) event = utils.find_marriage(self.database, family) if event: m_info = self.get_event_info(event.get_handle()) self.add(tobj, indent, KEYVAL % {'key': _('Marriage'), 'value': m_info}) for child_ref in family.get_child_ref_list(): child = self.database.get_person_from_handle(child_ref.ref) self.add(tobj, indent, KEYVAL % {'key': _('Child'), 'value': name_of(child)}) else: self.add(tobj, normal, _("No spouses or children found")) alist = person.get_address_list() if len(alist) > 0: self.add(tobj, title, _("Addresses")) for addr in alist: location = ", ".join([addr.get_street(), addr.get_city(), addr.get_state(), addr.get_country(), addr.get_postal_code(), addr.get_phone()]) self.add(tobj, normal, location.strip())
def listpersonref(self): sc = {'source': 'S_ID', 'citalist': 'C_ID' } stc = {} citation_without_notes = 0 EMPTY = " " indexlist = list() def toYear(date): yeartext = date.get_year() return yeartext def toNbr(text): text = text[1:] while text[0] == "0": text = text[1:] return text genderlist = ['F','M','X'] # build citasource dictionary and cl list sc = defaultdict(list) cl = [] i=1 for ci in self.__db.iter_citations(): if ci.source_handle in self.source_handles: sc[ci.source_handle].append(ci.handle) cl.append(ci.handle) # build citations - event dic xy #(a,b): set([('Citation', 'c4a8c46041e08799b17')]) # event: c4a8c4f95b01e38564a event: Taufe ci = defaultdict(list) for ev in self.__db.iter_events(): refhandlelist = ev.get_referenced_handles() for (a,b) in refhandlelist: if a == 'Citation': if b in cl: #! ci[ev.handle].append(b) ci_evkeys = ci.keys() #*********************************************************************** # # build godparentsdict of all persons # gpdic ={} tzdic ={} gpdic = defaultdict(list) tzdic = defaultdict(list) for pe in self.__db.get_person_handles(): for eventref in self.__db.get_person_from_handle(pe).event_ref_list: if not eventref.get_role().is_primary(): if eventref.get_role() == "Pate": gpdic[eventref.ref].append((eventref.get_role(),pe)) elif eventref.get_role() == "Trauzeuge": tzdic[eventref.ref].append((eventref.get_role(),pe)) indexlist.append(self.__db.get_person_from_handle(pe).gramps_id) gpdickeys = gpdic.keys() tzdickeys = tzdic.keys() for i in gpdic.keys(): print(self.__db.get_event_from_handle(i).get_date_object()) for (a,b) in gpdic[i]: print("TEIL ",a ,name_displayer.display(self.__db.get_person_from_handle(b)) ,self.__db.get_person_from_handle(b).gramps_id) print("GPDIC ",len(gpdickeys)) for i in tzdic.keys(): print(self.__db.get_event_from_handle(i).get_date_object()) for (a,b) in tzdic[i]: print("Trauzeuge ",a ,name_displayer.display(self.__db.get_person_from_handle(b)) ,self.__db.get_person_from_handle(b).gramps_id) print("TZDIC ",len(tzdickeys)) #*********************************************************************** # # build family list of all families with familyevent in citation # # a family handle # famlist =[] # famdic = {} for fh in self.__db.get_family_handles(): for eventref in self.__db.get_family_from_handle(fh).event_ref_list: if eventref.ref in ci_evkeys: famlist.append(fh) # Each family only once famlist = list(set(famlist)) # for fi,f in enumerate(famlist): # famdic[f]=fi #*********************************************************************** # # build pedic of all persons in families with familyevent in citation # # k gramps_id # v 1...n pedic ={} self.doc.start_paragraph("SRC-SourceTitle") self.doc.write_text(_("Person with Citations")) self.doc.end_paragraph() self.doc.start_table("Corpus Attributes", "SRC-VISONETable") name_list =["Zeile 1", "Zeile 2"] self.progress.set_pass(_('Start Table Corpus'), len(name_list)) for nl in name_list: self.doc.start_row() self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text(nl) self.doc.write_text(self.filter.get_name()) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() self.doc.end_table() self.progress.set_pass(_('Start Table Families'), len(famlist)) self.doc.start_table("Families", "SRC-VISONETable") ## column_titles = [_("Prim_ID"), _("Gramps_ID"), _("Role"), _("Relation"), _("LNr"), _("Ev ID"),_("Event"), _("Date"), _("Year"), _("Age Primary"), _("Age Person"), _("gender Primary"), _("gender Person") , _("Person"),_("Primary"), _("Person birth"), _("Person Clan"),_("Primary Clan"),_("Event Place"),_("FamID"),_("AnzKind")] column_titles = [_("Id"), "Status", "FatherId", "MotherId", "Children", "HUSB_ORD", "WIFE_ORD", "MARR_DAT", "FAMI_RES",_("Fam_ID"), _("Father_ID"), _("Mother_ID"), _("Children_ID")] i = 0 self.doc.start_row() for title in column_titles: self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text(title) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() i=0 ii=0 fid = 0 for f in sorted(famlist): famidtext = "" fathernametxt = "" mothernametxt = "" fatheridtxt = "" motheridtxt = "" childtxt = "" fatherordertxt = "" motherordertxt = "" marriagedatetxt ="" residencetxt = "" family = self.__db.get_family_from_handle(f) famidtxt = (" %s" % toNbr(family.gramps_id)) famreltxt = family.get_relationship() marriagedatetxt = family if famreltxt == "Verheiratet": famreltxt = "M" elif famreltxt == "Unverheiratet": # print(famreltxt) famreltxt = " " # print("FAM ",famreltxt) elif famreltxt == "Unbekannt": famreltxt = " " marriage = ReportUtils.find_marriage(self.__db, family) if marriage: marriagedatetxt = self.__format_date(marriage.get_date_object()) residencetxt = self.find_residence(family) if family.get_father_handle(): fathernametxt = fathernametxt + self.__db.get_person_from_handle(family.get_father_handle()).primary_name.get_name() famhandlelist = self.__db.get_person_from_handle(family.get_father_handle()).get_family_handle_list() fatherordertxt = ("%s" % len(famhandlelist)) fatheridtxt = self.__db.get_person_from_handle(family.get_father_handle()).gramps_id indexlist.append(fatheridtxt) fatheridtxt = toNbr(fatheridtxt) if family.get_mother_handle(): mothernametxt = mothernametxt + self.__db.get_person_from_handle(family.get_mother_handle()).primary_name.get_name() famhandlelist = self.__db.get_person_from_handle(family.get_mother_handle()).get_family_handle_list() motheridtxt = self.__db.get_person_from_handle(family.get_mother_handle()).gramps_id motherordertxt = ("%s" % len(famhandlelist)) indexlist.append(motheridtxt) motheridtxt = toNbr(motheridtxt) # BUG only count not order childtxt ="" for ch in family.get_child_ref_list(): child = self.__db.get_person_from_handle(ch.ref) if child: childtxt1 = child.get_gramps_id() childtxt1 = childtxt1 + ";" indexlist.append(child.get_gramps_id()) childtxt1 = toNbr(childtxt1) childtxt = childtxt + childtxt1 fid += 1 line = [] # line.append(fid) line.append(toNbr(famidtxt)) line.append(famreltxt) line.append(fatheridtxt) line.append(motheridtxt) line.append(childtxt) line.append(fatherordertxt) line.append(motherordertxt) line.append(marriagedatetxt) line.append(residencetxt[4:-2]) line.append(famidtxt) line.append(fathernametxt) line.append(mothernametxt) self.doc.start_row() for l in line: self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % l) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() self.progress.step() self.doc.end_table() self.doc.start_table("Individuals", "SRC-VISONETable") column_titles = [_("Id"), "Name", "Gender", "ORD", "BIRT_DATE", "BIRT_PLACE", "DEAT_DATE", "DEAT_PLACE", "OCCU", "PersonID2"] # Id Name Gender ORD BIRT_DATE Rolle PersonID2 i = 0 self.doc.start_row() for title in column_titles: self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text(title) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() l = len(indexlist) indexlist = list(set(indexlist)) self.progress.set_pass(_('Start Table Individuals'), len(indexlist)) # for m in indexlist: # print(m) pi = 1 for il in indexlist: self.doc.start_row() person = self.__db.get_person_from_gramps_id(il) # Id self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % toNbr(il)) self.doc.end_paragraph() self.doc.end_cell() # Name self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % person.primary_name.get_gedcom_name()) self.doc.end_paragraph() self.doc.end_cell() # Gender self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % genderlist[person.get_gender()]) self.doc.end_paragraph() self.doc.end_cell() # Ord self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % " ") # person.primary_name.get_name()) self.doc.end_paragraph() self.doc.end_cell() # Birth Date self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") birth_ref = person.get_birth_ref() birth_date = None birthtxt = " " birthplacetxt = " " if birth_ref: birthtxt = self.__format_date(self.__db.get_event_from_handle(birth_ref.ref).get_date_object()) # birthplacetxt = self.find_place(self.__db.get_event_from_handle(birth_ref.ref).place) birthplacetxt = place_displayer.display_event(self.__db, self.__db.get_event_from_handle(birth_ref.ref), self.pl_format) self.doc.write_text(_("%s") % birthtxt) self.doc.end_paragraph() self.doc.end_cell() # Place of Event self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % birthplacetxt[4:-2]) self.doc.end_paragraph() self.doc.end_cell() # Death Date self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") death_ref = person.get_death_ref() death_date = None deathtxt = " " deathplacetxt = " " if death_ref: deathtxt = self.__format_date(self.__db.get_event_from_handle(death_ref.ref).get_date_object()) deathplacetxt = place_displayer.display_event(self.__db, self.__db.get_event_from_handle(death_ref.ref), self.pl_format) self.doc.write_text(_("%s") % deathtxt) self.doc.end_paragraph() self.doc.end_cell() # Place of Event self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % deathplacetxt[4:-2]) self.doc.end_paragraph() self.doc.end_cell() # Occupation self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % self.find_occupation(person)) self.doc.end_paragraph() self.doc.end_cell() # Person_ID self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % il) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() pi += 1 print (l,len(indexlist)) self.progress.step() self.doc.end_table() self.progress.set_pass(_('Start Table Relation'), len(indexlist)) self.doc.start_table("Relation", "SRC-VISONETable") column_titles = [_("Id"), "Name", "Candidate", "Godparent", "#DATE"] #_("Id"), "Name", "Candidate", "Godparent", "#DATE" # # self.doc.start_row() self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text("Patenschaften") self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() # i = 0 self.doc.start_row() for title in column_titles: self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text(title) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() l = len(indexlist) indexlist = list(set(indexlist)) # for m in indexlist: # print(m) pi = 1 for il in indexlist: person = self.__db.get_person_from_gramps_id(il) for eventref in person.get_event_ref_list(): event = self.__db.get_event_from_handle(eventref.ref) if eventref.get_role().is_primary() and event.type.is_baptism(): self.doc.start_row() # EventId self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % toNbr(event.gramps_id)) self.doc.end_paragraph() self.doc.end_cell() # Name self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("Bapt %s") % event.get_description()) self.doc.end_paragraph() self.doc.end_cell() # Candidate self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % toNbr(il)) self.doc.end_paragraph() self.doc.end_cell() # Godparents patentxt ="" for i in gpdickeys: if self.__db.get_event_from_handle(i).gramps_id == event.gramps_id: for (a,b) in gpdic[i]: patentxt = patentxt + toNbr(self.__db.get_person_from_handle(b).gramps_id) +";" self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % patentxt) self.doc.end_paragraph() self.doc.end_cell() # Date self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_(" %s") % self.__format_date(event.get_date_object())) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() pi += 1 self.progress.step() print (l,len(indexlist)) self.doc.end_table() self.progress.set_pass(_('Start Table Trauzeugen'), len(indexlist)) self.doc.start_table("Trauzeugen", "SRC-VISONETable") column_titles = [_("Id"), "Name", "Family", "Trauzeuge", "#DATE"] #_("Id"), "Name", "Candidate", "Godparent", "#DATE" # # self.doc.start_row() self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text("Trauzeugen") self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() # i = 0 self.doc.start_row() for title in column_titles: self.doc.start_cell("SRC-TableColumn") self.doc.start_paragraph("SRC-ColumnTitle") self.doc.write_text(title) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() l = len(indexlist) indexlist = list(set(indexlist)) # for m in indexlist: # print(m) pi = 1 for f in sorted(famlist): fam = self.__db.get_family_from_handle(f) if fam: print("FFFFFFFFF ",len(get_primary_event_ref_list(self.__db, fam))) for event_ref in get_primary_event_ref_list(self.__db, fam): if event_ref: event = self.__db.get_event_from_handle(event_ref.ref) if event.get_type() == EventType(EventType.MARRIAGE): self.doc.start_row() # MarrEventId self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % toNbr(event.gramps_id)) self.doc.end_paragraph() self.doc.end_cell() # Name self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("Marr %s") % event.get_description()) self.doc.end_paragraph() self.doc.end_cell() # Fam_Candidate self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % toNbr(fam.gramps_id)) self.doc.end_paragraph() self.doc.end_cell() # Trauzeugen tztxt ="" for i in tzdickeys: # print(self.__db.get_event_from_handle(i).gramps_id, event.gramps_id) if self.__db.get_event_from_handle(i).gramps_id == event.gramps_id: print(event.gramps_id) for (a,b) in tzdic[i]: tztxt = tztxt + toNbr(self.__db.get_person_from_handle(b).gramps_id) +";" self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_("%s") % tztxt) self.doc.end_paragraph() self.doc.end_cell() # Date self.doc.start_cell("SRC-Cell") self.doc.start_paragraph("SRC-SourceDetails") self.doc.write_text(_(" %s") % self.__format_date(event.get_date_object())) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() pi += 1 self.progress.step() print (l,len(famlist)) self.doc.end_table()
def display(self, tobj, person): """Fill text buffer tobj with detailed info on person person.""" normal = tobj.create_tag() normal.set_property("indent", 10) normal.set_property("pixels-above-lines", 1) normal.set_property("pixels-below-lines", 1) indent = tobj.create_tag() indent.set_property("indent", 30) indent.set_property("pixels-above-lines", 1) indent.set_property("pixels-below-lines", 1) title = tobj.create_tag() title.set_property("weight", Pango.Weight.BOLD) title.set_property("scale", 1.2) self.add(tobj, title, name_displayer.display(person)) self.add(tobj, normal, "%s:\t%s" % (_("ID"), person.get_gramps_id())) self.add(tobj, normal, "%s:\t%s" % (_("Gender"), sex[person.get_gender()])) bref = person.get_birth_ref() if bref: self.add(tobj, normal, "%s:\t%s" % (_("Birth"), self.get_event_info(bref.ref))) dref = person.get_death_ref() if dref: self.add(tobj, normal, "%s:\t%s" % (_("Death"), self.get_event_info(dref.ref))) nlist = person.get_alternate_names() if len(nlist) > 0: self.add(tobj, title, _("Alternate Names")) for name in nlist: self.add(tobj, normal, name_displayer.display_name(name)) elist = person.get_event_ref_list() if len(elist) > 0: self.add(tobj, title, _("Events")) for event_ref in person.get_event_ref_list(): event_handle = event_ref.ref role = event_ref.get_role() name = str(self.database.get_event_from_handle(event_handle).get_type()) if role.is_primary(): self.add(tobj, normal, "%s:\t%s" % (name, self.get_event_info(event_handle))) else: self.add(tobj, normal, "%s (%s):\t%s" % (name, role, self.get_event_info(event_handle))) plist = person.get_parent_family_handle_list() if len(plist) > 0: self.add(tobj, title, _("Parents")) for fid in person.get_parent_family_handle_list(): (fname, mname, gid) = self.get_parent_info(fid) self.add(tobj, normal, "%s:\t%s" % (_("Family ID"), gid)) if fname: self.add(tobj, indent, "%s:\t%s" % (_("Father"), fname)) if mname: self.add(tobj, indent, "%s:\t%s" % (_("Mother"), mname)) else: self.add(tobj, normal, _("No parents found")) self.add(tobj, title, _("Spouses")) slist = person.get_family_handle_list() if len(slist) > 0: for fid in slist: (fname, mname, pid) = self.get_parent_info(fid) family = self.database.get_family_from_handle(fid) self.add(tobj, normal, "%s:\t%s" % (_("Family ID"), pid)) spouse_id = ReportUtils.find_spouse(person, family) if spouse_id: spouse = self.database.get_person_from_handle(spouse_id) self.add(tobj, indent, "%s:\t%s" % (_("Spouse"), name_of(spouse))) relstr = str(family.get_relationship()) self.add(tobj, indent, "%s:\t%s" % (_("Type"), relstr)) event = ReportUtils.find_marriage(self.database, family) if event: self.add(tobj, indent, "%s:\t%s" % (_("Marriage"), self.get_event_info(event.get_handle()))) for child_ref in family.get_child_ref_list(): child = self.database.get_person_from_handle(child_ref.ref) self.add(tobj, indent, "%s:\t%s" % (_("Child"), name_of(child))) else: self.add(tobj, normal, _("No spouses or children found")) alist = person.get_address_list() if len(alist) > 0: self.add(tobj, title, _("Addresses")) for addr in alist: location = ", ".join( [ addr.get_street(), addr.get_city(), addr.get_state(), addr.get_country(), addr.get_postal_code(), addr.get_phone(), ] ) self.add(tobj, normal, location.strip())