* 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> 2005-09-28 Eero Tamminen <eerot@sf>
* src/po/fi.po: Translation update for 2.0.9. * src/po/fi.po: Translation update for 2.0.9.
p
2005-09-28 Martin Hawlisch <Martin.Hawlisch@gmx.de> 2005-09-28 Martin Hawlisch <Martin.Hawlisch@gmx.de>
* src/plugins/TestcaseGenerator.py: Use new tool/option api * src/plugins/TestcaseGenerator.py: Use new tool/option api

View File

@@ -137,6 +137,24 @@ class NameDisplay:
else: else:
return self._fnln(name,person.get_nick_name()) 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): def display_name(self,name):
""" """
Returns a text string representing the L{RelLib.Name} instance 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. 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): def __init__(self, database, person, options_class):
self.database = database self.database = database
self.start_person = person self.start_person = person
@@ -911,7 +892,8 @@ class BareReportDialog:
style sheet editor object and let them play. When they are style sheet editor object and let them play. When they are
done, the previous routine will be called to update the dialog done, the previous routine will be called to update the dialog
menu for selecting a style.""" 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): def on_center_person_change_clicked(self,*obj):
import SelectPerson import SelectPerson

View File

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

View File

@@ -27,7 +27,7 @@
# python modules # python modules
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
import os import math
from gettext import gettext as _ from gettext import gettext as _
#------------------------------------------------------------------------ #------------------------------------------------------------------------
@@ -36,13 +36,20 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
import Report import Report
import ReportUtils
import BaseDoc import BaseDoc
import RelLib
import Errors import Errors
from DateHandler import displayer as _dd import NameDisplay
from QuestionDialog import ErrorDialog
import ReportOptions import ReportOptions
#------------------------------------------------------------------------
#
# log2val
#
#------------------------------------------------------------------------
def log2(val):
return int(math.log10(val)/math.log10(2))
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# AncestorReport # AncestorReport
@@ -90,10 +97,9 @@ class AncestorReport(Report.Report):
self.apply_filter(self.start_person.get_handle(),1) 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") self.doc.start_paragraph("AHN-Title")
title = _("Ahnentafel Report for %s") % name self.doc.write_text(_("Ahnentafel Report for %s") % name)
self.doc.write_text(title)
self.doc.end_paragraph() self.doc.end_paragraph()
keys = self.map.keys() keys = self.map.keys()
@@ -101,22 +107,21 @@ class AncestorReport(Report.Report):
generation = 0 generation = 0
for key in keys : for key in keys :
if generation == 0 or key >= ( 1 << 30): if generation == log2(key):
if self.pgbrk and generation > 0: if self.pgbrk and generation > 0:
self.doc.page_break() self.doc.page_break()
generation += 1
self.doc.start_paragraph("AHN-Generation") self.doc.start_paragraph("AHN-Generation")
t = _("%s Generation") % AncestorReport.gen[generation+1] self.doc.write_text(_("Generation %d") % generation)
self.doc.write_text(t)
self.doc.end_paragraph() 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_handle = self.map[key]
person = self.database.get_person_from_handle(person_handle) 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.start_bold()
self.doc.write_text(name) self.doc.write_text(name.strip())
self.doc.end_bold() self.doc.end_bold()
if name[-1:] == '.': if name[-1:] == '.':
self.doc.write_text(" ") self.doc.write_text(" ")
@@ -125,120 +130,9 @@ class AncestorReport(Report.Report):
# Check birth record # Check birth record
birth_handle = person.get_birth_handle() self.doc.write_text(ReportUtils.born_str(self.database,person))
if birth_handle: self.doc.write_text(ReportUtils.died_str(self.database,person,0))
birth = self.database.get_event_from_handle(birth_handle) self.doc.write_text(ReportUtils.buried_str(self.database,person,0))
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.end_paragraph() self.doc.end_paragraph()
@@ -290,7 +184,7 @@ class AncestorOptions(ReportOptions.ReportOptions):
#------------------------------------------------------------------------ #------------------------------------------------------------------------
# #
# # Register the plugin
# #
#------------------------------------------------------------------------ #------------------------------------------------------------------------
from PluginMgr import register_report from PluginMgr import register_report
@@ -301,8 +195,8 @@ register_report(
options_class = AncestorOptions, options_class = AncestorOptions,
modes = Report.MODE_GUI | Report.MODE_BKI | Report.MODE_CLI, modes = Report.MODE_GUI | Report.MODE_BKI | Report.MODE_CLI,
translated_name = _("Ahnentafel Report"), translated_name = _("Ahnentafel Report"),
status=(_("Beta")), status=(_("Stable")),
description= _("Produces a textual ancestral report"), description= _("Produces a textual ancestral report"),
author_name="Donald N. Allingham", author_name="Donald N. Allingham",
author_email="dallingham@users.sourceforge.net" author_email="don@gramps-project.org"
) )