1# 2# Gramps - a GTK+/GNOME based genealogy program 3# 4# Copyright (C) 2013 Nick Hall 5# 6# This program is free software; you can redistribute it and/or modify 7# it under the terms of the GNU General Public License as published by 8# the Free Software Foundation; either version 2 of the License, or 9# (at your option) any later version. 10# 11# This program is distributed in the hope that it will be useful, 12# but WITHOUT ANY WARRANTY; without even the implied warranty of 13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14# GNU General Public License for more details. 15# 16# You should have received a copy of the GNU General Public License 17# along with this program; if not, write to the Free Software 18# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 19# 20 21#------------------------------------------------------------------------- 22# 23# Standard Python modules 24# 25#------------------------------------------------------------------------- 26 27#------------------------------------------------------------------------- 28# 29# Gramps modules 30# 31#------------------------------------------------------------------------- 32from .. import Rule 33from ....lib.childreftype import ChildRefType 34from ....const import GRAMPS_LOCALE as glocale 35_ = glocale.translation.gettext 36 37#------------------------------------------------------------------------- 38# 39# HasTwins 40# 41#------------------------------------------------------------------------- 42class HasTwins(Rule): 43 """Rule that checks for a family with twins""" 44 45 name = _('Families with twins') 46 description = _("Matches families with twins") 47 category = _('Child filters') 48 49 def apply(self, db, family): 50 date_list = [] 51 for childref in family.get_child_ref_list(): 52 if int(childref.get_mother_relation()) == ChildRefType.BIRTH: 53 child = db.get_person_from_handle(childref.ref) 54 birthref = child.get_birth_ref() 55 if birthref: 56 birth = db.get_event_from_handle(birthref.ref) 57 sortval = birth.get_date_object().get_sort_value() 58 if sortval != 0: 59 if sortval in date_list: 60 return True 61 else: 62 date_list.append(sortval) 63 return False 64