In .:
* 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:
		@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										57
									
								
								src/Filters/Rules/Family/_MemberBase.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								src/Filters/Rules/Family/_MemberBase.py
									
									
									
									
									
										Normal 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
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user