Proof of concept: adding a center person option instead of using active person in reports.

svn: r9652
This commit is contained in:
Brian Matherly
2007-12-31 06:21:58 +00:00
parent a37fc2bab3
commit f002f65c41
6 changed files with 102 additions and 13 deletions

View File

@@ -39,7 +39,7 @@ from gettext import gettext as _
import BaseDoc
from SubstKeywords import SubstKeywords
from PluginUtils import register_report, \
NumberOption, BooleanOption, TextOption
NumberOption, BooleanOption, TextOption, PersonOption
from ReportBase import Report, ReportUtils, CATEGORY_DRAW, MenuReportOptions,\
MODE_GUI, MODE_BKI, MODE_CLI
from BasicUtils import name_displayer
@@ -186,7 +186,10 @@ class AncestorChart(Report):
self.incblank = options_class.handler.options_dict['incblank']
self.compress = options_class.handler.options_dict['compress']
name = name_displayer.display_formal(person)
pid = options_class.handler.options_dict['pid']
center_person = database.get_person_from_gramps_id(pid)
name = name_displayer.display_formal(center_person)
self.title = _("Ancestor Graph for %s") % name
self.map = {}
@@ -197,7 +200,7 @@ class AncestorChart(Report):
self.lines = 0
self.scale = 1
self.apply_filter(self.start_person.get_handle(),1)
self.apply_filter(center_person.get_handle(),1)
keys = self.map.keys()
keys.sort()
@@ -448,6 +451,14 @@ class AncestorChartOptions(MenuReportOptions):
MenuReportOptions.__init__(self,name,dbstate)
def add_menu_options(self,menu,dbstate):
id = ""
if dbstate:
id = dbstate.get_active_person().get_gramps_id()
pid = PersonOption(_("Center Person"),id,dbstate)
pid.set_help(_("The center person for thereport"))
menu.add_option("","pid",pid)
category_name = _("Report Options")
max_gen = NumberOption(_("Generations"),10,1,15)