* src/plugins/StatisticsChart.py: Misc fixes.
svn: r3893
This commit is contained in:
		@@ -1,3 +1,6 @@
 | 
			
		||||
2005-01-10 Alex Roitman  <shura@alex.neuro.umn.edu>
 | 
			
		||||
	* src/plugins/StatisticsChart.py: Misc fixes.
 | 
			
		||||
 | 
			
		||||
2005-01-10  Eero Tamminen <eerot@sf>
 | 
			
		||||
	* src/plugins/Makefile.am:
 | 
			
		||||
	* src/plugins/StatisticsChart.py:
 | 
			
		||||
 
 | 
			
		||||
@@ -47,14 +47,14 @@ import gtk
 | 
			
		||||
#
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
from Utils import pt2cm
 | 
			
		||||
import const    # gender and report type names
 | 
			
		||||
import const                # gender and report type names
 | 
			
		||||
from RelLib import Person   # need Person internals for getting gender / gender name
 | 
			
		||||
import Utils
 | 
			
		||||
import Report
 | 
			
		||||
import BaseDoc
 | 
			
		||||
import GenericFilter
 | 
			
		||||
import ReportOptions
 | 
			
		||||
import Date
 | 
			
		||||
from DateHandler import displayer as _dd
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
@@ -72,18 +72,13 @@ _lookup_items = {}
 | 
			
		||||
# needs to be global for python sort
 | 
			
		||||
def lookup_value_compare(a, b):
 | 
			
		||||
    "compare given keys according to corresponding _lookup_items values"
 | 
			
		||||
    if _lookup_items[a] < _lookup_items[b]:
 | 
			
		||||
        return -1
 | 
			
		||||
    if _lookup_items[a] == _lookup_items[b]:
 | 
			
		||||
        return 0
 | 
			
		||||
    return 1
 | 
			
		||||
    return cmp(_lookup_items[a],_lookup_items[b])
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
# Data extraction methods from the database
 | 
			
		||||
#
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
class Extract:
 | 
			
		||||
 | 
			
		||||
    def __init__(self):
 | 
			
		||||
@@ -171,7 +166,8 @@ class Extract:
 | 
			
		||||
            birth = db.get_event_from_handle(birth_handle).get_date_object()
 | 
			
		||||
            month = birth.get_month()
 | 
			
		||||
            if month:
 | 
			
		||||
                return ["Month text here"]#month.getMonthStr()]
 | 
			
		||||
                _dd._months[month]
 | 
			
		||||
                return [_dd._months[month]]
 | 
			
		||||
        return [_("Person's missing birth month")]
 | 
			
		||||
 | 
			
		||||
    def death_month(self, db, person):
 | 
			
		||||
@@ -180,7 +176,7 @@ class Extract:
 | 
			
		||||
            death = db.get_event_from_handle(death_handle).get_date_object()
 | 
			
		||||
            month = death.get_month()
 | 
			
		||||
            if month:
 | 
			
		||||
                return ["Month text here"]#[month.getMonthStr()]
 | 
			
		||||
                return [_dd._months[month]]
 | 
			
		||||
        return [_("Person's missing death month")]
 | 
			
		||||
 | 
			
		||||
    def death_age(self, db, person):
 | 
			
		||||
@@ -323,7 +319,6 @@ class StatisticsChart(Report.Report):
 | 
			
		||||
            self.title = "%s: %04d-%04d" % (extract[0], year_from, year_to)
 | 
			
		||||
 | 
			
		||||
        self.setup()
 | 
			
		||||
 | 
			
		||||
        
 | 
			
		||||
    def index_items(self, sort, reverse):
 | 
			
		||||
        """creates & stores a sorted index for the items"""
 | 
			
		||||
@@ -436,7 +431,6 @@ class StatisticsChart(Report.Report):
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
# Statistics report options
 | 
			
		||||
