From 64a0e59955f674bfc2d7b8d5b357e418e149dd72 Mon Sep 17 00:00:00 2001 From: Benny Malengier Date: Fri, 21 Sep 2007 14:05:30 +0000 Subject: [PATCH] * src/plugins/MarkerReport.py: localize fixed markers, issue #1137 2007-09-20 Benny Malengier svn: r8997 --- ChangeLog | 3 ++ src/plugins/MarkerReport.py | 63 ++++++++++++++++++++++--------------- 2 files changed, 41 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index 948e9d09d..5486fc843 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +2007-09-20 Benny Malengier + * src/plugins/MarkerReport.py: localize fixed markers, issue #1137 + 2007-09-20 Benny Malengier * src/RelLib/_Date.py: pylint and remove import of DateHandler as not really needed and unwanted in RelLib. diff --git a/src/plugins/MarkerReport.py b/src/plugins/MarkerReport.py index 4138b02d4..4c300a4a5 100644 --- a/src/plugins/MarkerReport.py +++ b/src/plugins/MarkerReport.py @@ -28,6 +28,7 @@ # #------------------------------------------------------------------------ from gettext import gettext as _ +import copy #------------------------------------------------------------------------ # @@ -39,6 +40,7 @@ from ReportBase import Report, ReportUtils, ReportOptions, \ CATEGORY_TEXT, MODE_GUI, MODE_BKI, MODE_CLI import BaseDoc import Sort +import AutoComp from RelLib import MarkerType, FamilyRelType from Filters import GenericFilter, GenericFilterFactory, Rules from BasicUtils import name_displayer @@ -71,18 +73,18 @@ class MarkerReport(Report): This report needs the following parameters (class variables) that come in the options class. - marker - The marker each object must match to be included. - + marker - The marker each object must match to be included, + an English string for normal data, otherwise custom + language string. + marker_str - Same as marker but now always localized. """ - Report.__init__(self,database,person,options_class) - - self.marker = options_class.handler.options_dict['marker'] - + self.marker = options_class.markerval + self.marker_str = options_class.marker_str def write_report(self): self.doc.start_paragraph("MR-Title") - title = _("Marker Report for %s Items") % self.marker + title = _("Marker Report for %s Items") % self.marker_str mark = BaseDoc.IndexMark(title,BaseDoc.INDEX_TYPE_TOC,1) self.doc.write_text(title,mark) self.doc.end_paragraph() @@ -452,25 +454,28 @@ class MarkerOptions(ReportOptions): """ Override the base class add_user_options task to add generations option """ - self.marker_menu = gtk.combo_box_new_text() - index = 0 + self.marker_menu = gtk.ComboBoxEntry() + int_to_string_map = copy.deepcopy(MarkerType._I2SMAP) + #remove the None + del int_to_string_map[MarkerType.NONE] + #add custom markers + self.max_non_custom = max(int_to_string_map.keys()) + nextint = self.max_non_custom+1 + custommarkers = dialog.db.get_marker_types() + for item in custommarkers: + int_to_string_map[nextint] = item + nextint += 1 + marker_index = 0 - markers = [] + for int, str in int_to_string_map.items() : + if self.options_dict['marker'] == str : + marker_index = int + break + self.sel = AutoComp.StandardCustomSelector(int_to_string_map, + self.marker_menu, + MarkerType._CUSTOM, + marker_index) - # Gather all the possible markers - map = MarkerType().get_map() - for key in map.keys(): - if key != MarkerType.CUSTOM and map[key] != "": - markers.append( map[key] ) - markers += dialog.db.get_marker_types() - - # Add the markers to the menu - for marker in markers: - self.marker_menu.append_text(marker) - if self.options_dict['marker'] == marker: - marker_index = index - index += 1 - self.marker_menu.set_active(marker_index) dialog.add_option('Marker',self.marker_menu) def parse_user_options(self,dialog): @@ -478,7 +483,15 @@ class MarkerOptions(ReportOptions): Parses the custom options that we have added. Set the value in the options dictionary. """ - self.options_dict['marker'] = self.marker_menu.get_active_text() + self.options_dict['marker'] = self.sel.get_values()[1] + + int, str = self.sel.get_values() + self.marker_str = str + #marker filter needs untranslated english string, skip custom entry + if int is not MarkerType.CUSTOM and int <= self.max_non_custom: + self.markerval = MarkerType._I2EMAP[int] + else: + self.markerval = str def make_default_style(self,default_style): """Make the default output style for the Marker Report."""