2
# Gramps - a GTK+/GNOME based genealogy program
4
# Copyright (C) 2010 Benny Malengier
5
# Copyright (C) 2011 Tim G L Lyons
7
# This program is free software; you can redistribute it and/or modify
8
# it under the terms of the GNU General Public License as published by
9
# the Free Software Foundation; either version 2 of the License, or
10
# (at your option) any later version.
12
# This program is distributed in the hope that it will be useful,
13
# but WITHOUT ANY WARRANTY; without even the implied warranty of
14
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
# GNU General Public License for more details.
17
# You should have received a copy of the GNU General Public License
18
# along with this program; if not, write to the Free Software
19
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
# $Id: _MatchesSourceFilterBase.py 18548 2011-12-04 17:09:17Z kulath $
24
#-------------------------------------------------------------------------
26
# Standard Python modules
28
#-------------------------------------------------------------------------
29
from gen.ggettext import gettext as _
31
#-------------------------------------------------------------------------
35
#-------------------------------------------------------------------------
36
from Filters.Rules import MatchesFilterBase
38
#-------------------------------------------------------------------------
42
#-------------------------------------------------------------------------
43
class MatchesSourceFilterBase(MatchesFilterBase):
45
Rule that checks against another filter.
48
labels = [_('Source filter name:')]
49
name = _('Objects with source matching the <source filter>')
50
description = _("Matches objects with sources that match the "
51
"specified source filter name")
52
category = _('Citation/source filters')
54
# we want to have this filter show source filters
57
def prepare(self, db):
58
MatchesFilterBase.prepare(self, db)
59
self.MSF_filt = self.find_filter()
61
def apply(self, db, object):
62
if self.MSF_filt is None :
65
for citation_handle in object.get_citation_list():
66
citation = db.get_citation_from_handle(citation_handle)
67
sourcehandle = citation.get_reference_handle()
68
if self.MSF_filt.check(db, sourcehandle):