@@ -466,7 +460,7 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
 | 
			
		||||
            'year_from' : 1700,
 | 
			
		||||
            'no_years'  : 0,
 | 
			
		||||
            'extract'   : 0,
 | 
			
		||||
            'gender'    : 0,
 | 
			
		||||
            'gender'    : Person.unknown,
 | 
			
		||||
            'sort'      : _SORT_VALUE,
 | 
			
		||||
            'reverse'   : 0
 | 
			
		||||
        }
 | 
			
		||||
@@ -475,11 +469,14 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
 | 
			
		||||
                                _("smaller than %d") % self.options_dict['year_to']),
 | 
			
		||||
            'year_from' : ("=num", _("Birth year from which to include people"),
 | 
			
		||||
                                _("earlier than 'year_to' value")),
 | 
			
		||||
            'no_years'  : ("=num", _("Include people without birth years"), [_("No"), _("Yes")]),
 | 
			
		||||
            'gender'    : ("=num", _('Genders included'), self._genders),
 | 
			
		||||
            'extract'   : ("=num", _('Data to show'), [item[0] for item in _Extract.extractors]),
 | 
			
		||||
            'sort'      : ("=num", _('Sorted by'), self._sorts),
 | 
			
		||||
            'reverse'   : ("=num", _("Sort in reverse order"), [_("Yes"), _("No")])
 | 
			
		||||
            'no_years'  : ("=num", _("Include people without birth years"), 
 | 
			
		||||
                                [_("No"), _("Yes")], False),
 | 
			
		||||
            'gender'    : ("=num", _('Genders included'), str(self._genders), False),
 | 
			
		||||
            'extract'   : ("=num", _('Data to show'), 
 | 
			
		||||
                                str([item[0] for item in _Extract.extractors]),False),
 | 
			
		||||
            'sort'      : ("=num", _('Sorted by'), str(self._sorts), False),
 | 
			
		||||
            'reverse'   : ("=num", _("Sort in reverse order"), 
 | 
			
		||||
                                [_("Yes"), _("No")], False)
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
    def enable_options(self):
 | 
			
		||||
