* src/plugins/GraphViz.py: Restore "Place/cause when no date"

option that was available before in RelGraph; rename 'show
family nodes' into 'sfn'.
* src/plugins/StatisticsChart.py: Rename 'sort' into 'sortby'.


svn: r3913
This commit is contained in:
Alex Roitman 2005-01-15 05:51:48 +00:00
parent 0c525c8e3b
commit f89ee71f28
3 changed files with 62 additions and 33 deletions

View File

@ -1,3 +1,9 @@
2005-01-14 Alex Roitman <shura@alex.neuro.umn.edu>
* src/plugins/GraphViz.py: Restore "Place/cause when no date"
option that was available before in RelGraph; rename 'show
family nodes' into 'sfn'.
* src/plugins/StatisticsChart.py: Rename 'sort' into 'sortby'.
2005-01-13 Alex Roitman <shura@alex.neuro.umn.edu>
* src/Report.py: Typos.
* src/plugins/WebPage.py: Typos.

View File

@ -96,7 +96,7 @@ class GraphViz:
returning the list of filters.
font - Font to use.
arrow - Arrow styles for heads and tails.
sfa - Whether to show family nodes.
sfn - Whether to show family nodes.
incid - Whether to include IDs.
incda - Whether to include dates.
yearso - Use years only.
@ -127,8 +127,9 @@ class GraphViz:
self.includeurl = self.options_class.handler.options_dict['url']
self.colorize = self.options_class.handler.options_dict['color']
self.adoptionsdashed = self.options_class.handler.options_dict['dashedl']
self.show_families = self.options_class.handler.options_dict['sfa']
self.show_families = self.options_class.handler.options_dict['sfn']
self.just_year = self.options_class.handler.options_dict['yearso']
self.placecause = self.options_class.handler.options_dict['repb']
self.font = self.options_class.handler.options_dict['font']
if self.font == 'tt':
self.fontname = _TT_FONT
@ -250,21 +251,13 @@ class GraphViz:
birth_handle = person.get_birth_handle()
if birth_handle:
birth_event = self.database.get_event_from_handle(birth_handle)
if birth_event.get_date_object().get_year_valid():
if self.just_year:
birth = '%i' % birth_event.get_date_object().get_year()
else:
birth = birth_event.get_date()
birth = self.dump_event(birth_event)
else:
birth = ''
death_handle = person.get_death_handle()
if death_handle:
death_event = self.database.get_event_from_handle(death_handle)
if death_event.get_date_object().get_year_valid():
if self.just_year:
death = '%i' % death_event.get_date_object().get_year()
else:
death = death_event.get_date()
death = self.dump_event(death_event)
else:
death = ''
label = label + '\\n(%s - %s)' % (birth, death)
@ -304,13 +297,7 @@ class GraphViz:
m = None
if m:
do = m.get_date_object()
if do:
if do.get_year_valid():
if self.just_year:
marriage = '%i' % do.get_year()
else:
marriage = m.get_date()
marriage = self.dump_event(m)
if self.includeid:
marriage = marriage + " (%s)" % fid
self.f.write('fontname="%s", label="%s"];\n'
@ -321,6 +308,32 @@ class GraphViz:
(self.arrowheadstyle, self.arrowtailstyle))
self.f.write('style=solid];\n')
def dump_event(self,event):
"""
Compile an event label.
Based on the data availability and preferences, we select one
of the following for a given event:
year only
complete date
place name
cause
empty string
"""
if event.get_date_object().get_year_valid():
if self.just_year:
return '%i' % event.get_date_object().get_year()
else:
return event.get_date()
elif self.placecause:
place_handle = event.get_place_handle()
place = self.database.get_place_from_handle(place_handle)
if place and place.get_title():
return place.get_title()
else:
return event.get_cause()
return ''
def write_header(self):
"""
Write header listing the options used.
@ -335,7 +348,7 @@ class GraphViz:
self.f.write(" * IDs : %s\n" % bool(self.includeid))
self.f.write(" * dates : %s\n" % bool(self.includedates))
self.f.write(" * just year : %s\n" % bool(self.just_year))
# self.f.write(" * place or cause : %s\n" % self.placecause)
self.f.write(" * place or cause : %s\n" % bool(self.placecause))
self.f.write(" * colorize : %s\n" % bool(self.colorize))
self.f.write(" * dashed adoptions : %s\n" % bool(self.adoptionsdashed))
self.f.write(" * show family nodes : %s\n" % bool(self.show_families))
@ -369,11 +382,11 @@ class GraphVizOptions(ReportOptions.ReportOptions):
self.options_dict = {
'font' : 'tt',
'arrow' : 'd',
'sfa' : 0,
'sfn' : 0,
'incid' : 1,
'incda' : 1,
'yearso' : 0,
# 'repb' : 1,
'repb' : 1,
'url' : 1,
'color' : 1,
'dashedl' : 1,
@ -395,7 +408,7 @@ class GraphVizOptions(ReportOptions.ReportOptions):
'da\tDescendants <-> Ancestors',
'""\tDescendants - Ancestors'],
False),
'sfa' : ("=0/1","Whether to show family nodes.",
'sfn' : ("=0/1","Whether to show family nodes.",
["Do not show family nodes","Show family nodes"],
True),
'incid' : ("=0/1","Whether to include dates.",
@ -407,9 +420,9 @@ class GraphVizOptions(ReportOptions.ReportOptions):
'yearso' : ("=0/1","Whether to use years only.",
["Do not use years only","Use years only"],
True),
# 'repb' : ("=0/1","Whether to cite sources.",
# ["Do not cite sources","Cite sources"],
# True),
'repb' : ("=0/1","Whether to replace missing dates with place/cause.",
["Do not replace blank dates","Replace blank dates"],
True),
'url' : ("=0/1","Whether to include URLs.",
["Do not include URLs","Include URLs"],
True),
@ -543,6 +556,14 @@ class GraphVizOptions(ReportOptions.ReportOptions):
self.includedates_cb.connect('toggled',self.toggle_date)
self.place_cause_cb = gtk.CheckButton(_("Place/cause when no date"))
self.place_cause_cb.set_active(self.options_dict['repb'])
dialog.add_frame_option(_("GraphViz Options"), '',
self.place_cause_cb,
_("When no birth, marriage, or death date "
"is available, the correspondent place field "
"(or cause field when blank place) will be used."))
self.includeurl_cb = gtk.CheckButton(_("Include URLs"))
self.includeurl_cb.set_active(self.options_dict['url'])
dialog.add_frame_option(_("GraphViz Options"), '',
@ -570,7 +591,7 @@ class GraphVizOptions(ReportOptions.ReportOptions):
"as dashed lines in the graph."))
self.show_families_cb = gtk.CheckButton(_("Show family nodes"))
self.show_families_cb.set_active(self.options_dict['sfa'])
self.show_families_cb.set_active(self.options_dict['sfn'])
dialog.add_frame_option(_("GraphViz Options"), '',
self.show_families_cb,
_("Families will show up as ellipses, linked "
@ -623,6 +644,7 @@ class GraphVizOptions(ReportOptions.ReportOptions):
def toggle_date(self,obj):
self.just_year_cb.set_sensitive(self.includedates_cb.get_active())
self.place_cause_cb.set_sensitive(self.includedates_cb.get_active())
def parse_user_options(self,dialog):
self.options_dict['arrow'] = \
@ -635,8 +657,9 @@ class GraphVizOptions(ReportOptions.ReportOptions):
self.options_dict['dashedl'] = int(self.adoptionsdashed_cb.get_active())
self.options_dict['pagesh'] = self.hpages_sb.get_value_as_int()
self.options_dict['pagesv'] = self.hpages_sb.get_value_as_int()
self.options_dict['sfa'] = int(self.show_families_cb.get_active())
self.options_dict['sfn'] = int(self.show_families_cb.get_active())
self.options_dict['incid'] = int(self.includeid_cb.get_active())
self.options_dict['repb'] = int(self.place_cause_cb.get_active())
self.options_dict['font'] = \
self.font_options[self.font_box.get_active()][1]
if self.handler.report_name == "rel_graph2":

View File

@ -304,7 +304,7 @@ class StatisticsChart(Report.Report):
self.items = _Extract.collect_data(database, filterfun, extractfun,
gender, year_from, year_to, options['no_years'])
# generate sorted item lookup index index
self.index_items(options['sort'], options['reverse'])
self.index_items(options['sortby'], options['reverse'])
# title needs both data extraction method name + gender name
if gender == Person.male:
@ -458,7 +458,7 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
# Options specific for this report
self.options_dict = {
'extract' : 0,
'sort' : _SORT_VALUE,
'sortby' : _SORT_VALUE,
'reverse' : 0,
'year_from' : 1700,
'year_to' : time.localtime()[0],
@ -469,7 +469,7 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
'extract' : ("=num", "Data to show",
[item[0] for item in _Extract.extractors],
True),
'sort' : ("=num", "Sorted by",
'sortby' : ("=num", "Sorted by",
["%d\t%s" % item for item in self._sorts],
False),
'reverse' : ("=0/1", "Whether to sort in reverse order",
@ -558,7 +558,7 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
for item_idx in range(len(self._sorts)):
item = self._sorts[item_idx]
self.sort_menu.append_text(item[1])
if item[0] == self.options_dict['sort']:
if item[0] == self.options_dict['sortby']:
self.sort_menu.set_active(item_idx)
tip = _("Select how the statistical data is sorted.")
dialog.add_option(_("Sorted by"), self.sort_menu, tip)
@ -606,7 +606,7 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
Parses the custom options that we have added.
"""
self.options_dict['extract'] = self.extract_menu.get_active()
self.options_dict['sort'] = self._sorts[self.sort_menu.get_active()][0]
self.options_dict['sortby'] = self._sorts[self.sort_menu.get_active()][0]
self.options_dict['reverse'] = int(self.reverse.get_active())
self.options_dict['year_to'] = int(self.to_box.get_text())
self.options_dict['year_from'] = int(self.from_box.get_text())