update
svn: r7021
This commit is contained in:
parent
ad5130dbf6
commit
a89718f726
@ -3,7 +3,15 @@
|
||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules/Family
|
||||
|
||||
pkgdata_PYTHON = \
|
||||
__init__.py
|
||||
_AllFamilies.py\
|
||||
_FamilyPrivate.py\
|
||||
_HasEvent.py\
|
||||
_HasIdOf.py\
|
||||
_HasNoteMatchingSubstringOf.py\
|
||||
_HasNoteRegexp.py\
|
||||
_HasRelType.py\
|
||||
__init__.py\
|
||||
_RegExpIdOf.py
|
||||
|
||||
pkgpyexecdir = @pkgpyexecdir@/Filters/Rules/Family
|
||||
pkgpythondir = @pkgpythondir@/Filters/Rules/Family
|
||||
|
44
src/Filters/Rules/Family/_FamilyPrivate.py
Normal file
44
src/Filters/Rules/Family/_FamilyPrivate.py
Normal file
@ -0,0 +1,44 @@
|
||||
#
|
||||
# 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: _FamilyPrivate.py 6529 2006-05-03 06:29:07Z rshura $
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from Filters.Rules._IsPrivate import IsPrivate
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
# "Family marked private"
|
||||
#-------------------------------------------------------------------------
|
||||
class FamilyPrivate(IsPrivate):
|
||||
"""Family marked private"""
|
||||
|
||||
name = _('Families marked private')
|
||||
description = _("Matches families that are indicated as private")
|
51
src/Filters/Rules/Family/_HasEvent.py
Normal file
51
src/Filters/Rules/Family/_HasEvent.py
Normal file
@ -0,0 +1,51 @@
|
||||
#
|
||||
# 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: _HasEvent.py 6635 2006-05-13 03:53:06Z dallingham $
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from Filters.Rules._HasEventBase import HasEventBase
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# HasEvent
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class HasEvent(HasEventBase):
|
||||
"""Rule that checks for a person with a particular value"""
|
||||
|
||||
labels = [ _('Family event:'),
|
||||
_('Date:'),
|
||||
_('Place:'),
|
||||
_('Description:') ]
|
||||
name = _('Families with the <event>')
|
||||
description = _("Matches families with an event of a particular value")
|
||||
|
@ -32,6 +32,8 @@ from _HasIdOf import HasIdOf
|
||||
from _RegExpIdOf import RegExpIdOf
|
||||
from _HasNoteRegexp import HasNoteRegexp
|
||||
from _HasNoteMatchingSubstringOf import HasNoteMatchingSubstringOf
|
||||
from _FamilyPrivate import FamilyPrivate
|
||||
from _HasEvent import HasEvent
|
||||
|
||||
editor_rule_list = [
|
||||
AllFamilies,
|
||||
@ -40,4 +42,6 @@ editor_rule_list = [
|
||||
RegExpIdOf,
|
||||
HasNoteRegexp,
|
||||
HasNoteMatchingSubstringOf,
|
||||
FamilyPrivate,
|
||||
HasEvent,
|
||||
]
|
||||
|
@ -5,13 +5,18 @@ SUBDIRS = Person Family Event Place Source Media Repository
|
||||
pkgdatadir = $(datadir)/@PACKAGE@/Filters/Rules
|
||||
|
||||
pkgdata_PYTHON = \
|
||||
_Everything.py \
|
||||
_HasTextMatchingRegexpOf.py \
|
||||
_HasTextMatchingSubstringOf.py \
|
||||
_IsPrivate.py \
|
||||
_Rule.py \
|
||||
_RuleUtils.py \
|
||||
__init__.py
|
||||
_Everything.py\
|
||||
_HasEventBase.py\
|
||||
_HasGrampsId.py\
|
||||
_HasNoteRegexBase.py\
|
||||
_HasNoteSubstrBase.py\
|
||||
_HasTextMatchingRegexpOf.py\
|
||||
_HasTextMatchingSubstringOf.py\
|
||||
__init__.py\
|
||||
_IsPrivate.py\
|
||||
_RegExpIdBase.py\
|
||||
_Rule.py\
|
||||
_RuleUtils.py
|
||||
|
||||
pkgpyexecdir = @pkgpyexecdir@/Filters/Rules
|
||||
pkgpythondir = @pkgpythondir@/Filters/Rules
|
||||
|
@ -32,16 +32,14 @@ from gettext import gettext as _
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import DateHandler
|
||||
from Filters.Rules._Rule import Rule
|
||||
from Filters.Rules._RuleUtils import date_cmp
|
||||
from Filters.Rules._HasEventBase import HasEventBase
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# HasEvent
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class HasEvent(Rule):
|
||||
class HasEvent(HasEventBase):
|
||||
"""Rule that checks for a person with a particular value"""
|
||||
|
||||
labels = [ _('Personal event:'),
|
||||
@ -50,40 +48,4 @@ class HasEvent(Rule):
|
||||
_('Description:') ]
|
||||
name = _('People with the personal <event>')
|
||||
description = _("Matches people with a personal event of a particular value")
|
||||
category = _('Event filters')
|
||||
|
||||
def prepare(self,db):
|
||||
self.date = None
|
||||
if self.list[0]:
|
||||
self.etype = self.list[0]
|
||||
else:
|
||||
self.etype = None
|
||||
try:
|
||||
if self.list[1]:
|
||||
self.date = DateHandler.parser.parse(self.list[1])
|
||||
except: pass
|
||||
|
||||
def apply(self,db,person):
|
||||
for event_ref in person.get_event_ref_list():
|
||||
if not event_ref:
|
||||
continue
|
||||
event = db.get_event_from_handle(event_ref.ref)
|
||||
val = True
|
||||
if self.etype and event.get_type() != self.etype:
|
||||
val = False
|
||||
if self.list[3] and event.get_description().upper().find(
|
||||
self.list[3].upper())==-1:
|
||||
val = False
|
||||
if self.date:
|
||||
if date_cmp(self.date,event.get_date_object()):
|
||||
val = False
|
||||
if self.list[2]:
|
||||
pl_id = event.get_place_handle()
|
||||
if pl_id:
|
||||
pl = db.get_place_from_handle(pl_id)
|
||||
pn = pl.get_title()
|
||||
if pn.upper().find(self.list[2].upper()) == -1:
|
||||
val = False
|
||||
if val:
|
||||
return True
|
||||
return False
|
||||
|
89
src/Filters/Rules/_HasEventBase.py
Normal file
89
src/Filters/Rules/_HasEventBase.py
Normal file
@ -0,0 +1,89 @@
|
||||
#
|
||||
# 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: _HasEvent.py 6635 2006-05-13 03:53:06Z dallingham $
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# Standard Python modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
from gettext import gettext as _
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# GRAMPS modules
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
import DateHandler
|
||||
from Filters.Rules._Rule import Rule
|
||||
from Filters.Rules._RuleUtils import date_cmp
|
||||
|
||||
#-------------------------------------------------------------------------
|
||||
#
|
||||
# HasEvent
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
class HasEventBase(Rule):
|
||||
"""Rule that checks for a person with a particular value"""
|
||||
|
||||
labels = [ _('Event:'),
|
||||
_('Date:'),
|
||||
_('Place:'),
|
||||
_('Description:') ]
|
||||
name = _('Objects with the <event>')
|
||||
description = _("Matches objects with an event of a particular value")
|
||||
category = _('Event filters')
|
||||
|
||||
def prepare(self,db):
|
||||
self.date = None
|
||||
if self.list[0]:
|
||||
self.etype = self.list[0]
|
||||
else:
|
||||
self.etype = None
|
||||
try:
|
||||
if self.list[1]:
|
||||
self.date = DateHandler.parser.parse(self.list[1])
|
||||
except: pass
|
||||
|
||||
def apply(self,db,person):
|
||||
for event_ref in person.get_event_ref_list():
|
||||
if not event_ref:
|
||||
continue
|
||||
event = db.get_event_from_handle(event_ref.ref)
|
||||
val = True
|
||||
if self.etype and event.get_type() != self.etype:
|
||||
val = False
|
||||
if self.list[3] and event.get_description().upper().find(
|
||||
self.list[3].upper())==-1:
|
||||
val = False
|
||||
if self.date:
|
||||
if date_cmp(self.date,event.get_date_object()):
|
||||
val = False
|
||||
if self.list[2]:
|
||||
pl_id = event.get_place_handle()
|
||||
if pl_id:
|
||||
pl = db.get_place_from_handle(pl_id)
|
||||
pn = pl.get_title()
|
||||
if pn.upper().find(self.list[2].upper()) == -1:
|
||||
val = False
|
||||
if val:
|
||||
return True
|
||||
return False
|
@ -46,3 +46,6 @@ class HasGrampsId(Rule):
|
||||
name = _('Object with <Id>')
|
||||
description = _("Matches objects with a specified GRAMPS ID")
|
||||
category = _('General filters')
|
||||
|
||||
def apply(self,db,obj):
|
||||
return obj.gramps_id.find(self.list[0]) !=-1
|
||||
|
@ -26,8 +26,8 @@ import GrampsWidgets
|
||||
import RelLib
|
||||
|
||||
from _SidebarFilter import SidebarFilter
|
||||
import Filters.Rules
|
||||
from Filters import GenericFamilyFilter, build_filter_model, Rules
|
||||
from Filters.Rules.Family import *
|
||||
|
||||
class FamilySidebarFilter(SidebarFilter):
|
||||
|
||||
@ -61,7 +61,7 @@ class FamilySidebarFilter(SidebarFilter):
|
||||
|
||||
all = GenericFamilyFilter()
|
||||
all.set_name(_("None"))
|
||||
all.add_rule(Rules.Person.Everyone([]))
|
||||
all.add_rule(Rules.Family.AllFamilies([]))
|
||||
|
||||
self.generic = gtk.ComboBox()
|
||||
cell = gtk.CellRendererText()
|
||||
@ -103,7 +103,7 @@ class FamilySidebarFilter(SidebarFilter):
|
||||
if regex:
|
||||
rule = RegExpIdOf([gid])
|
||||
else:
|
||||
rule = MatchIdOf([gid])
|
||||
rule = HasIdOf([gid])
|
||||
generic_filter.add_rule(rule)
|
||||
|
||||
etype = self.filter_event.get_type()
|
||||
|
Loading…
Reference in New Issue
Block a user