* src/Filters/Rules/Person/_HasBirth.py,

* src/Filters/Rules/Person/_HasDeath.py,
* src/Filters/Rules/Person/_HasEvent.py: Only match filter if event role = primary

* src/RelLib/_Person.py (_remove_handle_references): Correct removing of person handle reference; (get_sourcref_child_list) Add self.person_ref_list because they link to persons and sources

* src/DataViews/_PersonView.py (delete_person_response): Remove person from other persons as well because of PersonRef.


svn: r7607
This commit is contained in:
Martin Hawlisch
2006-11-10 21:27:08 +00:00
parent 36aef3c505
commit 592310d256
6 changed files with 34 additions and 4 deletions

View File

@@ -33,7 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
import DateHandler
from RelLib import EventType
from RelLib import EventType,EventRoleType
from Filters.Rules._Rule import Rule
from Filters.Rules._RuleUtils import loose_date_cmp
@@ -59,6 +59,9 @@ class HasBirth(Rule):
def apply(self,db,person):
for event_ref in person.get_event_ref_list():
if event_ref.role != EventRoleType.PRIMARY:
# Only match primaries, no witnesses
continue
event = db.get_event_from_handle(event_ref.ref)
if event.get_type() != EventType.BIRTH:
# No match: wrong type

View File

@@ -33,7 +33,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
import DateHandler
from RelLib import EventType
from RelLib import EventType,EventRoleType
from Filters.Rules._Rule import Rule
from Filters.Rules._RuleUtils import loose_date_cmp
@@ -59,6 +59,9 @@ class HasDeath(Rule):
def apply(self,db,person):
for event_ref in person.get_event_ref_list():
if event_ref.role != EventRoleType.PRIMARY:
# Only match primaries, no witnesses
continue
event = db.get_event_from_handle(event_ref.ref)
if event.get_type() != EventType.DEATH:
# No match: wrong type

View File

@@ -32,6 +32,7 @@ from gettext import gettext as _
# GRAMPS modules
#
#-------------------------------------------------------------------------
from RelLib import EventRoleType
from Filters.Rules._HasEventBase import HasEventBase
#-------------------------------------------------------------------------
@@ -53,6 +54,9 @@ class HasEvent(HasEventBase):
for event_ref in person.get_event_ref_list():
if not event_ref:
continue
if event_ref.role != EventRoleType.PRIMARY:
# Only match primaries, no witnesses
continue
event = db.get_event_from_handle(event_ref.ref)
if HasEventBase.apply(self,db,event):
return True