@@ -542,37 +539,27 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
 | 
			
		||||
        report specific options
 | 
			
		||||
        """
 | 
			
		||||
        # what data to extract from database
 | 
			
		||||
        self.extract_menu = gtk.Menu()
 | 
			
		||||
        idx = 0
 | 
			
		||||
        self.extract_menu = gtk.combo_box_new_text()
 | 
			
		||||
        for item in _Extract.extractors:
 | 
			
		||||
            menuitem = gtk.MenuItem(item[0])
 | 
			
		||||
            menuitem.set_data('extract', idx)
 | 
			
		||||
            self.extract_menu.append(menuitem)
 | 
			
		||||
            idx += 1
 | 
			
		||||
        self.extract_menu.show_all()
 | 
			
		||||
 | 
			
		||||
            self.extract_menu.append_text(item[0])
 | 
			
		||||
        self.extract_menu.set_active(self.options_dict['extract'])
 | 
			
		||||
        tip = _("Select which data is collected and which statistics is shown.")
 | 
			
		||||
        extract_style = gtk.OptionMenu()
 | 
			
		||||
        extract_style.set_menu(self.extract_menu)
 | 
			
		||||
        dialog.add_option(self.options_help['extract'][1], extract_style, tip)
 | 
			
		||||
        dialog.add_option(self.options_help['extract'][1], self.extract_menu, tip)
 | 
			
		||||
 | 
			
		||||
        # how to sort the data
 | 
			
		||||
        self.sort_menu = gtk.Menu()
 | 
			
		||||
        for item in self._sorts:
 | 
			
		||||
            menuitem = gtk.MenuItem(item[1])
 | 
			
		||||
            menuitem.set_data('sort', item[0])
 | 
			
		||||
            self.sort_menu.append(menuitem)
 | 
			
		||||
        self.sort_menu.show_all()
 | 
			
		||||
 | 
			
		||||
        self.sort_menu = gtk.combo_box_new_text()
 | 
			
		||||
        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']:
 | 
			
		||||
                self.sort_menu.set_active(item_idx)
 | 
			
		||||
        tip = _("Select how the statistical data is sorted.")
 | 
			
		||||
        sort_style = gtk.OptionMenu()
 | 
			
		||||
        sort_style.set_menu(self.sort_menu)
 | 
			
		||||
        dialog.add_option(self.options_help['sort'][1], sort_style, tip)
 | 
			
		||||
        dialog.add_option(self.options_help['sort'][1], self.sort_menu, tip)
 | 
			
		||||
 | 
			
		||||
        # sorting order
 | 
			
		||||
        tip = _("Check to reverse the sorting order.")
 | 
			
		||||
        self.reverse = gtk.CheckButton(self.options_help['reverse'][1])
 | 
			
		||||
        self.reverse.set_active(0)
 | 
			
		||||
        self.reverse.set_active(self.options_dict['reverse'])
 | 
			
		||||
        dialog.add_option(None, self.reverse, tip)
 | 
			
		||||
        self.reverse.show()
 | 
			
		||||
 | 
			
		||||
@@ -593,22 +580,19 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
 | 
			
		||||
        # include people without birth year?
 | 
			
		||||
        tip = _("Check this if you want people who have no birth date or year to be accounted also in the statistics.")
 | 
			
		||||
        self.no_years = gtk.CheckButton(self.options_help['no_years'][1])
 | 
			
		||||
        self.no_years.set_active(0)
 | 
			
		||||
        self.no_years.set_active(self.options_dict['no_years'])
 | 
			
		||||
        dialog.add_option(None, self.no_years, tip)
 | 
			
		||||
        self.no_years.show()
 | 
			
		||||
 | 
			
		||||
        # gender selection
 | 
			
		||||
        self.gender_menu = gtk.Menu()
 | 
			
		||||
        for item in self._genders:
 | 
			
		||||
            menuitem = gtk.MenuItem(item[1])
 | 
			
		||||
            menuitem.set_data('gender', item[0])
 | 
			
		||||
            self.gender_menu.append(menuitem)
 | 
			
		||||
        self.gender_menu.show_all()
 | 
			
		||||
 | 
			
		||||
        self.gender_menu = gtk.combo_box_new_text()
 | 
			
		||||
        for item_idx in range(len(self._genders)):
 | 
			
		||||
            item = self._genders[item_idx]
 | 
			
		||||
            self.gender_menu.append_text(item[1])
 | 
			
		||||
            if item[0] == self.options_dict['gender']:
 | 
			
		||||
                self.gender_menu.set_active(item_idx)
 | 
			
		||||
        tip = _("Select which genders are included into statistics.")
 | 
			
		||||
        genders = gtk.OptionMenu()
 | 
			
		||||
        genders.set_menu(self.gender_menu)
 | 
			
		||||
        dialog.add_option(self.options_help['gender'][1], genders, tip)
 | 
			
		||||
        dialog.add_option(self.options_help['gender'][1], self.gender_menu, tip)
 | 
			
		||||
 | 
			
		||||
    def parse_user_options(self, dialog):
 | 
			
		||||
        """
 | 
			
		||||
@@ -617,12 +601,11 @@ class StatisticsChartOptions(ReportOptions.ReportOptions):
 | 
			
		||||
        self.options_dict['year_to'] = int(self.to_box.get_text())
 | 
			
		||||
        self.options_dict['year_from'] = int(self.from_box.get_text())
 | 
			
		||||
        self.options_dict['no_years'] = int(self.no_years.get_active())
 | 
			
		||||
        self.options_dict['gender'] = self.gender_menu.get_active().get_data('gender')
 | 
			
		||||
        self.options_dict['extract'] = self.extract_menu.get_active().get_data('extract')
 | 
			
		||||
        self.options_dict['sort'] = self.sort_menu.get_active().get_data('sort')
 | 
			
		||||
        self.options_dict['gender'] = self.gender_menu.get_active()
 | 
			
		||||
        self.options_dict['extract'] = self.extract_menu.get_active()
 | 
			
		||||
        self.options_dict['sort'] = self.sort_menu.get_active()
 | 
			
		||||
        self.options_dict['reverse'] = int(self.reverse.get_active())
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#------------------------------------------------------------------------
 | 
			
		||||
#
 | 
			
		||||
# Register report/options
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user