diff --git a/po/POTFILES.in b/po/POTFILES.in index 8d95c85bf..6fc879582 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -213,6 +213,7 @@ src/gen/filters/rules/source/_regexpidof.py src/gen/filters/rules/citation/_allcitations.py src/gen/filters/rules/citation/_changedsince.py src/gen/filters/rules/citation/_citationprivate.py +src/gen/filters/rules/citation/_hascitation.py src/gen/filters/rules/citation/_hasgallery.py src/gen/filters/rules/citation/_hasidof.py src/gen/filters/rules/citation/_hasnote.py diff --git a/src/gen/filters/rules/citation/Makefile.am b/src/gen/filters/rules/citation/Makefile.am index 4ceccfa7d..4a423023d 100644 --- a/src/gen/filters/rules/citation/Makefile.am +++ b/src/gen/filters/rules/citation/Makefile.am @@ -8,6 +8,7 @@ pkgpython_PYTHON = \ _allcitations.py \ _changedsince.py \ _citationprivate.py \ + _hascitation.py \ _hasgallery.py \ _hasidof.py \ _hasnote.py \ diff --git a/src/gen/filters/rules/citation/__init__.py b/src/gen/filters/rules/citation/__init__.py index f7393241e..5b572dd8d 100644 --- a/src/gen/filters/rules/citation/__init__.py +++ b/src/gen/filters/rules/citation/__init__.py @@ -26,8 +26,7 @@ Package providing filter rules for GRAMPS. """ -from gen.filters.rules._hascitationbase import HasCitationBase as HasCitation - +from _hascitation import HasCitation from _allcitations import AllCitations from _changedsince import ChangedSince from _citationprivate import CitationPrivate diff --git a/src/gen/filters/rules/citation/_hascitation.py b/src/gen/filters/rules/citation/_hascitation.py new file mode 100644 index 000000000..85895ff87 --- /dev/null +++ b/src/gen/filters/rules/citation/_hascitation.py @@ -0,0 +1,75 @@ +# +# Gramps - a GTK+/GNOME based genealogy program +# +# Copyright (C) 2002-2006 Donald N. Allingham +# +# 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +# + +# $Id: _hascitation.py 20271 2012-08-27 09:39:02Z bmcage $ + +""" +Filter rule to match citation data. +""" +#------------------------------------------------------------------------- +# +# Standard Python modules +# +#------------------------------------------------------------------------- +from gen.ggettext import gettext as _ + +#------------------------------------------------------------------------- +# +# GRAMPS modules +# +#------------------------------------------------------------------------- +from gen.filters.rules import Rule +import gen.datehandler + +#------------------------------------------------------------------------- +# +# HasCitation +# +#------------------------------------------------------------------------- +class HasCitation(Rule): + """Rule that checks for a citations with a particular value""" + + labels = [ _('Volume/Page:'), + _('Date:'), + _('Confidence level:')] + name = _('Citations matching parameters') + description = _("Matches citations with particular parameters") + + def prepare(self, db): + self.date = None + try: + if self.list[1]: + self.date = gen.datehandler.parser.parse(self.list[1]) + except: + pass + + def apply(self, dbase, citation): + if not self.match_substring(0, citation.get_page()): + return False + + if self.date: + if not citation.get_date_object().match(self.date): + return False + + if self.list[2]: + if citation.get_confidence_level() < int(self.list[2]): + return False + + return True