* 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> 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/_PersonSidebarFilter.py: Minor changes.
* src/Filters/SideBar/_FamilySidebarFilter.py: Add father, mother, * src/Filters/SideBar/_FamilySidebarFilter.py: Add father, mother,
and child search options. and child search options.

View File

@ -1,6 +1,6 @@
2006-08-05 Alex Roitman <shura@gramps-project.org> 2006-08-05 Alex Roitman <shura@gramps-project.org>
* POTFILES.in: Add new files. * POTFILES.in: Add new files.
2006-08-04 Alex Roitman <shura@gramps-project.org> 2006-08-04 Alex Roitman <shura@gramps-project.org>
* POTFILES.in: Unlist plugins that are not shipped. * POTFILES.in: Unlist plugins that are not shipped.
Add new files. 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/_SearchFatherName.py
src/Filters/Rules/Family/_SearchChildName.py src/Filters/Rules/Family/_SearchChildName.py
src/Filters/Rules/Family/_SearchMotherName.py src/Filters/Rules/Family/_SearchMotherName.py
src/Filters/Rules/Family/_MemberBase.py
# Filters.Rules.Event package # Filters.Rules.Event package
src/Filters/Rules/Event/_MatchesFilter.py src/Filters/Rules/Event/_MatchesFilter.py

View File

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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules import HasGrampsId 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 " description = _("Matches familis where child has a specified "
"GRAMPS ID") "GRAMPS ID")
category = _('Child filters') category = _('Child filters')
base_class = HasGrampsId
def apply(self,db,family): apply = child_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf 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 " description = _("Matches familis where child has a specified "
"(partial) name") "(partial) name")
category = _('Child filters') category = _('Child filters')
base_class = HasNameOf
def apply(self,db,family): apply = child_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules import HasGrampsId 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 " description = _("Matches familis whose father has a specified "
"GRAMPS ID") "GRAMPS ID")
category = _('Father filters') category = _('Father filters')
base_class = HasGrampsId
def apply(self,db,family): apply = father_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf 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 " description = _("Matches familis whose father has a specified "
"(partial) name") "(partial) name")
category = _('Father filters') category = _('Father filters')
base_class = HasNameOf
def apply(self,db,family): apply = father_base
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

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 Filters.Rules import HasGrampsId
from _MemberBase import mother_base
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
# #
@ -47,11 +48,5 @@ class MotherHasIdOf(HasGrampsId):
description = _("Matches familis whose mother has a specified " description = _("Matches familis whose mother has a specified "
"GRAMPS ID") "GRAMPS ID")
category = _('Mother filters') category = _('Mother filters')
base_class = HasGrampsId
def apply(self,db,family): apply = mother_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import HasNameOf 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 " description = _("Matches familis whose mother has a specified "
"(partial) name") "(partial) name")
category = _('Mother filters') category = _('Mother filters')
base_class = HasNameOf
def apply(self,db,family): apply = mother_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName 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 " description = _("Matches families where any child has a specified "
"(partial) name") "(partial) name")
category = _('Child filters') category = _('Child filters')
base_class = SearchName
def apply(self,db,family): apply = child_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName 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 " description = _("Matches families whose father has a specified "
"(partial) name") "(partial) name")
category = _('Father filters') category = _('Father filters')
base_class = SearchName
def apply(self,db,family): apply = father_base
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

View File

@ -33,6 +33,7 @@ from gettext import gettext as _
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from Filters.Rules.Person import SearchName 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 " description = _("Matches families whose mother has a specified "
"(partial) name") "(partial) name")
category = _('Mother filters') category = _('Mother filters')
base_class = SearchName
def apply(self,db,family): apply = mother_base
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