refactor: move name_format into stdoptions.py

svn: r22008
This commit is contained in:
Paul Franklin 2013-04-17 20:49:14 +00:00
parent b0a159ee2f
commit feb36c5ce4
12 changed files with 66 additions and 122 deletions

View File

@ -1,7 +1,8 @@
#
# Gramps - a GTK+/GNOME based genealogy program
#
# Copyright 2013 John Ralls <jralls@ceridwen.us>
# Copyright (C) 2013 John Ralls <jralls@ceridwen.us>
# Copyright (C) 2013 Paul Franklin
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -22,14 +23,17 @@
"""
Commonly used report options. Call the function, don't copy the code!
"""
#-------------------------------------------------------------------------
#
# gramps modules
#
#-------------------------------------------------------------------------
from gramps.gen.plug.menu import EnumeratedListOption
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.gettext
from gramps.gen.display.name import displayer as global_name_display
from gramps.gen.plug.menu import EnumeratedListOption
#-------------------------------------------------------------------------
#
# StandardReportOptions
@ -49,3 +53,16 @@ def add_localization_option(menu, category):
trans.add_item(languages[language], language)
trans.set_help(_("The translation to be used for the report."))
menu.add_option(category, "trans", trans)
def add_name_format_option(menu, category):
"""
Insert an option for changing the report's name format to a
report-specific format instead of the user's Edit=>Preferences choice
"""
name_format = EnumeratedListOption(_("Name format"), 0)
name_format.add_item(0, _("Default"))
format_list = global_name_display.get_name_format()
for number, name, format_string, whether_active in format_list:
name_format.add_item(number, name)
name_format.set_help(_("Select the format to display names"))
menu.add_option(category, "name_format", name_format)

View File

@ -50,6 +50,7 @@ from gramps.gen.plug.menu import (BooleanOption, StringOption, NumberOption,
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
from gramps.gen.utils.alive import probably_alive
from gramps.gen.datehandler import displayer as _dd, long_days
from gramps.gen.lib import Date, EventRoleType, EventType, Name, NameType, Person, Surname
@ -412,7 +413,12 @@ class CalendarOptions(MenuReportOptions):
def add_menu_options(self, menu):
""" Add the options for the graphical calendar """
add_option = partial(menu.add_option, _("Report Options"))
##########################
category_name = _("Report Options")
add_option = partial(menu.add_option, category_name)
##########################
year = NumberOption(_("Year of calendar"), time.localtime()[0],
1000, 3000)
year.set_help(_("Year of calendar"))
@ -430,14 +436,7 @@ class CalendarOptions(MenuReportOptions):
self.__update_filters()
# We must figure out the value of the first option before we can
# create the EnumeratedListOption
fmt_list = _nd.get_name_format()
name_format = EnumeratedListOption(_("Name format"), fmt_list[0][0])
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)
stdoptions.add_name_format_option(menu, category_name)
country = EnumeratedListOption(_("Country for holidays"), 0)
holiday_table = libholiday.HolidayTable()

View File

@ -43,8 +43,7 @@ _ = glocale.translation.gettext
from gramps.gen.display.name import displayer as global_name_display
from gramps.gen.errors import ReportError
from gramps.gen.lib import ChildRefType
from gramps.gen.plug.menu import (BooleanOption, NumberOption, PersonOption,
EnumeratedListOption)
from gramps.gen.plug.menu import (BooleanOption, NumberOption, PersonOption)
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
FONT_SANS_SERIF, INDEX_TYPE_TOC,
PARA_ALIGN_CENTER)
@ -272,15 +271,7 @@ class AncestorOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
maxgen = NumberOption(_("Generations"), 10, 1, 100)
maxgen.set_help(_("The number of generations to include in the report"))

View File

@ -52,6 +52,7 @@ from gramps.gen.plug.menu import (BooleanOption, StringOption, NumberOption,
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
from gramps.gen.utils.alive import probably_alive
from gramps.gen.datehandler import displayer as _dd, long_days
@ -384,13 +385,7 @@ class BirthdayOptions(MenuReportOptions):
self.__update_filters()
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)
stdoptions.add_name_format_option(menu, category_name)
country = EnumeratedListOption(_("Country for holidays"), 0)
holiday_table = libholiday.HolidayTable()

View File

