Patch from Matt Keenan <matt.keenan@gmail.com> - 0005149: Provide Name Format option for some text reports
svn: r18118
This commit is contained in:
parent
147f74c3b1
commit
c4d4762c30
@ -2070,7 +2070,7 @@ class Narrator(object):
|
|||||||
|
|
||||||
return text
|
return text
|
||||||
|
|
||||||
def get_married_string(self, family, is_first=True):
|
def get_married_string(self, family, is_first=True, name_display=None):
|
||||||
"""
|
"""
|
||||||
Get a string narrating the marriage of the subject.
|
Get a string narrating the marriage of the subject.
|
||||||
Example sentences:
|
Example sentences:
|
||||||
@ -2085,7 +2085,9 @@ class Narrator(object):
|
|||||||
:param is_first: Indicates whether this sentence represents the first
|
:param is_first: Indicates whether this sentence represents the first
|
||||||
marriage. If it is not the first marriage, the sentence will
|
marriage. If it is not the first marriage, the sentence will
|
||||||
include "also".
|
include "also".
|
||||||
:type is_first: :class:`~gen.lib.family,Family`
|
:type is_first: bool
|
||||||
|
:param name_display: An object to be used for displaying names
|
||||||
|
:type is_first: :class:`~gen.display.name,NameDisplay`
|
||||||
:returns: A sentence about the subject's marriage.
|
:returns: A sentence about the subject's marriage.
|
||||||
:rtype: unicode
|
:rtype: unicode
|
||||||
"""
|
"""
|
||||||
@ -2100,8 +2102,11 @@ class Narrator(object):
|
|||||||
|
|
||||||
date = self.__empty_date
|
date = self.__empty_date
|
||||||
place = self.__empty_place
|
place = self.__empty_place
|
||||||
spouse_name = _nd.display(spouse)
|
if not name_display:
|
||||||
|
spouse_name = _nd.display(spouse)
|
||||||
|
else:
|
||||||
|
spouse_name = name_display.display(spouse)
|
||||||
|
|
||||||
if event:
|
if event:
|
||||||
if self.__use_fulldate :
|
if self.__use_fulldate :
|
||||||
mdate = self.__get_date(event.get_date_object())
|
mdate = self.__get_date(event.get_date_object())
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
import math
|
import math
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -37,7 +38,7 @@ from gen.ggettext import gettext as _
|
|||||||
# gramps modules
|
# gramps modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as name_displayer
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import ChildRefType
|
from gen.lib import ChildRefType
|
||||||
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
||||||
@ -87,9 +88,9 @@ class AncestorReport(Report):
|
|||||||
|
|
||||||
gen - Maximum number of generations to include.
|
gen - Maximum number of generations to include.
|
||||||
pagebbg - Whether to include page breaks between generations.
|
pagebbg - Whether to include page breaks between generations.
|
||||||
|
name_format - Preferred format to display names
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
|
|
||||||
self.map = {}
|
self.map = {}
|
||||||
@ -104,6 +105,14 @@ class AncestorReport(Report):
|
|||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
language = menu.get_option_by_name('trans').get_value()
|
language = menu.get_option_by_name('trans').get_value()
|
||||||
translator = Translator(language)
|
translator = Translator(language)
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
self._ = translator.gettext
|
self._ = translator.gettext
|
||||||
self.__narrator = Narrator(self.database, use_fulldate=True,
|
self.__narrator = Narrator(self.database, use_fulldate=True,
|
||||||
translator=translator)
|
translator=translator)
|
||||||
@ -177,7 +186,7 @@ class AncestorReport(Report):
|
|||||||
# Write the title line. Set in INDEX marker so that this section will be
|
# Write the title line. Set in INDEX marker so that this section will be
|
||||||
# identified as a major category if this is included in a Book report.
|
# identified as a major category if this is included in a Book report.
|
||||||
|
|
||||||
name = name_displayer.display_formal(self.center_person)
|
name = self._name_display.display_formal(self.center_person)
|
||||||
title = self._("Ahnentafel Report for %s") % name
|
title = self._("Ahnentafel Report for %s") % name
|
||||||
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
||||||
self.doc.start_paragraph("AHN-Title")
|
self.doc.start_paragraph("AHN-Title")
|
||||||
@ -208,7 +217,7 @@ class AncestorReport(Report):
|
|||||||
|
|
||||||
self.doc.start_paragraph("AHN-Entry","%d." % key)
|
self.doc.start_paragraph("AHN-Entry","%d." % key)
|
||||||
person = self.database.get_person_from_handle(self.map[key])
|
person = self.database.get_person_from_handle(self.map[key])
|
||||||
name = name_displayer.display(person)
|
name = self._name_display.display(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
|
|
||||||
# write the name in bold
|
# write the name in bold
|
||||||
@ -234,7 +243,7 @@ class AncestorReport(Report):
|
|||||||
self.doc.write_text(self.__narrator.get_buried_string())
|
self.doc.write_text(self.__narrator.get_buried_string())
|
||||||
|
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# AncestorOptions
|
# AncestorOptions
|
||||||
@ -258,6 +267,16 @@ class AncestorOptions(MenuReportOptions):
|
|||||||
pid = PersonOption(_("Center Person"))
|
pid = PersonOption(_("Center Person"))
|
||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
menu.add_option(category_name, "pid", pid)
|
menu.add_option(category_name, "pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
maxgen = NumberOption(_("Generations"), 10, 1, 100)
|
maxgen = NumberOption(_("Generations"), 10, 1, 100)
|
||||||
maxgen.set_help(_("The number of generations to include in the report"))
|
maxgen.set_help(_("The number of generations to include in the report"))
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
# python modules
|
# python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
from gen.ggettext import ngettext
|
from gen.ggettext import ngettext
|
||||||
import datetime, time
|
import datetime, time
|
||||||
@ -36,7 +37,7 @@ import datetime, time
|
|||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import NameType, EventType, Name, Date, Person
|
from gen.lib import NameType, EventType, Name, Date, Person
|
||||||
import Relationship
|
import Relationship
|
||||||
@ -72,7 +73,6 @@ class CalendarReport(Report):
|
|||||||
self.titletext = mgobn('titletext')
|
self.titletext = mgobn('titletext')
|
||||||
self.relationships = mgobn('relationships')
|
self.relationships = mgobn('relationships')
|
||||||
self.year = mgobn('year')
|
self.year = mgobn('year')
|
||||||
self.name_format = mgobn('name_format')
|
|
||||||
self.country = mgobn('country')
|
self.country = mgobn('country')
|
||||||
self.anniversaries = mgobn('anniversaries')
|
self.anniversaries = mgobn('anniversaries')
|
||||||
self.start_dow = mgobn('start_dow')
|
self.start_dow = mgobn('start_dow')
|
||||||
@ -85,6 +85,14 @@ class CalendarReport(Report):
|
|||||||
self.filter_option = menu.get_option_by_name('filter')
|
self.filter_option = menu.get_option_by_name('filter')
|
||||||
self.filter = self.filter_option.get_filter()
|
self.filter = self.filter_option.get_filter()
|
||||||
pid = mgobn('pid')
|
pid = mgobn('pid')
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
self.center_person = database.get_person_from_gramps_id(pid)
|
self.center_person = database.get_person_from_gramps_id(pid)
|
||||||
if (self.center_person == None) :
|
if (self.center_person == None) :
|
||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
@ -112,8 +120,7 @@ class CalendarReport(Report):
|
|||||||
surname_obj.set_surname(maiden_name)
|
surname_obj.set_surname(maiden_name)
|
||||||
else:
|
else:
|
||||||
name = Name(primary_name)
|
name = Name(primary_name)
|
||||||
name.set_display_as(self.name_format)
|
return self._name_display.display_name(name)
|
||||||
return _nd.display_name(name)
|
|
||||||
|
|
||||||
def add_day_item(self, text, month, day):
|
def add_day_item(self, text, month, day):
|
||||||
""" Add an item to a day. """
|
""" Add an item to a day. """
|
||||||
@ -359,10 +366,9 @@ class CalendarOptions(MenuReportOptions):
|
|||||||
|
|
||||||
self.__update_filters()
|
self.__update_filters()
|
||||||
|
|
||||||
# We must figure out the value of the first option before we can
|
fmt_list = global_name_display.get_name_format()
|
||||||
# create the EnumeratedListOption
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
fmt_list = _nd.get_name_format()
|
name_format.add_item(0, _("Default"))
|
||||||
name_format = EnumeratedListOption(_("Name format"), fmt_list[0][0])
|
|
||||||
for num, name, fmt_str, act in fmt_list:
|
for num, name, fmt_str, act in fmt_list:
|
||||||
name_format.add_item(num, name)
|
name_format.add_item(num, name)
|
||||||
name_format.set_help(_("Select the format to display names"))
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
@ -33,6 +33,7 @@ Reports/Text Reports/Descendant Report.
|
|||||||
# standard python modules
|
# standard python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -42,8 +43,9 @@ from gen.ggettext import gettext as _
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
||||||
from gen.plug.menu import NumberOption, PersonOption, BooleanOption, EnumeratedListOption
|
from gen.plug.menu import (NumberOption, PersonOption, BooleanOption,
|
||||||
from gen.display.name import displayer as _nd
|
EnumeratedListOption)
|
||||||
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.plug.report import Report
|
from gen.plug.report import Report
|
||||||
from gen.plug.report import utils as ReportUtils
|
from gen.plug.report import utils as ReportUtils
|
||||||
@ -125,8 +127,10 @@ class Printinfo():
|
|||||||
A base class used to help make the individual numbering system classes.
|
A base class used to help make the individual numbering system classes.
|
||||||
This class must first be initialized with set_class_vars
|
This class must first be initialized with set_class_vars
|
||||||
"""
|
"""
|
||||||
def __init__(self, doc, database, numbering, showmarriage, showdivorce):
|
def __init__(self, doc, database, numbering, showmarriage, showdivorce,\
|
||||||
|
name_display):
|
||||||
#classes
|
#classes
|
||||||
|
self._name_display = name_display
|
||||||
self.doc = doc
|
self.doc = doc
|
||||||
self.database = database
|
self.database = database
|
||||||
self.numbering = numbering
|
self.numbering = numbering
|
||||||
@ -184,7 +188,7 @@ class Printinfo():
|
|||||||
display_num = self.numbering.number(level)
|
display_num = self.numbering.number(level)
|
||||||
self.doc.start_paragraph("DR-Level%d" % min(level, 32), display_num)
|
self.doc.start_paragraph("DR-Level%d" % min(level, 32), display_num)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
self.doc.write_text(_nd.display(person), mark)
|
self.doc.write_text(self._name_display.display(person), mark)
|
||||||
self.dump_string(person)
|
self.dump_string(person)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
|
|
||||||
@ -194,7 +198,7 @@ class Printinfo():
|
|||||||
spouse = self.database.get_person_from_handle(spouse_handle)
|
spouse = self.database.get_person_from_handle(spouse_handle)
|
||||||
mark = ReportUtils.get_person_mark(self.database, spouse)
|
mark = ReportUtils.get_person_mark(self.database, spouse)
|
||||||
self.doc.start_paragraph("DR-Spouse%d" % min(level, 32))
|
self.doc.start_paragraph("DR-Spouse%d" % min(level, 32))
|
||||||
name = _nd.display(spouse)
|
name = self._name_display.display(spouse)
|
||||||
self.doc.write_text(_("sp. %(spouse)s") % {'spouse':name}, mark)
|
self.doc.write_text(_("sp. %(spouse)s") % {'spouse':name}, mark)
|
||||||
self.dump_string(spouse, family_handle)
|
self.dump_string(spouse, family_handle)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
@ -260,6 +264,7 @@ class DescendantReport(Report):
|
|||||||
that come in the options class.
|
that come in the options class.
|
||||||
|
|
||||||
gen - Maximum number of generations to include.
|
gen - Maximum number of generations to include.
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
@ -288,11 +293,18 @@ class DescendantReport(Report):
|
|||||||
marrs = menu.get_option_by_name('marrs').get_value()
|
marrs = menu.get_option_by_name('marrs').get_value()
|
||||||
divs = menu.get_option_by_name('divs').get_value()
|
divs = menu.get_option_by_name('divs').get_value()
|
||||||
|
|
||||||
self.objPrint = Printinfo(self.doc, database, obj, marrs, divs)
|
# Copy the global NameDisplay so that we don't change application defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
|
self.objPrint = Printinfo(self.doc, database, obj, marrs, divs,
|
||||||
|
self._name_display)
|
||||||
|
|
||||||
def write_report(self):
|
def write_report(self):
|
||||||
self.doc.start_paragraph("DR-Title")
|
self.doc.start_paragraph("DR-Title")
|
||||||
name = _nd.display(self.center_person)
|
name = self._name_display.display(self.center_person)
|
||||||
title = _("Descendants of %s") % name
|
title = _("Descendants of %s") % name
|
||||||
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
||||||
self.doc.write_text(title, mark)
|
self.doc.write_text(title, mark)
|
||||||
@ -322,6 +334,16 @@ class DescendantOptions(MenuReportOptions):
|
|||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
menu.add_option(category_name, "pid", pid)
|
menu.add_option(category_name, "pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
numbering = EnumeratedListOption(_("Numbering system"), "Simple")
|
numbering = EnumeratedListOption(_("Numbering system"), "Simple")
|
||||||
numbering.set_items([
|
numbering.set_items([
|
||||||
("Simple", _("Simple numbering")),
|
("Simple", _("Simple numbering")),
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
# standard python modules
|
# standard python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -40,7 +41,7 @@ from gen.ggettext import gettext as _
|
|||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import EventType, FamilyRelType, Person, NoteType
|
from gen.lib import EventType, FamilyRelType, Person, NoteType
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
@ -101,6 +102,7 @@ class DetAncestorReport(Report):
|
|||||||
childref - Whether to add descendant references in child list.
|
childref - Whether to add descendant references in child list.
|
||||||
addimages - Whether to include images.
|
addimages - Whether to include images.
|
||||||
pid - The Gramps ID of the center person for the report.
|
pid - The Gramps ID of the center person for the report.
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
|
|
||||||
@ -136,6 +138,13 @@ class DetAncestorReport(Report):
|
|||||||
if (self.center_person == None) :
|
if (self.center_person == None) :
|
||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
self.gen_handles = {}
|
self.gen_handles = {}
|
||||||
self.prev_gen_handles = {}
|
self.prev_gen_handles = {}
|
||||||
|
|
||||||
@ -179,7 +188,7 @@ class DetAncestorReport(Report):
|
|||||||
def write_report(self):
|
def write_report(self):
|
||||||
self.apply_filter(self.center_person.get_handle(), 1)
|
self.apply_filter(self.center_person.get_handle(), 1)
|
||||||
|
|
||||||
name = _nd.display_name(self.center_person.get_primary_name())
|
name = self._name_display.display_name(self.center_person.get_primary_name())
|
||||||
self.doc.start_paragraph("DAR-Title")
|
self.doc.start_paragraph("DAR-Title")
|
||||||
title = self._("Ancestral Report for %s") % name
|
title = self._("Ancestral Report for %s") % name
|
||||||
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
||||||
@ -242,7 +251,7 @@ class DetAncestorReport(Report):
|
|||||||
|
|
||||||
self.doc.start_paragraph("DAR-First-Entry","%s." % str(key))
|
self.doc.start_paragraph("DAR-First-Entry","%s." % str(key))
|
||||||
|
|
||||||
name = _nd.display_formal(person)
|
name = self._name_display.display_formal(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
|
|
||||||
self.doc.start_bold()
|
self.doc.start_bold()
|
||||||
@ -341,7 +350,7 @@ class DetAncestorReport(Report):
|
|||||||
if first:
|
if first:
|
||||||
self.doc.start_paragraph('DAR-MoreHeader')
|
self.doc.start_paragraph('DAR-MoreHeader')
|
||||||
self.doc.write_text(self._('More about %(person_name)s:') % {
|
self.doc.write_text(self._('More about %(person_name)s:') % {
|
||||||
'person_name' : _nd.display(person) })
|
'person_name' : self._name_display.display(person) })
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
first = 0
|
first = 0
|
||||||
|
|
||||||
@ -471,14 +480,16 @@ class DetAncestorReport(Report):
|
|||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display_name(mother.get_primary_name())
|
mother_name = \
|
||||||
|
self._name_display.display_name(mother.get_primary_name())
|
||||||
mother_mark = ReportUtils.get_person_mark(self.database, mother)
|
mother_mark = ReportUtils.get_person_mark(self.database, mother)
|
||||||
else:
|
else:
|
||||||
mother_name = ""
|
mother_name = ""
|
||||||
mother_mark = ""
|
mother_mark = ""
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display_name(father.get_primary_name())
|
father_name = \
|
||||||
|
self._name_display.display_name(father.get_primary_name())
|
||||||
father_mark = ReportUtils.get_person_mark(self.database, father)
|
father_mark = ReportUtils.get_person_mark(self.database, father)
|
||||||
else:
|
else:
|
||||||
father_name = ""
|
father_name = ""
|
||||||
@ -501,10 +512,14 @@ class DetAncestorReport(Report):
|
|||||||
family = self.database.get_family_from_handle(family_handle)
|
family = self.database.get_family_from_handle(family_handle)
|
||||||
spouse_handle = ReportUtils.find_spouse(person,family)
|
spouse_handle = ReportUtils.find_spouse(person,family)
|
||||||
spouse = self.database.get_person_from_handle(spouse_handle)
|
spouse = self.database.get_person_from_handle(spouse_handle)
|
||||||
|
if spouse:
|
||||||
|
name = self._name_display.display_formal(spouse)
|
||||||
|
else:
|
||||||
|
name = ""
|
||||||
text = ""
|
text = ""
|
||||||
spouse_mark = ReportUtils.get_person_mark(self.database, spouse)
|
spouse_mark = ReportUtils.get_person_mark(self.database, spouse)
|
||||||
|
|
||||||
text = self.__narrator.get_married_string(family, is_first)
|
text = self.__narrator.get_married_string(family, is_first, self._name_display)
|
||||||
|
|
||||||
if text:
|
if text:
|
||||||
self.doc.write_text_citation(text, spouse_mark)
|
self.doc.write_text_citation(text, spouse_mark)
|
||||||
@ -520,14 +535,14 @@ class DetAncestorReport(Report):
|
|||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display(mother)
|
mother_name = self._name_display.display(mother)
|
||||||
else:
|
else:
|
||||||
mother_name = self._("unknown")
|
mother_name = self._("unknown")
|
||||||
|
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display(father)
|
father_name = self._name_display.display(father)
|
||||||
else:
|
else:
|
||||||
father_name = self._("unknown")
|
father_name = self._("unknown")
|
||||||
|
|
||||||
@ -542,7 +557,7 @@ class DetAncestorReport(Report):
|
|||||||
for child_ref in family.get_child_ref_list():
|
for child_ref in family.get_child_ref_list():
|
||||||
child_handle = child_ref.ref
|
child_handle = child_ref.ref
|
||||||
child = self.database.get_person_from_handle(child_handle)
|
child = self.database.get_person_from_handle(child_handle)
|
||||||
child_name = _nd.display(child)
|
child_name = self._name_display.display(child)
|
||||||
child_mark = ReportUtils.get_person_mark(self.database, child)
|
child_mark = ReportUtils.get_person_mark(self.database, child)
|
||||||
|
|
||||||
if self.childref and self.prev_gen_handles.get(child_handle):
|
if self.childref and self.prev_gen_handles.get(child_handle):
|
||||||
@ -570,14 +585,14 @@ class DetAncestorReport(Report):
|
|||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display(mother)
|
mother_name = self._name_display.display(mother)
|
||||||
else:
|
else:
|
||||||
mother_name = self._("unknown")
|
mother_name = self._("unknown")
|
||||||
|
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display(father)
|
father_name = self._name_display.display(father)
|
||||||
else:
|
else:
|
||||||
father_name = self._("unknown")
|
father_name = self._("unknown")
|
||||||
|
|
||||||
@ -634,7 +649,7 @@ class DetAncestorReport(Report):
|
|||||||
photo = plist[0]
|
photo = plist[0]
|
||||||
ReportUtils.insert_image(self.database, self.doc, photo)
|
ReportUtils.insert_image(self.database, self.doc, photo)
|
||||||
|
|
||||||
name = _nd.display_formal(ind)
|
name = self._name_display.display_formal(ind)
|
||||||
mark = ReportUtils.get_person_mark(self.database, ind)
|
mark = ReportUtils.get_person_mark(self.database, ind)
|
||||||
|
|
||||||
if family.get_relationship() == FamilyRelType.MARRIED:
|
if family.get_relationship() == FamilyRelType.MARRIED:
|
||||||
@ -707,6 +722,16 @@ class DetAncestorOptions(MenuReportOptions):
|
|||||||
pid = PersonOption(_("Center Person"))
|
pid = PersonOption(_("Center Person"))
|
||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
addopt("pid", pid)
|
addopt("pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
addopt("name_format", name_format)
|
||||||
|
|
||||||
gen = NumberOption(_("Generations"),10,1,100)
|
gen = NumberOption(_("Generations"),10,1,100)
|
||||||
gen.set_help(_("The number of generations to include in the report"))
|
gen.set_help(_("The number of generations to include in the report"))
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
# standard python modules
|
# standard python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ from functools import partial
|
|||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.lib import FamilyRelType, Person, NoteType
|
from gen.lib import FamilyRelType, Person, NoteType
|
||||||
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
from gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
|
||||||
@ -113,6 +114,7 @@ class DetDescendantReport(Report):
|
|||||||
incpaths - Whether to include the path of descendancy from the start-person to each descendant.
|
incpaths - Whether to include the path of descendancy from the start-person to each descendant.
|
||||||
incssign - Whether to include a sign ('+') before the descendant number in the child-list to indicate a child has succession.
|
incssign - Whether to include a sign ('+') before the descendant number in the child-list to indicate a child has succession.
|
||||||
pid - The Gramps ID of the center person for the report.
|
pid - The Gramps ID of the center person for the report.
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
|
|
||||||
@ -170,6 +172,13 @@ class DetDescendantReport(Report):
|
|||||||
translator = Translator(language)
|
translator = Translator(language)
|
||||||
self._ = translator.gettext
|
self._ = translator.gettext
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
self.__narrator = Narrator(self.database, self.verbose,
|
self.__narrator = Narrator(self.database, self.verbose,
|
||||||
use_call, use_fulldate,
|
use_call, use_fulldate,
|
||||||
empty_date, empty_place,
|
empty_date, empty_place,
|
||||||
@ -266,7 +275,7 @@ class DetDescendantReport(Report):
|
|||||||
else:
|
else:
|
||||||
raise AttributeError("no such numbering: '%s'" % self.numbering)
|
raise AttributeError("no such numbering: '%s'" % self.numbering)
|
||||||
|
|
||||||
name = _nd.display_name(self.center_person.get_primary_name())
|
name = self._name_display.display_name(self.center_person.get_primary_name())
|
||||||
|
|
||||||
self.doc.start_paragraph("DDR-Title")
|
self.doc.start_paragraph("DDR-Title")
|
||||||
|
|
||||||
@ -313,11 +322,13 @@ class DetDescendantReport(Report):
|
|||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if mother_handle and mother_handle in self.dnumber:
|
if mother_handle and mother_handle in self.dnumber:
|
||||||
person = self.database.get_person_from_handle(mother_handle)
|
person = self.database.get_person_from_handle(mother_handle)
|
||||||
person_name = _nd.display_name(person.get_primary_name())
|
person_name = \
|
||||||
|
self._name_display.display_name(person.get_primary_name())
|
||||||
path.append(person_name)
|
path.append(person_name)
|
||||||
elif father_handle and father_handle in self.dnumber:
|
elif father_handle and father_handle in self.dnumber:
|
||||||
person = self.database.get_person_from_handle(father_handle)
|
person = self.database.get_person_from_handle(father_handle)
|
||||||
person_name = _nd.display_name(person.get_primary_name())
|
person_name = \
|
||||||
|
self._name_display.display_name(person.get_primary_name())
|
||||||
path.append(person_name)
|
path.append(person_name)
|
||||||
else:
|
else:
|
||||||
break
|
break
|
||||||
@ -345,7 +356,7 @@ class DetDescendantReport(Report):
|
|||||||
val = self.dnumber[person_handle]
|
val = self.dnumber[person_handle]
|
||||||
self.doc.start_paragraph("DDR-First-Entry","%s." % val)
|
self.doc.start_paragraph("DDR-First-Entry","%s." % val)
|
||||||
|
|
||||||
name = _nd.display_formal(person)
|
name = self._name_display.display_formal(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
|
|
||||||
self.doc.start_bold()
|
self.doc.start_bold()
|
||||||
@ -471,14 +482,16 @@ class DetDescendantReport(Report):
|
|||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display_name(mother.get_primary_name())
|
mother_name = \
|
||||||
|
self._name_display.display_name(mother.get_primary_name())
|
||||||
mother_mark = ReportUtils.get_person_mark(self.database, mother)
|
mother_mark = ReportUtils.get_person_mark(self.database, mother)
|
||||||
else:
|
else:
|
||||||
mother_name = ""
|
mother_name = ""
|
||||||
mother_mark = ""
|
mother_mark = ""
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display_name(father.get_primary_name())
|
father_name = \
|
||||||
|
self._name_display.display_name(father.get_primary_name())
|
||||||
father_mark = ReportUtils.get_person_mark(self.database, father)
|
father_mark = ReportUtils.get_person_mark(self.database, father)
|
||||||
else:
|
else:
|
||||||
father_name = ""
|
father_name = ""
|
||||||
@ -500,10 +513,14 @@ class DetDescendantReport(Report):
|
|||||||
family = self.database.get_family_from_handle(family_handle)
|
family = self.database.get_family_from_handle(family_handle)
|
||||||
spouse_handle = ReportUtils.find_spouse(person, family)
|
spouse_handle = ReportUtils.find_spouse(person, family)
|
||||||
spouse = self.database.get_person_from_handle(spouse_handle)
|
spouse = self.database.get_person_from_handle(spouse_handle)
|
||||||
|
if spouse:
|
||||||
|
name = self._name_display.display_formal(spouse)
|
||||||
|
else:
|
||||||
|
name = ""
|
||||||
text = ""
|
text = ""
|
||||||
spouse_mark = ReportUtils.get_person_mark(self.database, spouse)
|
spouse_mark = ReportUtils.get_person_mark(self.database, spouse)
|
||||||
|
|
||||||
text = self.__narrator.get_married_string(family, is_first)
|
text = self.__narrator.get_married_string(family, is_first, self._name_display)
|
||||||
|
|
||||||
if text:
|
if text:
|
||||||
self.doc.write_text_citation(text, spouse_mark)
|
self.doc.write_text_citation(text, spouse_mark)
|
||||||
@ -522,7 +539,7 @@ class DetDescendantReport(Report):
|
|||||||
mate = self.database.get_person_from_handle(mate_handle)
|
mate = self.database.get_person_from_handle(mate_handle)
|
||||||
|
|
||||||
self.doc.start_paragraph("DDR-MoreHeader")
|
self.doc.start_paragraph("DDR-MoreHeader")
|
||||||
name = _nd.display_formal(mate)
|
name = self._name_display.display_formal(mate)
|
||||||
mark = ReportUtils.get_person_mark(self.database, mate)
|
mark = ReportUtils.get_person_mark(self.database, mate)
|
||||||
if family.get_relationship() == FamilyRelType.MARRIED:
|
if family.get_relationship() == FamilyRelType.MARRIED:
|
||||||
self.doc.write_text(self._("Spouse: %s") % name, mark)
|
self.doc.write_text(self._("Spouse: %s") % name, mark)
|
||||||
@ -539,14 +556,14 @@ class DetDescendantReport(Report):
|
|||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display(mother)
|
mother_name = self._name_display.display(mother)
|
||||||
else:
|
else:
|
||||||
mother_name = self._("unknown")
|
mother_name = self._("unknown")
|
||||||
|
|
||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display(father)
|
father_name = self._name_display.display(father)
|
||||||
else:
|
else:
|
||||||
father_name = self._("unknown")
|
father_name = self._("unknown")
|
||||||
|
|
||||||
@ -573,7 +590,7 @@ class DetDescendantReport(Report):
|
|||||||
for child_ref in family.get_child_ref_list():
|
for child_ref in family.get_child_ref_list():
|
||||||
child_handle = child_ref.ref
|
child_handle = child_ref.ref
|
||||||
child = self.database.get_person_from_handle(child_handle)
|
child = self.database.get_person_from_handle(child_handle)
|
||||||
child_name = _nd.display(child)
|
child_name = self._name_display.display(child)
|
||||||
child_mark = ReportUtils.get_person_mark(self.database, child)
|
child_mark = ReportUtils.get_person_mark(self.database, child)
|
||||||
|
|
||||||
if self.childref and self.prev_gen_handles.get(child_handle):
|
if self.childref and self.prev_gen_handles.get(child_handle):
|
||||||
@ -689,7 +706,7 @@ class DetDescendantReport(Report):
|
|||||||
|
|
||||||
|
|
||||||
def write_person_info(self, person):
|
def write_person_info(self, person):
|
||||||
name = _nd.display_formal(person)
|
name = self._name_display.display_formal(person)
|
||||||
self.__narrator.set_subject(person)
|
self.__narrator.set_subject(person)
|
||||||
|
|
||||||
plist = person.get_media_list()
|
plist = person.get_media_list()
|
||||||
@ -762,7 +779,7 @@ class DetDescendantReport(Report):
|
|||||||
if first:
|
if first:
|
||||||
self.doc.start_paragraph('DDR-MoreHeader')
|
self.doc.start_paragraph('DDR-MoreHeader')
|
||||||
self.doc.write_text(self._('More about %(person_name)s:') % {
|
self.doc.write_text(self._('More about %(person_name)s:') % {
|
||||||
'person_name' : _nd.display(person) })
|
'person_name' : self._name_display.display(person) })
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
first = 0
|
first = 0
|
||||||
|
|
||||||
@ -847,6 +864,16 @@ class DetDescendantOptions(MenuReportOptions):
|
|||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
add_option("pid", pid)
|
add_option("pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
add_option("name_format", name_format)
|
||||||
|
|
||||||
numbering = EnumeratedListOption(_("Numbering system"), "Henry")
|
numbering = EnumeratedListOption(_("Numbering system"), "Henry")
|
||||||
numbering.set_items([
|
numbering.set_items([
|
||||||
("Henry", _("Henry numbering")),
|
("Henry", _("Henry numbering")),
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
# python modules
|
# python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -35,12 +36,12 @@ from gen.ggettext import gettext as _
|
|||||||
# gramps modules
|
# gramps modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as name_displayer
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
||||||
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
|
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
|
||||||
PARA_ALIGN_CENTER)
|
PARA_ALIGN_CENTER)
|
||||||
from gen.plug.menu import PersonOption
|
from gen.plug.menu import (PersonOption, EnumeratedListOption)
|
||||||
from gen.plug.report import Report
|
from gen.plug.report import Report
|
||||||
from gen.plug.report import utils as ReportUtils
|
from gen.plug.report import utils as ReportUtils
|
||||||
from gen.plug.report import MenuReportOptions
|
from gen.plug.report import MenuReportOptions
|
||||||
@ -65,6 +66,7 @@ class EndOfLineReport(Report):
|
|||||||
|
|
||||||
This report needs the following parameters (class variables)
|
This report needs the following parameters (class variables)
|
||||||
that come in the options class.
|
that come in the options class.
|
||||||
|
name_format - Preferred format to display names
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
@ -74,6 +76,13 @@ class EndOfLineReport(Report):
|
|||||||
if (self.center_person == None) :
|
if (self.center_person == None) :
|
||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
# eol_map is a map whose:
|
# eol_map is a map whose:
|
||||||
# keys are the generations of the people
|
# keys are the generations of the people
|
||||||
# values are a map whose:
|
# values are a map whose:
|
||||||
@ -134,7 +143,7 @@ class EndOfLineReport(Report):
|
|||||||
The routine the actually creates the report. At this point, the document
|
The routine the actually creates the report. At this point, the document
|
||||||
is opened and ready for writing.
|
is opened and ready for writing.
|
||||||
"""
|
"""
|
||||||
pname = name_displayer.display(self.center_person)
|
pname = self._name_display.display(self.center_person)
|
||||||
|
|
||||||
self.doc.start_paragraph("EOL-Title")
|
self.doc.start_paragraph("EOL-Title")
|
||||||
title = _("End of Line Report for %s") % pname
|
title = _("End of Line Report for %s") % pname
|
||||||
@ -173,7 +182,7 @@ class EndOfLineReport(Report):
|
|||||||
"""
|
"""
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
|
|
||||||
name = name_displayer.display(person)
|
name = self._name_display.display(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
birth_date = ""
|
birth_date = ""
|
||||||
birth_ref = person.get_birth_ref()
|
birth_ref = person.get_birth_ref()
|
||||||
@ -208,7 +217,7 @@ class EndOfLineReport(Report):
|
|||||||
names = []
|
names = []
|
||||||
for person_handle in pedigree:
|
for person_handle in pedigree:
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
names.append(name_displayer.display(person))
|
names.append(self._name_display.display(person))
|
||||||
text = " -- ".join(names)
|
text = " -- ".join(names)
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.doc.start_cell('EOL-TableCell')
|
self.doc.start_cell('EOL-TableCell')
|
||||||
@ -243,6 +252,17 @@ class EndOfLineOptions(MenuReportOptions):
|
|||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
menu.add_option(category_name, "pid", pid)
|
menu.add_option(category_name, "pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
|
|
||||||
def make_default_style(self, default_style):
|
def make_default_style(self, default_style):
|
||||||
"""Make the default output style for the End of Line Report."""
|
"""Make the default output style for the End of Line Report."""
|
||||||
# Paragraph Styles
|
# Paragraph Styles
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
# Python Library
|
# Python Library
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -37,7 +38,7 @@ from functools import partial
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
import gen.lib
|
import gen.lib
|
||||||
from gen.plug.menu import BooleanOption, FamilyOption
|
from gen.plug.menu import (BooleanOption, FamilyOption, EnumeratedListOption)
|
||||||
from gen.plug.report import Report
|
from gen.plug.report import Report
|
||||||
from gen.plug.report import utils as ReportUtils
|
from gen.plug.report import utils as ReportUtils
|
||||||
from gen.plug.report import MenuReportOptions
|
from gen.plug.report import MenuReportOptions
|
||||||
@ -46,7 +47,7 @@ from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
|||||||
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
||||||
import DateHandler
|
import DateHandler
|
||||||
from gen.ggettext import sgettext as _
|
from gen.ggettext import sgettext as _
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as global_name_display
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -70,6 +71,7 @@ class FamilyGroup(Report):
|
|||||||
|
|
||||||
family_handle - Handle of the family to write report on.
|
family_handle - Handle of the family to write report on.
|
||||||
includeAttrs - Whether to include attributes
|
includeAttrs - Whether to include attributes
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
menu = options_class.menu
|
menu = options_class.menu
|
||||||
@ -83,6 +85,13 @@ class FamilyGroup(Report):
|
|||||||
else:
|
else:
|
||||||
self.family_handle = None
|
self.family_handle = None
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
get_option_by_name = menu.get_option_by_name
|
get_option_by_name = menu.get_option_by_name
|
||||||
get_value = lambda name:get_option_by_name(name).get_value()
|
get_value = lambda name:get_option_by_name(name).get_value()
|
||||||
self.recursive = get_value('recursive')
|
self.recursive = get_value('recursive')
|
||||||
@ -160,7 +169,7 @@ class FamilyGroup(Report):
|
|||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
father_name = _nd.display(father)
|
father_name = self._name_display.display(father)
|
||||||
if self.incRelDates:
|
if self.incRelDates:
|
||||||
birth_ref = father.get_birth_ref()
|
birth_ref = father.get_birth_ref()
|
||||||
birth = " "
|
birth = " "
|
||||||
@ -177,7 +186,7 @@ class FamilyGroup(Report):
|
|||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mother_name = _nd.display(mother)
|
mother_name = self._name_display.display(mother)
|
||||||
if self.incRelDates:
|
if self.incRelDates:
|
||||||
birth_ref = mother.get_birth_ref()
|
birth_ref = mother.get_birth_ref()
|
||||||
birth = " "
|
birth = " "
|
||||||
@ -264,7 +273,7 @@ class FamilyGroup(Report):
|
|||||||
person = gen.lib.Person()
|
person = gen.lib.Person()
|
||||||
else:
|
else:
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
name = _nd.display(person)
|
name = self._name_display.display(person)
|
||||||
|
|
||||||
self.doc.start_table(title,'FGR-ParentTable')
|
self.doc.start_table(title,'FGR-ParentTable')
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
@ -339,7 +348,7 @@ class FamilyGroup(Report):
|
|||||||
if self.incParNames:
|
if self.incParNames:
|
||||||
for alt_name in person.get_alternate_names():
|
for alt_name in person.get_alternate_names():
|
||||||
name_type = str( alt_name.get_type() )
|
name_type = str( alt_name.get_type() )
|
||||||
name = _nd.display_name(alt_name)
|
name = self._name_display.display_name(alt_name)
|
||||||
self.dump_parent_line(name_type, name)
|
self.dump_parent_line(name_type, name)
|
||||||
|
|
||||||
self.doc.end_table()
|
self.doc.end_table()
|
||||||
@ -454,7 +463,7 @@ class FamilyGroup(Report):
|
|||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
self.doc.end_cell()
|
self.doc.end_cell()
|
||||||
|
|
||||||
name = _nd.display(person)
|
name = self._name_display.display(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database,person)
|
mark = ReportUtils.get_person_mark(self.database,person)
|
||||||
self.doc.start_cell('FGR-ChildName',3)
|
self.doc.start_cell('FGR-ChildName',3)
|
||||||
self.doc.start_paragraph('FGR-ChildText')
|
self.doc.start_paragraph('FGR-ChildText')
|
||||||
@ -514,7 +523,7 @@ class FamilyGroup(Report):
|
|||||||
self.doc.start_paragraph('FGR-Normal')
|
self.doc.start_paragraph('FGR-Normal')
|
||||||
|
|
||||||
spouse = self.database.get_person_from_handle(spouse_id)
|
spouse = self.database.get_person_from_handle(spouse_id)
|
||||||
spouse_name = _nd.display(spouse)
|
spouse_name = self._name_display.display(spouse)
|
||||||
if self.incRelDates:
|
if self.incRelDates:
|
||||||
birth = " "
|
birth = " "
|
||||||
birth_ref = spouse.get_birth_ref()
|
birth_ref = spouse.get_birth_ref()
|
||||||
@ -621,6 +630,17 @@ class FamilyGroupOptions(MenuReportOptions):
|
|||||||
family_id = FamilyOption(_("Center Family"))
|
family_id = FamilyOption(_("Center Family"))
|
||||||
family_id.set_help(_("The center family for the report"))
|
family_id.set_help(_("The center family for the report"))
|
||||||
add_option("family_id", family_id)
|
add_option("family_id", family_id)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
add_option("name_format", name_format)
|
||||||
|
|
||||||
|
|
||||||
recursive = BooleanOption(_('Recursive'),False)
|
recursive = BooleanOption(_('Recursive'),False)
|
||||||
recursive.set_help(_("Create reports for all descendants "
|
recursive.set_help(_("Create reports for all descendants "
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
import os
|
import os
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
|
|
||||||
@ -44,13 +45,13 @@ from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
|
|||||||
PARA_ALIGN_CENTER)
|
PARA_ALIGN_CENTER)
|
||||||
import DateHandler
|
import DateHandler
|
||||||
from gen.plug.menu import (BooleanOption, FilterOption, PersonOption,
|
from gen.plug.menu import (BooleanOption, FilterOption, PersonOption,
|
||||||
BooleanListOption)
|
BooleanListOption, EnumeratedListOption)
|
||||||
from gen.plug.report import Report
|
from gen.plug.report import Report
|
||||||
from gen.plug.report import utils as ReportUtils
|
from gen.plug.report import utils as ReportUtils
|
||||||
from gen.plug.report import MenuReportOptions
|
from gen.plug.report import MenuReportOptions
|
||||||
from gen.plug.report import Bibliography
|
from gen.plug.report import Bibliography
|
||||||
from gen.plug.report import endnotes as Endnotes
|
from gen.plug.report import endnotes as Endnotes
|
||||||
from gen.display.name import displayer as _nd
|
from gen.display.name import displayer as global_name_display
|
||||||
from Utils import media_path_full
|
from Utils import media_path_full
|
||||||
from QuestionDialog import WarningDialog
|
from QuestionDialog import WarningDialog
|
||||||
|
|
||||||
@ -160,6 +161,7 @@ class IndivCompleteReport(Report):
|
|||||||
cites - Whether or not to include source information.
|
cites - Whether or not to include source information.
|
||||||
sort - Whether ot not to sort events into chronological order.
|
sort - Whether ot not to sort events into chronological order.
|
||||||
sections - Which event groups should be given separate sections.
|
sections - Which event groups should be given separate sections.
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
|
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
@ -177,6 +179,13 @@ class IndivCompleteReport(Report):
|
|||||||
|
|
||||||
self.section_list = menu.get_option_by_name('sections').get_selected()
|
self.section_list = menu.get_option_by_name('sections').get_selected()
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
def write_fact(self, event_ref, event, event_group):
|
def write_fact(self, event_ref, event, event_group):
|
||||||
"""
|
"""
|
||||||
Writes a single event.
|
Writes a single event.
|
||||||
@ -306,7 +315,7 @@ class IndivCompleteReport(Report):
|
|||||||
father_handle = family.get_father_handle()
|
father_handle = family.get_father_handle()
|
||||||
if father_handle:
|
if father_handle:
|
||||||
father = self.database.get_person_from_handle(father_handle)
|
father = self.database.get_person_from_handle(father_handle)
|
||||||
fname = _nd.display(father)
|
fname = self._name_display.display(father)
|
||||||
mark = ReportUtils.get_person_mark(self.database, father)
|
mark = ReportUtils.get_person_mark(self.database, father)
|
||||||
self.write_p_entry(_('Father'), fname, frel, mark)
|
self.write_p_entry(_('Father'), fname, frel, mark)
|
||||||
else:
|
else:
|
||||||
@ -315,7 +324,7 @@ class IndivCompleteReport(Report):
|
|||||||
mother_handle = family.get_mother_handle()
|
mother_handle = family.get_mother_handle()
|
||||||
if mother_handle:
|
if mother_handle:
|
||||||
mother = self.database.get_person_from_handle(mother_handle)
|
mother = self.database.get_person_from_handle(mother_handle)
|
||||||
mname = _nd.display(mother)
|
mname = self._name_display.display(mother)
|
||||||
mark = ReportUtils.get_person_mark(self.database, mother)
|
mark = ReportUtils.get_person_mark(self.database, mother)
|
||||||
self.write_p_entry(_('Mother'), mname, mrel, mark)
|
self.write_p_entry(_('Mother'), mname, mrel, mark)
|
||||||
else:
|
else:
|
||||||
@ -343,7 +352,7 @@ class IndivCompleteReport(Report):
|
|||||||
name_type = str( name.get_type() )
|
name_type = str( name.get_type() )
|
||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell(name_type)
|
self.normal_cell(name_type)
|
||||||
text = _nd.display_name(name)
|
text = self._name_display.display_name(name)
|
||||||
endnotes = ""
|
endnotes = ""
|
||||||
if self.use_srcs:
|
if self.use_srcs:
|
||||||
endnotes = Endnotes.cite_source(self.bibli, name)
|
endnotes = Endnotes.cite_source(self.bibli, name)
|
||||||
@ -408,7 +417,7 @@ class IndivCompleteReport(Report):
|
|||||||
self.doc.start_paragraph("IDS-Spouse")
|
self.doc.start_paragraph("IDS-Spouse")
|
||||||
if spouse_id:
|
if spouse_id:
|
||||||
spouse = self.database.get_person_from_handle(spouse_id)
|
spouse = self.database.get_person_from_handle(spouse_id)
|
||||||
text = _nd.display(spouse)
|
text = self._name_display.display(spouse)
|
||||||
mark = ReportUtils.get_person_mark(self.database, spouse)
|
mark = ReportUtils.get_person_mark(self.database, spouse)
|
||||||
else:
|
else:
|
||||||
text = _("unknown")
|
text = _("unknown")
|
||||||
@ -432,7 +441,7 @@ class IndivCompleteReport(Report):
|
|||||||
for child_ref in child_ref_list:
|
for child_ref in child_ref_list:
|
||||||
self.doc.start_paragraph("IDS-Normal")
|
self.doc.start_paragraph("IDS-Normal")
|
||||||
child = self.database.get_person_from_handle(child_ref.ref)
|
child = self.database.get_person_from_handle(child_ref.ref)
|
||||||
name = _nd.display(child)
|
name = self._name_display.display(child)
|
||||||
mark = ReportUtils.get_person_mark(self.database, child)
|
mark = ReportUtils.get_person_mark(self.database, child)
|
||||||
self.doc.write_text(name, mark)
|
self.doc.write_text(name, mark)
|
||||||
self.doc.end_paragraph()
|
self.doc.end_paragraph()
|
||||||
@ -531,7 +540,7 @@ class IndivCompleteReport(Report):
|
|||||||
self.bibli = Bibliography(Bibliography.MODE_DATE|Bibliography.MODE_PAGE)
|
self.bibli = Bibliography(Bibliography.MODE_DATE|Bibliography.MODE_PAGE)
|
||||||
|
|
||||||
media_list = self.person.get_media_list()
|
media_list = self.person.get_media_list()
|
||||||
name = _nd.display(self.person)
|
name = self._name_display.display(self.person)
|
||||||
title = _("Summary of %s") % name
|
title = _("Summary of %s") % name
|
||||||
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
||||||
self.doc.start_paragraph("IDS-Title")
|
self.doc.start_paragraph("IDS-Title")
|
||||||
@ -560,7 +569,7 @@ class IndivCompleteReport(Report):
|
|||||||
self.doc.start_row()
|
self.doc.start_row()
|
||||||
self.normal_cell("%s:" % _("Name"))
|
self.normal_cell("%s:" % _("Name"))
|
||||||
name = self.person.get_primary_name()
|
name = self.person.get_primary_name()
|
||||||
text = _nd.display_name(name)
|
text = self._name_display.display_name(name)
|
||||||
mark = ReportUtils.get_person_mark(self.database, self.person)
|
mark = ReportUtils.get_person_mark(self.database, self.person)
|
||||||
endnotes = ""
|
endnotes = ""
|
||||||
if self.use_srcs:
|
if self.use_srcs:
|
||||||
@ -585,7 +594,7 @@ class IndivCompleteReport(Report):
|
|||||||
if father_inst_id:
|
if father_inst_id:
|
||||||
father_inst = self.database.get_person_from_handle(
|
father_inst = self.database.get_person_from_handle(
|
||||||
father_inst_id)
|
father_inst_id)
|
||||||
father = _nd.display(father_inst)
|
father = self._name_display.display(father_inst)
|
||||||
fmark = ReportUtils.get_person_mark(self.database, father_inst)
|
fmark = ReportUtils.get_person_mark(self.database, father_inst)
|
||||||
else:
|
else:
|
||||||
father = ""
|
father = ""
|
||||||
@ -594,7 +603,7 @@ class IndivCompleteReport(Report):
|
|||||||
if mother_inst_id:
|
if mother_inst_id:
|
||||||
mother_inst = self.database.get_person_from_handle(
|
mother_inst = self.database.get_person_from_handle(
|
||||||
mother_inst_id)
|
mother_inst_id)
|
||||||
mother = _nd.display(mother_inst)
|
mother = self._name_display.display(mother_inst)
|
||||||
mmark = ReportUtils.get_person_mark(self.database, mother_inst)
|
mmark = ReportUtils.get_person_mark(self.database, mother_inst)
|
||||||
else:
|
else:
|
||||||
mother = ""
|
mother = ""
|
||||||
@ -661,6 +670,17 @@ class IndivCompleteOptions(MenuReportOptions):
|
|||||||
self.__pid.set_help(_("The center person for the filter."))
|
self.__pid.set_help(_("The center person for the filter."))
|
||||||
menu.add_option(category_name, "pid", self.__pid)
|
menu.add_option(category_name, "pid", self.__pid)
|
||||||
self.__pid.connect('value-changed', self.__update_filters)
|
self.__pid.connect('value-changed', self.__update_filters)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
|
|
||||||
self.__update_filters()
|
self.__update_filters()
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
# python modules
|
# python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -37,12 +38,13 @@ from gen.ggettext import gettext as _
|
|||||||
# gramps modules
|
# gramps modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as name_displayer
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
import Relationship
|
import Relationship
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
|
||||||
from gen.plug.menu import NumberOption, BooleanOption, PersonOption
|
from gen.plug.menu import (NumberOption, BooleanOption, PersonOption,
|
||||||
|
EnumeratedListOption)
|
||||||
from gen.plug.report import Report
|
from gen.plug.report import Report
|
||||||
from gen.plug.report import utils as ReportUtils
|
from gen.plug.report import utils as ReportUtils
|
||||||
from gen.plug.report import MenuReportOptions
|
from gen.plug.report import MenuReportOptions
|
||||||
@ -74,6 +76,7 @@ class KinshipReport(Report):
|
|||||||
inccousins - Whether to include cousins.
|
inccousins - Whether to include cousins.
|
||||||
incaunts - Whether to include aunts/uncles/nephews/nieces.
|
incaunts - Whether to include aunts/uncles/nephews/nieces.
|
||||||
pid - The Gramps ID of the center person for the report.
|
pid - The Gramps ID of the center person for the report.
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
|
|
||||||
@ -88,6 +91,13 @@ class KinshipReport(Report):
|
|||||||
if (self.person == None) :
|
if (self.person == None) :
|
||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
self.__db = database
|
self.__db = database
|
||||||
self.rel_calc = Relationship.get_relationship_calculator()
|
self.rel_calc = Relationship.get_relationship_calculator()
|
||||||
|
|
||||||
@ -99,7 +109,7 @@ class KinshipReport(Report):
|
|||||||
The routine the actually creates the report. At this point, the document
|
The routine the actually creates the report. At this point, the document
|
||||||
is opened and ready for writing.
|
is opened and ready for writing.
|
||||||
"""
|
"""
|
||||||
pname = name_displayer.display(self.person)
|
pname = self._name_display.display(self.person)
|
||||||
|
|
||||||
self.doc.start_paragraph("KIN-Title")
|
self.doc.start_paragraph("KIN-Title")
|
||||||
title = _("Kinship Report for %s") % pname
|
title = _("Kinship Report for %s") % pname
|
||||||
@ -285,7 +295,7 @@ class KinshipReport(Report):
|
|||||||
"""
|
"""
|
||||||
person = self.database.get_person_from_handle(person_handle)
|
person = self.database.get_person_from_handle(person_handle)
|
||||||
|
|
||||||
name = name_displayer.display(person)
|
name = self._name_display.display(person)
|
||||||
mark = ReportUtils.get_person_mark(self.database, person)
|
mark = ReportUtils.get_person_mark(self.database, person)
|
||||||
birth_date = ""
|
birth_date = ""
|
||||||
birth = get_birth_or_fallback(self.database, person)
|
birth = get_birth_or_fallback(self.database, person)
|
||||||
@ -328,7 +338,17 @@ class KinshipOptions(MenuReportOptions):
|
|||||||
pid = PersonOption(_("Center Person"))
|
pid = PersonOption(_("Center Person"))
|
||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
menu.add_option(category_name, "pid", pid)
|
menu.add_option(category_name, "pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
maxdescend = NumberOption(_("Max Descendant Generations"), 2, 1, 20)
|
maxdescend = NumberOption(_("Max Descendant Generations"), 2, 1, 20)
|
||||||
maxdescend.set_help(_("The maximum number of descendant generations"))
|
maxdescend.set_help(_("The maximum number of descendant generations"))
|
||||||
menu.add_option(category_name, "maxdescend", maxdescend)
|
menu.add_option(category_name, "maxdescend", maxdescend)
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
# standard python modules
|
# standard python modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
|
import copy
|
||||||
from gen.ggettext import gettext as _
|
from gen.ggettext import gettext as _
|
||||||
from gen.ggettext import ngettext
|
from gen.ggettext import ngettext
|
||||||
import locale
|
import locale
|
||||||
@ -41,9 +42,9 @@ import math
|
|||||||
# GRAMPS modules
|
# GRAMPS modules
|
||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
from gen.display.name import displayer as name_displayer
|
from gen.display.name import displayer as global_name_display
|
||||||
from Errors import ReportError
|
from Errors import ReportError
|
||||||
from gen.plug.menu import PersonOption
|
from gen.plug.menu import PersonOption, EnumeratedListOption
|
||||||
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
from gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
|
||||||
FONT_SANS_SERIF, PARA_ALIGN_CENTER,
|
FONT_SANS_SERIF, PARA_ALIGN_CENTER,
|
||||||
INDEX_TYPE_TOC)
|
INDEX_TYPE_TOC)
|
||||||
@ -69,6 +70,7 @@ class NumberOfAncestorsReport(Report):
|
|||||||
database - the GRAMPS database instance
|
database - the GRAMPS database instance
|
||||||
person - currently selected person
|
person - currently selected person
|
||||||
options_class - instance of the Options class for this report
|
options_class - instance of the Options class for this report
|
||||||
|
name_format - Preferred format to display names
|
||||||
"""
|
"""
|
||||||
Report.__init__(self, database, options_class)
|
Report.__init__(self, database, options_class)
|
||||||
self.__db = database
|
self.__db = database
|
||||||
@ -77,6 +79,13 @@ class NumberOfAncestorsReport(Report):
|
|||||||
if (self.__person == None) :
|
if (self.__person == None) :
|
||||||
raise ReportError(_("Person %s is not in the Database") % pid )
|
raise ReportError(_("Person %s is not in the Database") % pid )
|
||||||
|
|
||||||
|
# Copy the global NameDisplay so that we don't change application
|
||||||
|
# defaults.
|
||||||
|
self._name_display = copy.deepcopy(global_name_display)
|
||||||
|
name_format = menu.get_option_by_name("name_format").get_value()
|
||||||
|
if name_format != 0:
|
||||||
|
self._name_display.set_default_format(name_format)
|
||||||
|
|
||||||
def write_report(self):
|
def write_report(self):
|
||||||
"""
|
"""
|
||||||
The routine the actually creates the report. At this point, the document
|
The routine the actually creates the report. At this point, the document
|
||||||
@ -88,7 +97,7 @@ class NumberOfAncestorsReport(Report):
|
|||||||
thisgen[self.__person.get_handle()]=1
|
thisgen[self.__person.get_handle()]=1
|
||||||
|
|
||||||
self.doc.start_paragraph("NOA-Title")
|
self.doc.start_paragraph("NOA-Title")
|
||||||
name = name_displayer.display(self.__person)
|
name = self._name_display.display(self.__person)
|
||||||
title = _("Number of Ancestors for %s") % name
|
title = _("Number of Ancestors for %s") % name
|
||||||
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
mark = IndexMark(title, INDEX_TYPE_TOC, 1)
|
||||||
self.doc.write_text(title, mark)
|
self.doc.write_text(title, mark)
|
||||||
@ -183,6 +192,16 @@ class NumberOfAncestorsOptions(MenuReportOptions):
|
|||||||
pid.set_help(_("The center person for the report"))
|
pid.set_help(_("The center person for the report"))
|
||||||
menu.add_option(category_name, "pid", pid)
|
menu.add_option(category_name, "pid", pid)
|
||||||
|
|
||||||
|
# We must figure out the value of the first option before we can
|
||||||
|
# create the EnumeratedListOption
|
||||||
|
fmt_list = global_name_display.get_name_format()
|
||||||
|
name_format = EnumeratedListOption(_("Name format"), 0)
|
||||||
|
name_format.add_item(0, _("Default"))
|
||||||
|
for num, name, fmt_str, act in fmt_list:
|
||||||
|
name_format.add_item(num, name)
|
||||||
|
name_format.set_help(_("Select the format to display names"))
|
||||||
|
menu.add_option(category_name, "name_format", name_format)
|
||||||
|
|
||||||
def make_default_style(self, default_style):
|
def make_default_style(self, default_style):
|
||||||
"""Make the default output style for the Number of Ancestors Report."""
|
"""Make the default output style for the Number of Ancestors Report."""
|
||||||
font = FontStyle()
|
font = FontStyle()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user