def on_filters_changed(self, name_space): if name_space == 'Person': all_filter = GenericFilter() all_filter.set_name(_("None")) all_filter.add_rule(rules.person.Everyone([])) self.generic.set_model(build_filter_model('Person', [all_filter])) self.generic.set_active(0)
def on_filters_changed(self, name_space): if name_space == "Person": all_filter = GenericFilter() all_filter.set_name(_("Entire Database")) all_filter.add_rule(rules.person.Everyone([])) self.filter_model = build_filter_model("Person", [all_filter]) self.filters.set_model(self.filter_model) self.filters.set_active(0)
def build_model(self, namespace): """ Build a model for the combo box selector. """ from gi.repository import Gtk from gi.repository import GObject from gramps.gen.filters import CustomFilters if namespace == "person": # Populate the Person Filter entire_db = GenericFilter() entire_db.set_name(_("Include all selected people")) the_filters = [entire_db] if self.person: the_filters += self.__define_person_filters() the_filters.extend(CustomFilters.get_filters('Person')) model = Gtk.ListStore(GObject.TYPE_STRING, object) for item in the_filters: model.append(row=[item.get_name(), item]) elif namespace == "note": # Populate the Notes Filter entire_db = GenericFilter() entire_db.set_name(_("Include all selected notes")) notes_filters = [entire_db] notes_filters.extend(CustomFilters.get_filters('Note')) model = Gtk.ListStore(GObject.TYPE_STRING, object) for item in notes_filters: model.append(row=[item.get_name(), item]) elif namespace == "living": model = Gtk.ListStore(GObject.TYPE_STRING, int) row = 0 for item in [ _('Include all selected people'), _('Replace given names of living people'), _('Replace complete name of living people'), _('Do not include living people'), ]: model.append(row=[item, row]) row += 1 elif namespace == "reference": model = Gtk.ListStore(GObject.TYPE_STRING, int) row = 0 for item in [ _('Include all selected records'), _('Do not include records not linked to a selected person' ), ]: model.append(row=[item, row]) row += 1 return model
def build_model(self, namespace): """ Build a model for the combo box selector. """ from gi.repository import Gtk from gi.repository import GObject from gramps.gen.filters import CustomFilters if namespace == "person": # Populate the Person Filter entire_db = GenericFilter() entire_db.set_name(_("Include all selected people")) the_filters = [entire_db] if self.person: the_filters += self.__define_person_filters() the_filters.extend(CustomFilters.get_filters('Person')) model = Gtk.ListStore(GObject.TYPE_STRING, object) for item in the_filters: model.append(row=[item.get_name(), item]) elif namespace == "note": # Populate the Notes Filter entire_db = GenericFilter() entire_db.set_name(_("Include all selected notes")) notes_filters = [entire_db] notes_filters.extend(CustomFilters.get_filters('Note')) model = Gtk.ListStore(GObject.TYPE_STRING, object) for item in notes_filters: model.append(row=[item.get_name(), item]) elif namespace == "living": model = Gtk.ListStore(GObject.TYPE_STRING, int) row = 0 for item in [_('Include all selected people'), _('Replace given names of living people'), _('Replace complete name of living people'), _('Do not include living people'), ]: model.append(row=[item, row]) row += 1 elif namespace == "reference": model = Gtk.ListStore(GObject.TYPE_STRING, int) row = 0 for item in [ _('Include all selected records'), _('Do not include records not linked to a selected person'),]: model.append(row=[item, row]) row += 1 return model
def __define_person_filters(self): """Add person filters if the active person is defined.""" name = name_displayer.display(self.person) gramps_id = self.person.get_gramps_id() 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])) return [des, df, ans, com]