@ -52,6 +52,7 @@ from gramps.gen.errors import ReportError
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
from gramps.gen.datehandler import get_date
from gramps.gen.sort import Sort
from gramps.gen.utils.db import (get_birth_or_fallback, get_death_or_fallback,
@ -394,15 +395,7 @@ class DescendantOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
numbering = EnumeratedListOption(_("Numbering system"), "Simple")
numbering.set_items([

View File

@ -49,7 +49,7 @@ from gramps.gen.lib import EventType, FamilyRelType, Person, NoteType
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
FONT_SANS_SERIF, FONT_SERIF,
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
from gramps.gen.plug.menu import BooleanOption, NumberOption, PersonOption, EnumeratedListOption
from gramps.gen.plug.menu import BooleanOption, NumberOption, PersonOption
from gramps.gen.plug.report import ( Report, Bibliography )
from gramps.gen.plug.report import endnotes
from gramps.gen.plug.report import utils as ReportUtils
@ -720,15 +720,7 @@ class DetAncestorOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category)
gen = NumberOption(_("Generations"),10,1,100)
gen.set_help(_("The number of generations to include in the report"))

View File

@ -886,15 +886,7 @@ class DetDescendantOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category)
numbering = EnumeratedListOption(_("Numbering system"), "Henry")
numbering.set_items([

View File

@ -39,13 +39,15 @@ _ = glocale.translation.gettext
#------------------------------------------------------------------------
from gramps.gen.display.name import displayer as global_name_display
from gramps.gen.errors import ReportError
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
PARA_ALIGN_CENTER)
from gramps.gen.plug.menu import (PersonOption, EnumeratedListOption)
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
TableStyle, TableCellStyle,
FONT_SANS_SERIF, INDEX_TYPE_TOC,
PARA_ALIGN_CENTER)
from gramps.gen.plug.menu import PersonOption
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
from gramps.gen.datehandler import get_date
#------------------------------------------------------------------------
@ -255,16 +257,7 @@ class EndOfLineOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
def make_default_style(self, default_style):
"""Make the default output style for the End of Line Report."""

View File

@ -38,13 +38,15 @@ from functools import partial
#
#------------------------------------------------------------------------
from gramps.gen.lib import EventRoleType, EventType, NoteType, Person
from gramps.gen.plug.menu import (BooleanOption, FamilyOption, EnumeratedListOption)
from gramps.gen.plug.menu import (BooleanOption, FamilyOption)
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
TableCellStyle, FONT_SANS_SERIF, FONT_SERIF,
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
from gramps.gen.plug.report import stdoptions
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
TableStyle, TableCellStyle,
FONT_SANS_SERIF, FONT_SERIF,
INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
from gramps.gen.datehandler import get_date
from gramps.gen.const import GRAMPS_LOCALE as glocale
_ = glocale.translation.sgettext
@ -625,23 +627,15 @@ class FamilyGroupOptions(MenuReportOptions):
def add_menu_options(self, menu):
##########################
add_option = partial(menu.add_option, _("Report Options"))
category_name = _("Report Options")
add_option = partial(menu.add_option, category_name)
##########################
family_id = FamilyOption(_("Center Family"))
family_id.set_help(_("The center family for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
recursive = BooleanOption(_('Recursive'),False)
recursive.set_help(_("Create reports for all descendants "

View File

@ -43,17 +43,19 @@ from collections import defaultdict
#
#------------------------------------------------------------------------
from gramps.gen.lib import EventRoleType, EventType, Person, NoteType
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle, TableStyle,
TableCellStyle, FONT_SANS_SERIF, INDEX_TYPE_TOC,
PARA_ALIGN_CENTER)
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
TableStyle, TableCellStyle,
FONT_SANS_SERIF, INDEX_TYPE_TOC,
PARA_ALIGN_CENTER)
from gramps.gen.datehandler import get_date
from gramps.gen.plug.menu import (BooleanOption, FilterOption, PersonOption,
BooleanListOption, EnumeratedListOption)
BooleanListOption)
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import Bibliography
from gramps.gen.plug.report import endnotes as Endnotes
from gramps.gen.plug.report import stdoptions
from gramps.gen.display.name import displayer as global_name_display
from gramps.gen.utils.file import media_path_full
@ -691,16 +693,7 @@ class IndivCompleteOptions(MenuReportOptions):
menu.add_option(category_name, "pid", self.__pid)
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)
stdoptions.add_name_format_option(menu, category_name)
self.__update_filters()

View File

@ -44,11 +44,11 @@ from gramps.gen.errors import ReportError
from gramps.gen.relationship import get_relationship_calculator
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
FONT_SANS_SERIF, INDEX_TYPE_TOC, PARA_ALIGN_CENTER)
from gramps.gen.plug.menu import (NumberOption, BooleanOption, PersonOption,
EnumeratedListOption)
from gramps.gen.plug.menu import (NumberOption, BooleanOption, PersonOption)
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
from gramps.gen.datehandler import get_date
from gramps.gen.utils.db import get_birth_or_fallback, get_death_or_fallback
@ -342,15 +342,7 @@ class KinshipOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
maxdescend = NumberOption(_("Max Descendant Generations"), 2, 1, 20)
maxdescend.set_help(_("The maximum number of descendant generations"))

View File

@ -44,13 +44,14 @@ import math
#------------------------------------------------------------------------
from gramps.gen.display.name import displayer as global_name_display
from gramps.gen.errors import ReportError
from gramps.gen.plug.menu import PersonOption, EnumeratedListOption
from gramps.gen.plug.menu import PersonOption
from gramps.gen.plug.docgen import (IndexMark, FontStyle, ParagraphStyle,
FONT_SANS_SERIF, PARA_ALIGN_CENTER,
INDEX_TYPE_TOC)
from gramps.gen.plug.report import Report
from gramps.gen.plug.report import utils as ReportUtils
from gramps.gen.plug.report import MenuReportOptions
from gramps.gen.plug.report import stdoptions
#------------------------------------------------------------------------
#
@ -187,7 +188,7 @@ class NumberOfAncestorsOptions(MenuReportOptions):
def add_menu_options(self, menu):
"""
Add options to the menu for the kinship report.
Add options to the menu for the Number of Ancestors report.
"""
category_name = _("Report Options")
@ -195,15 +196,7 @@ class NumberOfAncestorsOptions(MenuReportOptions):
pid.set_help(_("The center person for the report"))
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)
stdoptions.add_name_format_option(menu, category_name)
def make_default_style(self, default_style):
"""Make the default output style for the Number of Ancestors Report."""