* src/Filters/Rules/Family/Makefile.am (pkgdata_PYTHON): Ship new file.
	* src/Filters/Rules/Family/_MemberBase.py: Add new module.
In po:



svn: r7136
This commit is contained in:
Alex Roitman 2006-08-06 00:24:58 +00:00
parent f29fb679f3
commit dd41a8a651
14 changed files with 92 additions and 73 deletions

View File

@ -1,4 +1,6 @@
2006-08-05 Alex Roitman <shura@gramps-project.org>
* src/Filters/Rules/Family/Makefile.am (pkgdata_PYTHON): Ship new file.
* src/Filters/Rules/Family/_MemberBase.py: Add new module.
* src/Filters/SideBar/_PersonSidebarFilter.py: Minor changes.
* src/Filters/SideBar/_FamilySidebarFilter.py: Add father, mother,
and child search options.

View File

@ -1,6 +1,6 @@
2006-08-05 Alex Roitman <shura@gramps-project.org>
* POTFILES.in: Add new files.
2006-08-04 Alex Roitman <shura@gramps-project.org>
* POTFILES.in: Unlist plugins that are not shipped.
Add new files.

View File

@ -506,6 +506,7 @@ src/Filters/Rules/Family/_ChildHasNameOf.py
src/Filters/Rules/Family/_SearchFatherName.py
src/Filters/Rules/Family/_SearchChildName.py
src/Filters/Rules/Family/_SearchMotherName.py
src/Filters/Rules/Family/_MemberBase.py
# Filters.Rules.Event package
src/Filters/Rules/Event/_MatchesFilter.py

View File

@ -20,9 +20,10 @@ pkgdata_PYTHON = \
_MotherHasIdOf.py\
_ChildHasNameOf.py\
_ChildHasIdOf.py\
_SearchFatherName\
_SearchMotherName\
_SearchChildName
_SearchFatherName.py\
_SearchMotherName.py\
_SearchChildName.py\
_MemberBase.py
pkgpyexecdir = @pkgpyexecdir@/Filters/Rules/Family

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules import HasGrampsId
from _MemberBase import child_base
#-------------------------------------------------------------------------
#
@ -47,10 +48,5 @@ class ChildHasIdOf(HasGrampsId):
description = _("Matches familis where child has a specified "
"GRAMPS ID")
category = _('Child filters')
def apply(self,db,family):
for child_ref in family.get_child_ref_list():
child = db.get_person_from_handle(child_ref.ref)
if HasGrampsId.apply(self,db,child):
return True
return False
base_class = HasGrampsId
apply = child_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf
from _MemberBase import child_base
#-------------------------------------------------------------------------
#
@ -46,10 +47,5 @@ class ChildHasNameOf(HasNameOf):
description = _("Matches familis where child has a specified "
"(partial) name")
category = _('Child filters')
def apply(self,db,family):
for child_ref in family.get_child_ref_list():
child = db.get_person_from_handle(child_ref.ref)
if HasNameOf.apply(self,db,child):
return True
return False
base_class = HasNameOf
apply = child_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules import HasGrampsId
from _MemberBase import father_base
#-------------------------------------------------------------------------
#
@ -47,11 +48,5 @@ class FatherHasIdOf(HasGrampsId):
description = _("Matches familis whose father has a specified "
"GRAMPS ID")
category = _('Father filters')
def apply(self,db,family):
father_handle = family.get_father_handle()
father = db.get_person_from_handle(father_handle)
if father:
return HasGrampsId.apply(self,db,father)
else:
return False
base_class = HasGrampsId
apply = father_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf
from _MemberBase import father_base
#-------------------------------------------------------------------------
#
@ -46,11 +47,5 @@ class FatherHasNameOf(HasNameOf):
description = _("Matches familis whose father has a specified "
"(partial) name")
category = _('Father filters')
def apply(self,db,family):
father_handle = family.get_father_handle()
father = db.get_person_from_handle(father_handle)
if father:
return HasNameOf.apply(self,db,father)
else:
return False
base_class = HasNameOf
apply = father_base

View File

@ -0,0 +1,57 @@
#
# 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$
"""
Set of wrappers for family filter rules based on personal rules.
Any rule that matches family based on personal rule applied
to father, mather, or any child, just needs to do two things:
1. Set the class attribute 'base_class' to the personal rule
2. Set apply method to be an appropriate wrapper below
Example:
in the class body, outside any method:
base_class = SearchName
apply = child_base
"""
def father_base(self,db,family):
father_handle = family.get_father_handle()
father = db.get_person_from_handle(father_handle)
if father:
return self.base_class.apply(self,db,father)
else:
return False
def mother_base(self,db,family):
mother_handle = family.get_mother_handle()
mother = db.get_person_from_handle(mother_handle)
if mother:
return self.base_class.apply(self,db,mother)
else:
return False
def child_base(self,db,family):
for child_ref in family.get_child_ref_list():
child = db.get_person_from_handle(child_ref.ref)
if self.base_class.apply(self,db,child):
return True
return False

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules import HasGrampsId
from _MemberBase import mother_base
#-------------------------------------------------------------------------
#
@ -47,11 +48,5 @@ class MotherHasIdOf(HasGrampsId):
description = _("Matches familis whose mother has a specified "
"GRAMPS ID")
category = _('Mother filters')
def apply(self,db,family):
mother_handle = family.get_mother_handle()
mother = db.get_person_from_handle(mother_handle)
if mother:
return HasGrampsId.apply(self,db,mother)
else:
return False
base_class = HasGrampsId
apply = mother_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf
from _MemberBase import mother_base
#-------------------------------------------------------------------------
#
@ -46,11 +47,5 @@ class MotherHasNameOf(HasNameOf):
description = _("Matches familis whose mother has a specified "
"(partial) name")
category = _('Mother filters')
def apply(self,db,family):
mother_handle = family.get_mother_handle()
mother = db.get_person_from_handle(mother_handle)
if mother:
return HasNameOf.apply(self,db,mother)
else:
return False
base_class = HasNameOf
apply = mother_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName
from _MemberBase import child_base
#-------------------------------------------------------------------------
#
@ -46,10 +47,5 @@ class SearchChildName(SearchName):
description = _("Matches families where any child has a specified "
"(partial) name")
category = _('Child filters')
def apply(self,db,family):
for child_ref in family.get_child_ref_list():
child = db.get_person_from_handle(child_ref.ref)
if SearchName.apply(self,db,child):
return True
return False
base_class = SearchName
apply = child_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName
from _MemberBase import father_base
#-------------------------------------------------------------------------
#
@ -46,11 +47,5 @@ class SearchFatherName(SearchName):
description = _("Matches families whose father has a specified "
"(partial) name")
category = _('Father filters')
def apply(self,db,family):
father_handle = family.get_father_handle()
father = db.get_person_from_handle(father_handle)
if father:
return SearchName.apply(self,db,father)
else:
return False
base_class = SearchName
apply = father_base

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName
from _MemberBase import mother_base
#-------------------------------------------------------------------------
#
@ -46,11 +47,5 @@ class SearchMotherName(SearchName):
description = _("Matches families whose mother has a specified "
"(partial) name")
category = _('Mother filters')
def apply(self,db,family):
mother_handle = family.get_mother_handle()
mother = db.get_person_from_handle(mother_handle)
if mother:
return SearchName.apply(self,db,mother)
else:
return False
base_class = SearchName
apply = mother_base