From 630751d98b63fa9ebfa59b9eb11f376f07813428 Mon Sep 17 00:00:00 2001 From: Paul Franklin Date: Mon, 3 Oct 2011 19:35:00 +0000 Subject: [PATCH] 5259: Detailed Descendant Report, incorrect number sequence and printing of duplicates -- patch from Matt Keenan (matt.keenan@gmail.com) svn: r18247 --- src/plugins/textreport/DetDescendantReport.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/plugins/textreport/DetDescendantReport.py b/src/plugins/textreport/DetDescendantReport.py index 84e91b72b..526a55c66 100644 --- a/src/plugins/textreport/DetDescendantReport.py +++ b/src/plugins/textreport/DetDescendantReport.py @@ -263,8 +263,9 @@ class DetDescendantReport(Report): for generation in xrange(len(self.gen_keys)): for key in self.gen_keys[generation]: person_handle = self.map[key] - self.dnumber[person_handle] = mod_reg_number - mod_reg_number += 1 + if person_handle not in self.dnumber: + self.dnumber[person_handle] = mod_reg_number + mod_reg_number += 1 def write_report(self): """ @@ -291,6 +292,7 @@ class DetDescendantReport(Report): generation = 0 + self.numbers_printed = list() for generation in xrange(len(self.gen_keys)): if self.pgbrk and generation > 0: self.doc.page_break() @@ -358,6 +360,12 @@ class DetDescendantReport(Report): person = self.database.get_person_from_handle(person_handle) val = self.dnumber[person_handle] + + if val in self.numbers_printed: + return + else: + self.numbers_printed.append(val) + self.doc.start_paragraph("DDR-First-Entry","%s." % val) name = self._name_display.display_formal(person) @@ -383,7 +391,7 @@ class DetDescendantReport(Report): self.doc.write_text(self._( "%(name)s is the same person as [%(id_str)s].") % { 'name' :'', - 'id_str': str(dkey), + 'id_str': self.dnumber[self.map[dkey]], } ) self.doc.end_paragraph()