* src/Merge/_MergePerson.py: fixed check_for_child function to handle childrefs
svn: r7713
This commit is contained in:
parent
2c617e4326
commit
be83b6f8ba
@ -1,4 +1,5 @@
|
|||||||
2006-11-26 Don Allingham <don@gramps-project.org>
|
2006-11-26 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/Merge/_MergePerson.py: fixed check_for_child function to handle childrefs
|
||||||
* po/gramps.pot: updated
|
* po/gramps.pot: updated
|
||||||
|
|
||||||
2006-11-26 Alex Roitman <shura@gramps-project.org>
|
2006-11-26 Alex Roitman <shura@gramps-project.org>
|
||||||
|
@ -83,7 +83,6 @@ class PersonCompare(ManagedWindow.ManagedWindow):
|
|||||||
GrampsDisplay.help('adv-merge-people')
|
GrampsDisplay.help('adv-merge-people')
|
||||||
|
|
||||||
def merge(self,obj):
|
def merge(self,obj):
|
||||||
|
|
||||||
if check_for_spouse(self.p1,self.p2):
|
if check_for_spouse(self.p1,self.p2):
|
||||||
QuestionDialog.ErrorDialog(
|
QuestionDialog.ErrorDialog(
|
||||||
_("Cannot merge people"),
|
_("Cannot merge people"),
|
||||||
@ -245,10 +244,10 @@ def check_for_spouse(p1, p2):
|
|||||||
def check_for_child(p1, p2):
|
def check_for_child(p1, p2):
|
||||||
|
|
||||||
fs1 = sets.Set(p1.get_family_handle_list())
|
fs1 = sets.Set(p1.get_family_handle_list())
|
||||||
fp1 = sets.Set(map(lambda x: x[0], p1.get_parent_family_handle_list()))
|
fp1 = sets.Set(p1.get_parent_family_handle_list())
|
||||||
|
|
||||||
fs2 = sets.Set(p2.get_family_handle_list())
|
fs2 = sets.Set(p2.get_family_handle_list())
|
||||||
fp2 = sets.Set(map(lambda x: x[0], p2.get_parent_family_handle_list()))
|
fp2 = sets.Set(p2.get_parent_family_handle_list())
|
||||||
|
|
||||||
return len(fs1.intersection(fp2)) != 0 or len(fs2.intersection(fp1))
|
return len(fs1.intersection(fp2)) != 0 or len(fs2.intersection(fp1))
|
||||||
|
|
||||||
@ -261,6 +260,21 @@ class MergePeopleUI(ManagedWindow.ManagedWindow):
|
|||||||
|
|
||||||
def __init__(self, dbstate, uistate, person1, person2, update=None):
|
def __init__(self, dbstate, uistate, person1, person2, update=None):
|
||||||
|
|
||||||
|
if check_for_spouse(person1, person2):
|
||||||
|
QuestionDialog.ErrorDialog(
|
||||||
|
_("Cannot merge people"),
|
||||||
|
_("Spouses cannot be merged. To merge these people, "
|
||||||
|
"you must first break the relationship between them."))
|
||||||
|
return
|
||||||
|
|
||||||
|
if check_for_child(person1, person2):
|
||||||
|
QuestionDialog.ErrorDialog(
|
||||||
|
_("Cannot merge people"),
|
||||||
|
_("A parent and child cannot be merged. To merge these "
|
||||||
|
"people, you must first break the relationship between "
|
||||||
|
"them."))
|
||||||
|
return
|
||||||
|
|
||||||
ManagedWindow.ManagedWindow.__init__(self,uistate,[],self.__class__)
|
ManagedWindow.ManagedWindow.__init__(self,uistate,[],self.__class__)
|
||||||
|
|
||||||
glade = gtk.glade.XML(const.merge_glade, 'merge_people')
|
glade = gtk.glade.XML(const.merge_glade, 'merge_people')
|
||||||
@ -369,6 +383,7 @@ class MergePeople:
|
|||||||
Finally, the merged person is delete from the database and the
|
Finally, the merged person is delete from the database and the
|
||||||
entire transaction is committed.
|
entire transaction is committed.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.debug_person(self.p1, "P1")
|
self.debug_person(self.p1, "P1")
|
||||||
self.debug_person(self.p2, "P2")
|
self.debug_person(self.p2, "P2")
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user