def parse_option_str(self): for opt in self.options_str_dict.keys(): if opt in self.options_dict.keys(): converter = Utils.get_type_converter(self.options_dict[opt]) self.options_dict[opt] = converter(self.options_str_dict[opt]) self.option_class.handler.options_dict[ opt] = self.options_dict[opt] else: print "Ignoring unknown option: %s" % opt person_id = self.options_dict['id'] self.person = self.database.get_person_from_gramps_id(person_id) id_list = [] for person_handle in self.database.get_person_handles(): person = self.database.get_person_from_handle(person_handle) id_list.append("%s\t%s" % (person.get_gramps_id(), NameDisplay.displayer.display(person))) self.options_help['id'].append(id_list) self.options_help['id'].append(False) if self.options_dict.has_key('filter'): filter_num = self.options_dict['filter'] self.filters = self.option_class.get_report_filters(self.person) self.option_class.handler.set_filter_number(filter_num) filt_list = [filt.get_name() for filt in self.filters] cust_filt_list = [ filt2.get_name() for filt2 in CustomFilters.get_filters() ] filt_list.extend(cust_filt_list) self.options_help['filter'].append(filt_list) self.options_help['filter'].append(True)
def parse_option_str(self): for opt in self.options_str_dict.keys(): if opt in self.options_dict.keys(): converter = Utils.get_type_converter(self.options_dict[opt]) self.options_dict[opt] = converter(self.options_str_dict[opt]) self.option_class.handler.options_dict[opt] = self.options_dict[opt] else: print "Ignoring unknown option: %s" % opt person_id = self.options_dict['id'] self.person = self.database.get_person_from_gramps_id(person_id) id_list = [] for person_handle in self.database.get_person_handles(): person = self.database.get_person_from_handle(person_handle) id_list.append("%s\t%s" % ( person.get_gramps_id(), NameDisplay.displayer.display(person))) self.options_help['id'].append(id_list) self.options_help['id'].append(False) if self.options_dict.has_key('filter'): filter_num = self.options_dict['filter'] self.filters = self.option_class.get_report_filters(self.person) self.option_class.handler.set_filter_number(filter_num) filt_list = [ filt.get_name() for filt in self.filters ] cust_filt_list = [ filt2.get_name() for filt2 in CustomFilters.get_filters() ] filt_list.extend(cust_filt_list) self.options_help['filter'].append(filt_list) self.options_help['filter'].append(True)
def add_menu_options(self, menu): """ Add options to the menu for the place report. """ category_name = _("Report Options") # Reload filters to pick any new ones CustomFilters = None from Filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Place')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) places = PlaceListOption(_("Select places individually")) places.set_help(_("List of places to report on")) menu.add_option(category_name, "places", places) center = EnumeratedListOption(_("Center on"), "Event") center.set_items([("Event", _("Event")), ("Person", _("Person"))]) center.set_help(_("If report is event or person centered")) menu.add_option(category_name, "center", center) incpriv = BooleanOption(_("Include private data"), True) incpriv.set_help(_("Whether to include private data")) menu.add_option(category_name, "incpriv", incpriv)
def set(self, local_filters, default=""): self.store = gtk.ListStore(gobject.TYPE_STRING) self.set_model(self.store) cell = gtk.CellRendererText() self.pack_start(cell, True) self.add_attribute(cell, 'text', 0) self.map = {} active = 0 cnt = 0 for filt in local_filters: self.store.append(row=[filt.get_name()]) self.map[unicode(filt.get_name())] = filt if default != "" and default == filt.get_name(): active = cnt cnt += 1 #for filt in SystemFilters.get_filters(): #self.store.append(row=[filt.get_name()]) #self.map[unicode(filt.get_name())] = filt #if default != "" and default == filt.get_name(): #active = cnt #cnt += 1 for filt in CustomFilters.get_filters(): self.store.append(row=[filt.get_name()]) self.map[unicode(filt.get_name())] = filt if default != "" and default == filt.get_name(): active = cnt cnt += 1 if active: self.set_active(active) elif len(local_filters): self.set_active(2) #elif len(SystemFilters.get_filters()): #self.set_active(4 + len(local_filters)) elif len(CustomFilters.get_filters()): self.set_active(4 + len(local_filters)) else: self.set_active(0)
def get_person_filters(person, include_single=True): """ Return a list of filters that are relevant for the given person @param person: the person the filters should apply to. @type person: L{Person} @param include_single: include a filter to include the single person @type person: boolean """ from Filters import GenericFilter, Rules, CustomFilters from gen.display.name import displayer as name_displayer if person: name = name_displayer.display(person) gramps_id = person.get_gramps_id() else: # Do this in case of command line options query (show=filter) name = _("PERSON") gramps_id = '' if include_single: filt_id = GenericFilter() filt_id.set_name(name) filt_id.add_rule(Rules.Person.HasIdOf([gramps_id])) all = GenericFilter() all.set_name(_("Entire Database")) all.add_rule(Rules.Person.Everyone([])) des = GenericFilter() # feature request 2356: avoid genitive form des.set_name(_("Descendants of %s") % name) des.add_rule(Rules.Person.IsDescendantOf([gramps_id, 1])) df = GenericFilter() # feature request 2356: avoid genitive form df.set_name(_("Descendant Families of %s") % name) df.add_rule(Rules.Person.IsDescendantFamilyOf([gramps_id, 1])) ans = GenericFilter() # feature request 2356: avoid genitive form ans.set_name(_("Ancestors of %s") % name) ans.add_rule(Rules.Person.IsAncestorOf([gramps_id, 1])) com = GenericFilter() com.set_name(_("People with common ancestor with %s") % name) com.add_rule(Rules.Person.HasCommonAncestorWith([gramps_id])) if include_single: the_filters = [filt_id, all, des, df, ans, com] else: the_filters = [all, des, df, ans, com] the_filters.extend(CustomFilters.get_filters('Person')) return the_filters
def build_filter_model(space, local=[]): from Filters import CustomFilters model = gtk.ListStore(gobject.TYPE_STRING, object) if isinstance(space, basestring): flist = local + CustomFilters.get_filters(space) elif isinstance(space, (list, tuple)): flist = space else: return None for filt in flist: model.append(row=[filt.get_name(), filt]) return model
def __init__(self, local_filters=[], namespace="generic", default=""): gtk.ListStore.__init__(self, str) self.list_map = [] self.def_index = 0 cnt = 0 for filt in local_filters: name = filt.get_name() self.append(row=[name]) self.list_map.append(filt) if default != "" and default == name: self.def_index = cnt cnt += 1 for filt in CustomFilters.get_filters(namespace): name = _(filt.get_name()) self.append(row=[name]) self.list_map.append(filt) if default != "" and default == name: self.def_index = cnt cnt += 1
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book')) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book')) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year': dateinfo[0], 'name': rname } footer = StringOption(_('Footer'), footer_string) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None from Filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showperson = BooleanOption(_("Show persons"), True) showperson.set_help( _("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson)
def add_menu_options(self, menu): """ Add the options for this report """ category_name = _("Report Options") title = StringOption(_('book|Title'), _('Title of the Book') ) title.set_help(_("Title string for the book.")) menu.add_option(category_name, "title", title) subtitle = StringOption(_('Subtitle'), _('Subtitle of the Book') ) subtitle.set_help(_("Subtitle string for the book.")) menu.add_option(category_name, "subtitle", subtitle) dateinfo = time.localtime(time.time()) #rname = self.__db.get_researcher().get_name() rname = "researcher name" footer_string = _('Copyright %(year)d %(name)s') % { 'year' : dateinfo[0], 'name' : rname } footer = StringOption(_('Footer'), footer_string ) footer.set_help(_("Footer string for the page.")) menu.add_option(category_name, "footer", footer) # Reload filters to pick any new ones CustomFilters = None from Filters import CustomFilters, GenericFilter opt = FilterOption(_("Select using filter"), 0) opt.set_help(_("Select places using a filter")) filter_list = [] filter_list.append(GenericFilter()) filter_list.extend(CustomFilters.get_filters('Source')) opt.set_filters(filter_list) menu.add_option(category_name, "filter", opt) showperson = BooleanOption(_("Show persons"), True) showperson.set_help(_("Whether to show events and persons mentioned in the note")) menu.add_option(category_name, "showperson", showperson)