* src/NameDisplay.py: Add display_formal

* src/Report.py: remove generation strings
* src/docgen/OpenOfficeDoc.py: Fix leading space after tab.
* src/plugins/AncestorReport.py: Use ReportUtils strings
instead of local strings


svn: r5250
This commit is contained in:
Don Allingham 2005-09-29 04:28:36 +00:00
parent 411cae1644
commit b8034741df
5 changed files with 55 additions and 154 deletions

View File

@ -1,6 +1,13 @@
2005-09-28 Don Allingham <don@gramps-project.org>
* src/NameDisplay.py: Add display_formal
* src/Report.py: remove generation strings
* src/docgen/OpenOfficeDoc.py: Fix leading space after tab.
* src/plugins/AncestorReport.py: Use ReportUtils strings
instead of local strings
2005-09-28 Eero Tamminen <eerot@sf>
* src/po/fi.po: Translation update for 2.0.9.
p
2005-09-28 Martin Hawlisch <Martin.Hawlisch@gmx.de>
* src/plugins/TestcaseGenerator.py: Use new tool/option api

View File

@ -137,6 +137,24 @@ class NameDisplay:
else:
return self._fnln(name,person.get_nick_name())
def display_formal(self,person):
"""
Returns a text string representing the L{RelLib.Person} instance's
L{RelLib.Name} in a manner that should be used for normal displaying.
@param person: L{RelLib.Person} instance that contains the
L{RelLib.Name} that is to be displayed. The primary name is used for
the display.
@type person: L{RelLib.Person}
@returns: Returns the L{RelLib.Person} instance's name
@rtype: str
"""
name = person.get_primary_name()
if name.display_as == RelLib.Name.LNFN:
return self._lnfn(name,'')
else:
return self._fnln(name,'')
def display_name(self,name):
"""
Returns a text string representing the L{RelLib.Name} instance

View File

@ -207,25 +207,6 @@ class Report:
sub-classed to create a functional report generator.
"""
# Ordinal generation names. Used by multiple reports.
gen = {
1 : _("First Generation"), 2 : _("Second Generation"),
3 : _("Third Generation"), 4 : _("Fourth Generation"),
5 : _("Fifth Generation"), 6 : _("Sixth Generation"),
7 : _("Seventh Generation"), 8 : _("Eighth Generation"),
9 : _("Ninth Generation"), 10: _("Tenth Generation"),
11: _("Eleventh Generation"), 12: _("Twelfth Generation"),
13: _("Thirteenth Generation"), 14: _("Fourteenth Generation"),
15: _("Fifteenth Generation"), 16: _("Sixteenth Generation"),
17: _("Seventeenth Generation"), 18: _("Eighteenth Generation"),
19: _("Nineteenth Generation"), 20: _("Twentieth Generation"),
21: _("Twenty-first Generation"), 22: _("Twenty-second Generation"),
23: _("Twenty-third Generation"), 24: _("Twenty-fourth Generation"),
25: _("Twenty-fifth Generation"), 26: _("Twenty-sixth Generation"),
27: _("Twenty-seventh Generation"), 28: _("Twenty-eighth Generation"),
29: _("Twenty-ninth Generation")
}
def __init__(self, database, person, options_class):
self.database = database
self.start_person = person
@ -911,7 +892,8 @@ class BareReportDialog:
style sheet editor object and let them play. When they are
done, the previous routine will be called to update the dialog
menu for selecting a style."""
StyleEditor.StyleListDisplay(self.style_sheet_list,self.build_style_menu,self.window)
StyleEditor.StyleListDisplay(self.style_sheet_list,self.build_style_menu,
self.window)
def on_center_person_change_clicked(self,*obj):
import SelectPerson

View File

@ -679,10 +679,10 @@ class OpenOfficeDoc(BaseDoc.BaseDoc):
else:
self.cntnt.write('<text:h text:style-name="')
self.cntnt.write(name)
self.cntnt.write('" text:level="' + str(self.level) + '">\n')
self.cntnt.write('" text:level="%d">' % self.level)
if leader != None:
self.cntnt.write(leader)
self.cntnt.write('<text:tab-stop/>\n')
self.cntnt.write('<text:tab-stop/>')
self.new_cell = 0
def end_paragraph(self):

View File

@ -27,7 +27,7 @@
# python modules
#
#------------------------------------------------------------------------
import os
import math
from gettext import gettext as _
#------------------------------------------------------------------------
@ -36,13 +36,20 @@ from gettext import gettext as _
#
#------------------------------------------------------------------------
import Report
import ReportUtils
import BaseDoc
import RelLib
import Errors
from DateHandler import displayer as _dd
from QuestionDialog import ErrorDialog
import NameDisplay
import ReportOptions
#------------------------------------------------------------------------
#
# log2val
#
#------------------------------------------------------------------------
def log2(val):
return int(math.log10(val)/math.log10(2))
#------------------------------------------------------------------------
#
# AncestorReport
@ -90,10 +97,9 @@ class AncestorReport(Report.Report):
self.apply_filter(self.start_person.get_handle(),1)
name = self.start_person.get_primary_name().get_regular_name()
name = NameDisplay.displayer.display_formal(self.start_person)
self.doc.start_paragraph("AHN-Title")
title = _("Ahnentafel Report for %s") % name
self.doc.write_text(title)
self.doc.write_text(_("Ahnentafel Report for %s") % name)
self.doc.end_paragraph()
keys = self.map.keys()
@ -101,22 +107,21 @@ class AncestorReport(Report.Report):
generation = 0
for key in keys :
if generation == 0 or key >= ( 1 << 30):
if generation == log2(key):
if self.pgbrk and generation > 0:
self.doc.page_break()
generation += 1
self.doc.start_paragraph("AHN-Generation")
t = _("%s Generation") % AncestorReport.gen[generation+1]
self.doc.write_text(t)
self.doc.write_text(_("Generation %d") % generation)
self.doc.end_paragraph()
generation = generation + 1
self.doc.start_paragraph("AHN-Entry","%s." % str(key))
self.doc.start_paragraph("AHN-Entry","%d." % key)
person_handle = self.map[key]
person = self.database.get_person_from_handle(person_handle)
name = person.get_primary_name().get_regular_name()
name = NameDisplay.displayer.display_formal(person)
self.doc.start_bold()
self.doc.write_text(name)
self.doc.write_text(name.strip())
self.doc.end_bold()
if name[-1:] == '.':
self.doc.write_text(" ")
@ -124,121 +129,10 @@ class AncestorReport(Report.Report):
self.doc.write_text(". ")
# Check birth record
birth_handle = person.get_birth_handle()
if birth_handle:
birth = self.database.get_event_from_handle(birth_handle)
date = birth.get_date_object()
date_text = _dd.display(date)
place_handle = birth.get_place_handle()
if place_handle:
place = self.database.get_place_from_handle(place_handle).get_title()
else:
place = u''
if place[-1:] == '.':
place = place[:-1]
if date_text != "" or place_handle:
if date_text != "":
if date.get_day_valid() and date.get_month_valid():
if place != "":
t = _("%s was born on %s in %s. ") % \
(name,date_text,place)
else:
t = _("%s was born on %s. ") % \
(name,date_text)
else:
if place != "":
t = _("%s was born in the year %s in %s. ") % \
(name,date_text,place)
else:
t = _("%s was born in the year %s. ") % \
(name,date_text)
self.doc.write_text(t)
buried = None
for event_handle in person.get_event_list():
event = self.database.get_event_from_handle(event_handle)
if event.get_name().lower() == "burial":
buried = event
death_handle = person.get_death_handle()
if death_handle:
death = self.database.get_event_from_handle(death_handle)
date = death.get_date_object()
date_text = _dd.display(date)
place_handle = death.get_place_handle()
if place_handle:
place = self.database.get_place_from_handle(place_handle).get_title()
else:
place = u''
if place[-1:] == '.':
place = place[:-1]
if date_text != "" or place_handle:
if person.get_gender() == RelLib.Person.MALE:
male = 1
else:
male = 0
if date_text != "":
if date.get_day_valid() and date.get_month_valid():
if male:
if place != "":
t = _("He died on %s in %s") % \
(date_text,place)
else:
t = _("He died on %s") % date_text
else:
if place != "":
t = _("She died on %s in %s") % \
(date_text,place)
else:
t = _("She died on %s") % date_text
else:
if male:
if place != "":
t = _("He died in the year %s in %s") % \
(date_text,place)
else:
t = _("He died in the year %s") % date_text
else:
if place != "":
t = _("She died in the year %s in %s") % \
(date_text,place)
else:
t = _("She died in the year %s") % date_text
self.doc.write_text(t)
if buried:
date = buried.get_date_object()
date_text = _dd.display(date)
place_handle = buried.get_place_handle()
if place_handle:
place = self.database.get_place_from_handle(place_handle).get_title()
else:
place = u''
if place[-1:] == '.':
place = place[:-1]
if date_text != "" or place_handle:
if date_text != "":
if date.get_day_valid() and date.get_month_valid():
if place != "":
t = _(", and was buried on %s in %s.") % \
(date_text,place)
else:
t = _(", and was buried on %s.") % date_text
else:
if place != "":
t = _(", and was buried in the year %s in %s.") % \
(date_text,place)
else:
t = _(", and was buried in the year %s.") % \
date_text
else:
t = _(" and was buried in %s.") % place
self.doc.write_text(t)
else:
self.doc.write_text(".")
self.doc.write_text(ReportUtils.born_str(self.database,person))
self.doc.write_text(ReportUtils.died_str(self.database,person,0))
self.doc.write_text(ReportUtils.buried_str(self.database,person,0))
self.doc.end_paragraph()
@ -290,7 +184,7 @@ class AncestorOptions(ReportOptions.ReportOptions):
#------------------------------------------------------------------------
#
#
# Register the plugin
#
#------------------------------------------------------------------------
from PluginMgr import register_report
@ -301,8 +195,8 @@ register_report(
options_class = AncestorOptions,
modes = Report.MODE_GUI | Report.MODE_BKI | Report.MODE_CLI,
translated_name = _("Ahnentafel Report"),
status=(_("Beta")),
status=(_("Stable")),
description= _("Produces a textual ancestral report"),
author_name="Donald N. Allingham",
author_email="dallingham@users.sourceforge.net"
author_email="don@gramps-project.org"
)