Patch from Peter Landgren <peter.talken@telia.com> fixes:

0001756: Very strange results with statistics report.
0001760: Pie charts are clipped if paper in landscape mode.

svn: r10045
This commit is contained in:
Brian Matherly 2008-02-18 04:49:54 +00:00
parent 76d1f660f0
commit 347cb51593
2 changed files with 23 additions and 8 deletions

View File

@ -1,3 +1,8 @@
2008-02-17 Peter Landgren <peter.talken@telia.com>
* src/plugins/StatisticsChart.py:
0001756: Very strange results with statistics report.
0001760: Pie charts are clipped if paper in landscape mode.
2008-02-17 Douglas S. Blank <dblank@cs.brynmawr.edu> 2008-02-17 Douglas S. Blank <dblank@cs.brynmawr.edu>
* src/gen/lib/date.py (Date.__sub__): fixed some date math (#1649) * src/gen/lib/date.py (Date.__sub__): fixed some date math (#1649)
* src/gen/lib/test/date_test.py: added some unit tests for date math * src/gen/lib/test/date_test.py: added some unit tests for date math

View File

@ -3,6 +3,7 @@
# #
# Copyright (C) 2003-2006 Donald N. Allingham # Copyright (C) 2003-2006 Donald N. Allingham
# Copyright (C) 2007-2008 Brian G. Matherly # Copyright (C) 2007-2008 Brian G. Matherly
# Copyright (C) 2008 Peter Landgren
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -442,6 +443,10 @@ class Extract:
if not no_years: if not no_years:
# do not accept people who are not known to be in range # do not accept people who are not known to be in range
continue continue
else:
continue
else:
continue
self.get_person_data(person, data) self.get_person_data(person, data)
return data return data
@ -566,10 +571,12 @@ class StatisticsChart(Report):
def output_piechart(self, title, typename, data, lookup): def output_piechart(self, title, typename, data, lookup):
# set layout variables # set layout variables
middle = self.doc.get_usable_width() / 2 middle_w = self.doc.get_usable_width() / 2
middle_h = self.doc.get_usable_height() / 2
middle = min(middle_w,middle_h)
# start output # start output
self.doc.center_text('SC-title', title, middle, 0) self.doc.center_text('SC-title', title, middle_w, 0)
style_sheet = self.doc.get_style_sheet() style_sheet = self.doc.get_style_sheet()
pstyle = style_sheet.get_paragraph_style('SC-Title') pstyle = style_sheet.get_paragraph_style('SC-Title')
yoffset = ReportUtils.pt2cm(pstyle.get_font().get_size()) yoffset = ReportUtils.pt2cm(pstyle.get_font().get_size())
@ -584,14 +591,17 @@ class StatisticsChart(Report):
chart_data.append((style, data[key], text)) chart_data.append((style, data[key], text))
color = (color+1) % 7 # There are only 7 color styles defined color = (color+1) % 7 # There are only 7 color styles defined
margin = 1.0 margin = 1.0
legendx = 2.0 legendx = 2.0
# output data... # output data...
radius = middle - 2*margin radius = middle - 2*margin
yoffset = yoffset + margin + radius yoffset = yoffset + margin + radius
ReportUtils.draw_pie_chart(self.doc, middle, yoffset, radius, chart_data, -90) ReportUtils.draw_pie_chart(self.doc, middle_w, yoffset, radius, chart_data, -90)
yoffset = yoffset + radius + margin yoffset = yoffset + radius + 2*margin
if middle == middle_h: # Landscape
legendx = 1.0
yoffset = margin
text = _("%s (persons):") % typename text = _("%s (persons):") % typename
ReportUtils.draw_legend(self.doc, legendx, yoffset, chart_data, text,'SC-legend') ReportUtils.draw_legend(self.doc, legendx, yoffset, chart_data, text,'SC-legend')
@ -696,12 +706,12 @@ class StatisticsChartOptions(MenuReportOptions):
menu.add_option(category_name,"reverse", reverse) menu.add_option(category_name,"reverse", reverse)
this_year = time.localtime()[0] this_year = time.localtime()[0]
year_from = NumberOption(_("People Born Before"), year_from = NumberOption(_("People Born After"),
1700, 1, this_year) 1700, 1, this_year)
year_from.set_help(_("Birth year from which to include people")) year_from.set_help(_("Birth year from which to include people"))
menu.add_option(category_name,"year_from", year_from) menu.add_option(category_name,"year_from", year_from)
year_to = NumberOption(_("People Born After"), year_to = NumberOption(_("People Born Before"),
this_year, 1, this_year) this_year, 1, this_year)
year_to.set_help(_("Birth year until which to include people")) year_to.set_help(_("Birth year until which to include people"))
menu.add_option(category_name,"year_to", year_to) menu.add_option(category_name,"year_to", year_to)