def __dump_person(self, person, short, ref): """ Output all data of a person. @param person: Person object to output. @param short: If True, print only name and birth event. @param ref: Reference through which this person is linked into the Family Sheet. Can be a family object (for the spouses) or a child_ref object (for the children). Source references and notes for this reference object will also be output. """ name = person.get_primary_name() name_text = _Name_get_styled(name, self.callname, self.placeholder) self.doc.start_paragraph("FSR-Name") mark = utils.get_person_mark(self.database, person) self.doc.write_text("", mark) self.doc.write_markup(str(name_text), name_text.get_tags()) self.__write_sources(name) self.__write_notes(name) self.__write_sources(person) self.__write_notes(person) if ref: self.__write_sources(ref) self.__write_notes(ref) self.doc.end_paragraph() if short: event_ref = person.get_birth_ref() if event_ref: self.__dump_event_ref(event_ref) else: for alt_name in person.get_alternate_names(): name_type = str(alt_name.get_type()) name = _Name_get_styled(alt_name, self.callname, self.placeholder) self.__dump_line(name_type, name, alt_name) self.__dump_attributes(person) # Each person should have a birth event. If no birth event is # there, print the placeholders for it nevertheless. if not person.get_birth_ref(): self.__dump_event(empty_birth, None) for event_ref in person.get_primary_event_ref_list(): self.__dump_event_ref(event_ref) for addr in person.get_address_list(): location = utils.get_address_str(addr) date = gramps.gen.datehandler.get_date(addr) self.doc.start_paragraph("FSR-Normal") if date: self.doc.write_text(_("Address (%(date)s): %(location)s") % {"date": date, "location": location}) else: self.doc.write_text(_("Address: %(location)s") % {"location": location}) self.__write_sources(addr) self.__write_notes(addr) self.doc.end_paragraph()
def write_addresses(self): alist = self.person.get_address_list() if len(alist) == 0: return self.doc.start_table("addresses","IDS-IndTable") self.doc.start_row() self.doc.start_cell("IDS-TableHead", 2) self.write_paragraph(self._('Addresses'), style='IDS-TableTitle') self.doc.end_cell() self.doc.end_row() for addr in alist: text = ReportUtils.get_address_str(addr) date = self._get_date(addr.get_date_object()) endnotes = self._cite_endnote(addr) self.doc.start_row() self.write_cell(date) self.write_cell(text, endnotes) self.doc.end_row() self.doc.end_table() self.doc.start_paragraph('IDS-Normal') self.doc.end_paragraph()
def __write_repository(self, handle): """ This procedure writes out the details of a single repository. """ self.black_list = [] repository = self.database.get_repository_from_handle(handle) self.doc.start_paragraph('REPO-RepositoryTitle') self.doc.write_text(('%(repository)s (%(type)s)') % { 'repository': repository.get_name(), 'type': repository.get_type() }) self.doc.end_paragraph() # display notes and allows markups if repository.get_referenced_handles() and self.inclu_note: notelist = repository.get_referenced_handles() for note_handle in notelist: # on tuple : [0] = classname ; [1] = handle note_handle = note_handle[1] self.__write_referenced_notes(note_handle) # additional repository informations child_list = repository.get_text_data_child_list() addresses = repository.get_handle_referents() for address_handle in addresses: address = ReportUtils.get_address_str(address_handle) if self.inc_intern or self.inc_addres: self.doc.start_paragraph('REPO-Section2') #if self.inc_intern: #self.doc.write_text(self._('Internet:')) #self.doc.write_text(internet) if self.inc_addres or self.incl_empty: self.doc.write_text(self._('Address:') + space) self.doc.write_text(address) self.doc.end_paragraph()
def __write_repository(self, handle): """ This procedure writes out the details of a single repository. """ self.black_list = [] repository = self.database.get_repository_from_handle(handle) self.doc.start_paragraph('REPO-RepositoryTitle') self.doc.write_text(('%(repository)s (%(type)s)') % {'repository' : repository.get_name(), 'type' : repository.get_type()}) self.doc.end_paragraph() # display notes and allows markups if repository.get_referenced_handles() and self.inclu_note: notelist = repository.get_referenced_handles() for note_handle in notelist: # on tuple : [0] = classname ; [1] = handle note_handle = note_handle[1] self.__write_referenced_notes(note_handle) # additional repository informations child_list = repository.get_text_data_child_list() addresses = repository.get_handle_referents() for address_handle in addresses: address = ReportUtils.get_address_str(address_handle) if self.inc_intern or self.inc_addres: self.doc.start_paragraph('REPO-Section2') #if self.inc_intern: #self.doc.write_text(self._('Internet:')) #self.doc.write_text(internet) if self.inc_addres or self.incl_empty: self.doc.write_text(self._('Address:') + space) self.doc.write_text(address) self.doc.end_paragraph()
def write_person(self, key): """Output birth, death, parentage, marriage and notes information """ person_handle = self.map[key] person = self.db.get_person_from_handle(person_handle) plist = person.get_media_list() self.__narrator.set_subject(person) if self.addimages and len(plist) > 0: photo = plist[0] ReportUtils.insert_image(self.db, self.doc, photo, self._user) self.doc.start_paragraph("DAR-First-Entry", "%d." % self._get_s_s(key)) name = self._name_display.display(person) if not name: name = self._("Unknown") mark = ReportUtils.get_person_mark(self.db, person) self.doc.start_bold() self.doc.write_text(name, mark) if name[-1:] == '.': self.doc.write_text_citation("%s " % self.endnotes(person)) elif name: self.doc.write_text_citation("%s. " % self.endnotes(person)) self.doc.end_bold() if self.dupperson: # Check for duplicate record (result of distant cousins marrying) for dkey in sorted(self.map): if dkey >= key: break if self.map[key] == self.map[dkey]: self.doc.write_text( self._("%(name)s is the same person as [%(id_str)s].") % { 'name' : '', 'id_str' : str(dkey) }) self.doc.end_paragraph() return 1 # Duplicate person if not self.verbose: self.write_parents(person) text = self.__narrator.get_born_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_baptised_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_christened_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_died_string(self.calcageflag) if text: self.doc.write_text_citation(text) text = self.__narrator.get_buried_string() if text: self.doc.write_text_citation(text) if self.verbose: self.write_parents(person) if not key % 2 or key == 1: self.write_marriage(person) self.doc.end_paragraph() if key == 1: self.write_mate(person) notelist = person.get_note_list() if len(notelist) > 0 and self.includenotes: self.doc.start_paragraph("DAR-NoteHeader") # feature request 2356: avoid genitive form self.doc.write_text(self._("Notes for %s") % name) self.doc.end_paragraph() for notehandle in notelist: note = self.db.get_note_from_handle(notehandle) self.doc.write_styled_note(note.get_styledtext(), note.get_format(), "DAR-Entry", contains_html = note.get_type() == NoteType.HTML_CODE ) first = True if self.inc_names: for alt_name in person.get_alternate_names(): if first: self.doc.start_paragraph('DAR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:') % {'person_name': name}) self.doc.end_paragraph() first = False self.doc.start_paragraph('DAR-MoreDetails') atype = self._get_type(alt_name.get_type()) self.doc.write_text_citation( self._('%(name_kind)s: %(name)s%(endnotes)s') % { 'name_kind' : self._(atype), 'name' : alt_name.get_regular_name(), 'endnotes' : self.endnotes(alt_name), } ) self.doc.end_paragraph() if self.inc_events: birth_ref = person.get_birth_ref() death_ref = person.get_death_ref() for event_ref in person.get_primary_event_ref_list(): if event_ref == birth_ref or event_ref == death_ref: continue if first: self.doc.start_paragraph('DAR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name' : name}) self.doc.end_paragraph() first = 0 self.write_event(event_ref) if self.inc_addr: for addr in person.get_address_list(): if first: self.doc.start_paragraph('DAR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name' : name}) self.doc.end_paragraph() first = False self.doc.start_paragraph('DAR-MoreDetails') text = ReportUtils.get_address_str(addr) self.doc.write_text(self._('Address: ')) if self.fulldate: date = self._get_date(addr.get_date_object()) else: date = addr.get_date_object().get_year() if date: # translators: needed for Arabic, ignore otherwise self.doc.write_text(self._('%s, ') % date ) self.doc.write_text( text ) self.doc.write_text_citation( self.endnotes(addr) ) self.doc.end_paragraph() if self.inc_attrs: attrs = person.get_attribute_list() if first and attrs: self.doc.start_paragraph('DAR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % { 'person_name' : name }) self.doc.end_paragraph() first = False for attr in attrs: self.doc.start_paragraph('DAR-MoreDetails') attrName = self._get_type(attr.get_type()) text = self._("%(type)s: %(value)s%(endnotes)s") % { 'type' : self._(attrName), 'value' : attr.get_value(), 'endnotes' : self.endnotes(attr) } self.doc.write_text_citation( text ) self.doc.end_paragraph() return 0 # Not duplicate person
def dump_parent(self, title, person_handle): if not person_handle and not self.missingInfo: return elif not person_handle: person = Person() else: person = self.database.get_person_from_handle(person_handle) name = self._name_display.display(person) self.doc.start_table(title, 'FGR-ParentTable') self.doc.start_row() self.doc.start_cell('FGR-ParentHead', 3) self.doc.start_paragraph('FGR-ParentName') self.doc.write_text(title + ': ') mark = ReportUtils.get_person_mark(self.database, person) self.doc.write_text(name, mark) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() birth_ref = person.get_birth_ref() birth = None evtName = self._("Birth") if birth_ref: birth = self.database.get_event_from_handle(birth_ref.ref) if birth or self.missingInfo: self.dump_parent_event(evtName, birth) death_ref = person.get_death_ref() death = None evtName = self._("Death") if death_ref: death = self.database.get_event_from_handle(death_ref.ref) if death or self.missingInfo: self.dump_parent_event(evtName, death) self.dump_parent_parents(person) if self.incParEvents: for event_ref in person.get_primary_event_ref_list(): if event_ref != birth_ref and event_ref != death_ref: event = self.database.get_event_from_handle(event_ref.ref) event_type = self._get_type(event.get_type()) self.dump_parent_event(self._(event_type), event) if self.incParAddr: addrlist = person.get_address_list()[:] for addr in addrlist: location = ReportUtils.get_address_str(addr) date = self._get_date(addr.get_date_object()) self.doc.start_row() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(self._("Address")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(date) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContentsEnd") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(location) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() if self.incParNotes: for notehandle in person.get_note_list(): note = self.database.get_note_from_handle(notehandle) self.dump_parent_noteline(self._("Note"), note) if self.includeAttrs: for attr in person.get_attribute_list(): attr_type = self._get_type(attr.get_type()) self.dump_parent_line(self._(attr_type), attr.get_value()) if self.incParNames: for alt_name in person.get_alternate_names(): name_type = self._get_type(alt_name.get_type()) name = self._name_display.display_name(alt_name) self.dump_parent_line(self._(name_type), name) self.doc.end_table()
def write_person_info(self, person): name = self._name_display.display(person) if not name: name = self._("Unknown") self.__narrator.set_subject(person) plist = person.get_media_list() if self.addimages and len(plist) > 0: photo = plist[0] ReportUtils.insert_image(self.db, self.doc, photo, self._user) self.doc.start_paragraph("DDR-Entry") if not self.verbose: self.__write_parents(person) text = self.__narrator.get_born_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_baptised_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_christened_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_died_string(self.calcageflag) if text: self.doc.write_text_citation(text) text = self.__narrator.get_buried_string() if text: self.doc.write_text_citation(text) if self.verbose: self.__write_parents(person) self.write_marriage(person) self.doc.end_paragraph() notelist = person.get_note_list() if len(notelist) > 0 and self.inc_notes: self.doc.start_paragraph("DDR-NoteHeader") # feature request 2356: avoid genitive form self.doc.write_text(self._("Notes for %s") % name) self.doc.end_paragraph() for notehandle in notelist: note = self.db.get_note_from_handle(notehandle) self.doc.write_styled_note(note.get_styledtext(), note.get_format(),"DDR-Entry", contains_html= note.get_type() == NoteType.HTML_CODE) first = True if self.inc_names: for alt_name in person.get_alternate_names(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:') % {'person_name' : name }) self.doc.end_paragraph() first = False self.doc.start_paragraph('DDR-MoreDetails') atype = self._get_type(alt_name.get_type()) aname = alt_name.get_regular_name() self.doc.write_text_citation( self._('%(name_kind)s: %(name)s%(endnotes)s') % {'name_kind' : self._(atype), 'name' : aname, 'endnotes' : self.endnotes(alt_name), }) self.doc.end_paragraph() if self.inc_events: for event_ref in person.get_primary_event_ref_list(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:') % {'person_name' : name }) self.doc.end_paragraph() first = 0 self.write_event(event_ref) if self.inc_addr: for addr in person.get_address_list(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:') % {'person_name' : name }) self.doc.end_paragraph() first = False self.doc.start_paragraph('DDR-MoreDetails') text = ReportUtils.get_address_str(addr) if self.fulldate: date = self._get_date(addr.get_date_object()) else: date = addr.get_date_object().get_year() self.doc.write_text(self._('Address: ')) if date: # translators: needed for Arabic, ignore otherwise self.doc.write_text(self._('%s, ') % date ) self.doc.write_text( text ) self.doc.write_text_citation( self.endnotes(addr) ) self.doc.end_paragraph() if self.inc_attrs: attrs = person.get_attribute_list() if first and attrs: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:') % { 'person_name' : name }) self.doc.end_paragraph() first = False for attr in attrs: self.doc.start_paragraph('DDR-MoreDetails') attrName = self._get_type(attr.get_type()) text = self._("%(type)s: %(value)s%(endnotes)s") % { 'type' : self._(attrName), 'value' : attr.get_value(), 'endnotes' : self.endnotes(attr) } self.doc.write_text_citation( text ) self.doc.end_paragraph()
def __dump_person(self, person, short, ref): """ Output all data of a person. @param person: Person object to output. @param short: If True, print only name and birth event. @param ref: Reference through which this person is linked into the Family Sheet. Can be a family object (for the spouses) or a child_ref object (for the children). Source references and notes for this reference object will also be output. """ name = person.get_primary_name() name_text = _Name_get_styled(name, self.callname, self.placeholder) self.doc.start_paragraph('FSR-Name') mark = utils.get_person_mark(self.database, person) self.doc.write_text("", mark) self.doc.write_markup(str(name_text), name_text.get_tags()) self.__write_sources(name) self.__write_notes(name) self.__write_sources(person) self.__write_notes(person) if ref: self.__write_sources(ref) self.__write_notes(ref) self.doc.end_paragraph() if short: event_ref = person.get_birth_ref() if event_ref: self.__dump_event_ref(event_ref) else: for alt_name in person.get_alternate_names(): name_type = str(alt_name.get_type()) name = _Name_get_styled(alt_name, self.callname, self.placeholder) self.__dump_line(name_type, name, alt_name) self.__dump_attributes(person) # Each person should have a birth event. If no birth event is # there, print the placeholders for it nevertheless. if not person.get_birth_ref(): self.__dump_event(empty_birth, None) for event_ref in person.get_primary_event_ref_list(): self.__dump_event_ref(event_ref) for addr in person.get_address_list(): location = utils.get_address_str(addr) date = gramps.gen.datehandler.get_date(addr) self.doc.start_paragraph('FSR-Normal') if date: self.doc.write_text( _("Address (%(date)s): %(location)s") % { 'date': date, 'location': location }) else: self.doc.write_text( _("Address: %(location)s") % {'location': location}) self.__write_sources(addr) self.__write_notes(addr) self.doc.end_paragraph()
def write_person_info(self, person): name = self._name_display.display(person) if not name: name = self._("Unknown") self.__narrator.set_subject(person) plist = person.get_media_list() if self.addimages and len(plist) > 0: photo = plist[0] ReportUtils.insert_image(self.db, self.doc, photo, self._user) self.doc.start_paragraph("DDR-Entry") if not self.verbose: self.__write_parents(person) text = self.__narrator.get_born_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_baptised_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_christened_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_died_string(self.calcageflag) if text: self.doc.write_text_citation(text) text = self.__narrator.get_buried_string() if text: self.doc.write_text_citation(text) if self.verbose: self.__write_parents(person) self.write_marriage(person) self.doc.end_paragraph() notelist = person.get_note_list() if len(notelist) > 0 and self.inc_notes: self.doc.start_paragraph("DDR-NoteHeader") # feature request 2356: avoid genitive form self.doc.write_text(self._("Notes for %s") % name) self.doc.end_paragraph() for notehandle in notelist: note = self.db.get_note_from_handle(notehandle) self.doc.write_styled_note( note.get_styledtext(), note.get_format(), "DDR-Entry", contains_html=note.get_type() == NoteType.HTML_CODE) first = True if self.inc_names: for alt_name in person.get_alternate_names(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name': name}) self.doc.end_paragraph() first = False self.doc.start_paragraph('DDR-MoreDetails') atype = self._get_type(alt_name.get_type()) aname = alt_name.get_regular_name() self.doc.write_text_citation( self._('%(name_kind)s: %(name)s%(endnotes)s') % { 'name_kind': self._(atype), 'name': aname, 'endnotes': self.endnotes(alt_name), }) self.doc.end_paragraph() if self.inc_events: for event_ref in person.get_primary_event_ref_list(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name': name}) self.doc.end_paragraph() first = 0 self.write_event(event_ref) if self.inc_addr: for addr in person.get_address_list(): if first: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name': name}) self.doc.end_paragraph() first = False self.doc.start_paragraph('DDR-MoreDetails') text = ReportUtils.get_address_str(addr) if self.fulldate: date = self._get_date(addr.get_date_object()) else: date = addr.get_date_object().get_year() self.doc.write_text(self._('Address: ')) if date: # translators: needed for Arabic, ignore otherwise self.doc.write_text(self._('%s, ') % date) self.doc.write_text(text) self.doc.write_text_citation(self.endnotes(addr)) self.doc.end_paragraph() if self.inc_attrs: attrs = person.get_attribute_list() if first and attrs: self.doc.start_paragraph('DDR-MoreHeader') self.doc.write_text( self._('More about %(person_name)s:') % {'person_name': name}) self.doc.end_paragraph() first = False for attr in attrs: self.doc.start_paragraph('DDR-MoreDetails') attrName = attr.get_type().type2base() # translators: needed for French, ignore otherwise text = self._("%(type)s: %(value)s%(endnotes)s") % { 'type': self._(attrName), 'value': attr.get_value(), 'endnotes': self.endnotes(attr) } self.doc.write_text_citation(text) self.doc.end_paragraph()
def dump_parent(self,title,person_handle): if not person_handle and not self.missingInfo: return elif not person_handle: person = Person() else: person = self.database.get_person_from_handle(person_handle) name = self._name_display.display(person) self.doc.start_table(title,'FGR-ParentTable') self.doc.start_row() self.doc.start_cell('FGR-ParentHead',3) self.doc.start_paragraph('FGR-ParentName') mark = ReportUtils.get_person_mark(self.database,person) # translators: needed for French, ignore otherwise self.doc.write_text(self._("%(str1)s: %(str2)s") % { 'str1' : title, 'str2' : name }, mark) if self.gramps_ids: gid = person.get_gramps_id() if gid: self.doc.write_text(" (%s)" % gid) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() birth_ref = person.get_birth_ref() birth = None evtName = self._("Birth") if birth_ref: birth = self.database.get_event_from_handle(birth_ref.ref) if birth or self.missingInfo: self.dump_parent_event(evtName,birth) death_ref = person.get_death_ref() death = None evtName = self._("Death") if death_ref: death = self.database.get_event_from_handle(death_ref.ref) if death or self.missingInfo: self.dump_parent_event(evtName,death) self.dump_parent_parents(person) if self.incParEvents: for event_ref in person.get_primary_event_ref_list(): if event_ref != birth_ref and event_ref != death_ref: event = self.database.get_event_from_handle(event_ref.ref) event_type = self._get_type(event.get_type()) self.dump_parent_event(self._(event_type),event) if self.incParAddr: addrlist = person.get_address_list()[:] for addr in addrlist: location = ReportUtils.get_address_str(addr) date = self._get_date(addr.get_date_object()) self.doc.start_row() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(self._("Address")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(date) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContentsEnd") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(location) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() if self.incParNotes: for notehandle in person.get_note_list(): note = self.database.get_note_from_handle(notehandle) self.dump_parent_noteline(self._("Note"), note) if self.includeAttrs: for attr in person.get_attribute_list(): attr_type = self._get_type(attr.get_type()) self.dump_parent_line(self._(attr_type),attr.get_value()) if self.incParNames: for alt_name in person.get_alternate_names(): name_type = self._get_type(alt_name.get_type()) name = self._name_display.display_name(alt_name) self.dump_parent_line(self._(name_type), name) self.doc.end_table()
def write_person(self, key): """ Output birth, death, parentage, marriage and notes information """ def write_more_header(first, name): """ convenience function """ if first: self.doc.start_paragraph('DAR-MoreHeader') self.doc.write_text(self._('More about %(person_name)s:' ) % {'person_name' : name}) self.doc.end_paragraph() return False person_handle = self.map[key] person = self._db.get_person_from_handle(person_handle) plist = person.get_media_list() self.__narrator.set_subject(person) if self.addimages and len(plist) > 0: photo = plist[0] utils.insert_image(self._db, self.doc, photo, self._user) self.doc.start_paragraph("DAR-First-Entry", "%d." % self._get_s_s(key)) name = self._nd.display(person) if not name: name = self._("Unknown") mark = utils.get_person_mark(self._db, person) self.doc.start_bold() self.doc.write_text(name, mark) if name[-1:] == '.': self.doc.write_text_citation("%s " % self.endnotes(person)) elif name: self.doc.write_text_citation("%s. " % self.endnotes(person)) self.doc.end_bold() if self.want_ids: self.doc.write_text('(%s) ' % person.get_gramps_id()) if self.dupperson: # Check for duplicate record (result of distant cousins marrying) for dkey in sorted(self.map): if dkey >= key: break if self.map[key] == self.map[dkey]: self.doc.write_text( self._("%(name)s is the same person as [%(id_str)s]." ) % {'name' : '', 'id_str' : str(dkey)}) self.doc.end_paragraph() return 1 # Duplicate person if not self.verbose: self.write_parents(person) text = self.__narrator.get_born_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_baptised_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_christened_string() if text: self.doc.write_text_citation(text) text = self.__narrator.get_died_string(self.calcageflag) if text: self.doc.write_text_citation(text) text = self.__narrator.get_buried_string() if text: self.doc.write_text_citation(text) if self.verbose: self.write_parents(person) if not key % 2 or key == 1: self.write_marriage(person) self.doc.end_paragraph() if key == 1: self.write_mate(person) notelist = person.get_note_list() if len(notelist) > 0 and self.includenotes: self.doc.start_paragraph("DAR-NoteHeader") # feature request 2356: avoid genitive form self.doc.write_text(self._("Notes for %s") % name) self.doc.end_paragraph() for notehandle in notelist: note = self._db.get_note_from_handle(notehandle) self.doc.write_styled_note( note.get_styledtext(), note.get_format(), "DAR-Entry", contains_html=(note.get_type() == NoteType.HTML_CODE) ) first = True if self.inc_names: for alt_name in person.get_alternate_names(): first = write_more_header(first, name) self.doc.start_paragraph('DAR-MoreDetails') atype = self._get_type(alt_name.get_type()) self.doc.write_text_citation( self._('%(type)s: %(value)s%(endnotes)s' ) % {'type' : self._(atype), 'value' : alt_name.get_regular_name(), 'endnotes' : self.endnotes(alt_name)}) self.doc.end_paragraph() if self.inc_events: birth_ref = person.get_birth_ref() death_ref = person.get_death_ref() for event_ref in person.get_primary_event_ref_list(): if event_ref == birth_ref or event_ref == death_ref: continue first = write_more_header(first, name) self.write_event(event_ref) if self.other_events: for event_ref in person.get_event_ref_list(): role = event_ref.get_role() if role in (EventRoleType.PRIMARY, EventRoleType.FAMILY): continue first = write_more_header(first, name) self.write_event(event_ref) if self.inc_addr: for addr in person.get_address_list(): first = write_more_header(first, name) self.doc.start_paragraph('DAR-MoreDetails') text = utils.get_address_str(addr) self.doc.write_text(self._('Address: ')) if self.fulldate: date = self._get_date(addr.get_date_object()) else: date = addr.get_date_object().get_year() if date: # translators: needed for Arabic, ignore otherwise self.doc.write_text(self._('%s, ') % date) self.doc.write_text(text) self.doc.write_text_citation(self.endnotes(addr)) self.doc.end_paragraph() if self.inc_attrs: attrs = person.get_attribute_list() if attrs: first = write_more_header(first, name) for attr in attrs: self.doc.start_paragraph('DAR-MoreDetails') attr_name = attr.get_type().type2base() # translators: needed for French, ignore otherwise text = self._("%(type)s: %(value)s%(endnotes)s" ) % {'type' : self._(attr_name), 'value' : attr.get_value(), 'endnotes' : self.endnotes(attr)} self.doc.write_text_citation(text) self.doc.end_paragraph() return 0 # Not duplicate person
def dump_parent(self, title, person_handle): if not person_handle and not self.missing_info: return elif not person_handle: person = Person() else: person = self.db.get_person_from_handle(person_handle) name = self._name_display.display(person) self.doc.start_table(title, 'FGR-ParentTable') self.doc.start_row() self.doc.start_cell('FGR-ParentHead', 3) self.doc.start_paragraph('FGR-ParentName') mark = utils.get_person_mark(self.db, person) # translators: needed for French, ignore otherwise self.doc.write_text( self._("%(str1)s: %(str2)s") % { 'str1': title, 'str2': name }, mark) if self.gramps_ids: gid = person.get_gramps_id() if gid: self.doc.write_text(" (%s)" % gid) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() birth_ref = person.get_birth_ref() birth = None ev_name = self._("Birth") if birth_ref: birth = self.db.get_event_from_handle(birth_ref.ref) if birth or self.missing_info: self.dump_parent_event(ev_name, birth) death_ref = person.get_death_ref() death = None ev_name = self._("Death") if death_ref: death = self.db.get_event_from_handle(death_ref.ref) if death or self.missing_info: self.dump_parent_event(ev_name, death) self.dump_parent_parents(person) if self.inc_par_events: for event_ref in person.get_primary_event_ref_list(): if event_ref != birth_ref and event_ref != death_ref: event = self.db.get_event_from_handle(event_ref.ref) event_type = self._get_type(event.get_type()) self.dump_parent_event(self._(event_type), event) if self.inc_par_addr: addrlist = person.get_address_list()[:] for addr in addrlist: location = utils.get_address_str(addr) date = self._get_date(addr.get_date_object()) self.doc.start_row() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(self._("Address")) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContents") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(date) self.doc.end_paragraph() self.doc.end_cell() self.doc.start_cell("FGR-TextContentsEnd") self.doc.start_paragraph('FGR-Normal') self.doc.write_text(location) self.doc.end_paragraph() self.doc.end_cell() self.doc.end_row() if self.inc_par_notes: for notehandle in person.get_note_list(): note = self.db.get_note_from_handle(notehandle) self.dump_parent_noteline(self._("Note"), note) if self.include_attrs: for attr in person.get_attribute_list(): attr_type = self._get_type(attr.get_type()) self.dump_parent_line(self._(attr_type), attr.get_value()) if self.inc_par_names: for alt_name in person.get_alternate_names(): name_type = self._get_type(alt_name.get_type()) name = self._name_display.display_name(alt_name) self.dump_parent_line(self._(name_type), name) self.doc.end_table()