From a16bc2de9c53cad1c6111213962d4f732461206e Mon Sep 17 00:00:00 2001 From: Nick Hall Date: Tue, 27 Jan 2015 22:55:01 +0000 Subject: [PATCH] 7860: Add new place HasTitle rule --- gramps/gen/filters/rules/place/__init__.py | 4 +- gramps/gen/filters/rules/place/_hastitle.py | 57 +++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 gramps/gen/filters/rules/place/_hastitle.py diff --git a/gramps/gen/filters/rules/place/__init__.py b/gramps/gen/filters/rules/place/__init__.py index c82a1f97e..f769926a5 100644 --- a/gramps/gen/filters/rules/place/__init__.py +++ b/gramps/gen/filters/rules/place/__init__.py @@ -44,6 +44,7 @@ from ._matcheseventfilter import MatchesEventFilter from ._matchessourceconfidence import MatchesSourceConfidence from ._changedsince import ChangedSince from ._hastag import HasTag +from ._hastitle import HasTitle editor_rule_list = [ AllPlaces, @@ -64,5 +65,6 @@ editor_rule_list = [ InLatLonNeighborhood, MatchesEventFilter, ChangedSince, - HasTag + HasTag, + HasTitle ] diff --git a/gramps/gen/filters/rules/place/_hastitle.py b/gramps/gen/filters/rules/place/_hastitle.py new file mode 100644 index 000000000..a0b12c364 --- /dev/null +++ b/gramps/gen/filters/rules/place/_hastitle.py @@ -0,0 +1,57 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2002-2006 Donald N. Allingham +# Copyright (C) 2015 Nick Hall +# +# 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 +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +#------------------------------------------------------------------------- +# +# Standard Python modules +# +#------------------------------------------------------------------------- +from ....const import GRAMPS_LOCALE as glocale +_ = glocale.translation.sgettext + +#------------------------------------------------------------------------- +# +# Gramps modules +# +#------------------------------------------------------------------------- +from .. import Rule +from ....display.place import displayer + +#------------------------------------------------------------------------- +# +# HasTitle +# +#------------------------------------------------------------------------- +class HasTitle(Rule): + """ + Rule that checks for a place with a title + """ + + labels = [_('Title:')] + name = _('Places matching a title') + description = _('Matches places with a particular title') + category = _('General filters') + allow_regex = True + + def apply(self, db, place): + if not self.match_substring(0, displayer.display(db, place)): + return False + return True