2006-12-02 Don Allingham <don@gramps-project.org>
* src/DataViews/_RelationView.py: disable buttons when person is inactive * src/plugins/Check.py: remove duplicate children in a family svn: r7752
This commit is contained in:
parent
0f445d124a
commit
a2fd59a7fd
@ -1,3 +1,7 @@
|
|||||||
|
2006-12-02 Don Allingham <don@gramps-project.org>
|
||||||
|
* src/DataViews/_RelationView.py: disable buttons when person is inactive
|
||||||
|
* src/plugins/Check.py: remove duplicate children in a family
|
||||||
|
|
||||||
2006-12-02 Alex Roitman <shura@gramps-project.org>
|
2006-12-02 Alex Roitman <shura@gramps-project.org>
|
||||||
* src/Filters/SideBar/*SidebarFilter.py: Busy cursor when filtering.
|
* src/Filters/SideBar/*SidebarFilter.py: Busy cursor when filtering.
|
||||||
* src/plugins/Check.py (check_repo_references): Add new check.
|
* src/plugins/Check.py (check_repo_references): Add new check.
|
||||||
|
@ -336,6 +336,8 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
if self.child:
|
if self.child:
|
||||||
for old_child in self.vbox.get_children():
|
for old_child in self.vbox.get_children():
|
||||||
self.vbox.remove(old_child)
|
self.vbox.remove(old_child)
|
||||||
|
for old_child in self.header.get_children():
|
||||||
|
self.header.remove(old_child)
|
||||||
self.child = None
|
self.child = None
|
||||||
self.dbstate.db.connect('family-update', self.redraw)
|
self.dbstate.db.connect('family-update', self.redraw)
|
||||||
self.dbstate.db.connect('family-add', self.redraw)
|
self.dbstate.db.connect('family-add', self.redraw)
|
||||||
@ -373,11 +375,16 @@ class RelationshipView(PageView.PersonNavView):
|
|||||||
|
|
||||||
for old_child in self.vbox.get_children():
|
for old_child in self.vbox.get_children():
|
||||||
self.vbox.remove(old_child)
|
self.vbox.remove(old_child)
|
||||||
|
for old_child in self.header.get_children():
|
||||||
|
self.header.remove(old_child)
|
||||||
|
|
||||||
person = self.dbstate.db.get_person_from_handle(obj)
|
person = self.dbstate.db.get_person_from_handle(obj)
|
||||||
if not person:
|
if not person:
|
||||||
|
self.family_action.set_sensitive(False)
|
||||||
|
self.order_action.set_sensitive(False)
|
||||||
self.redrawing = False
|
self.redrawing = False
|
||||||
return
|
return
|
||||||
|
self.family_action.set_sensitive(True)
|
||||||
|
|
||||||
self.write_title(person)
|
self.write_title(person)
|
||||||
|
|
||||||
|
@ -29,7 +29,11 @@
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
import os
|
import os
|
||||||
import cStringIO
|
import cStringIO
|
||||||
import sets
|
try:
|
||||||
|
set()
|
||||||
|
except:
|
||||||
|
from sets import Set as set
|
||||||
|
|
||||||
from gettext import gettext as _
|
from gettext import gettext as _
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
@ -98,7 +102,7 @@ def _table_low_level(db,table):
|
|||||||
Low level repair for a given db table.
|
Low level repair for a given db table.
|
||||||
"""
|
"""
|
||||||
handle_list = table.keys()
|
handle_list = table.keys()
|
||||||
dup_handles = sets.Set(
|
dup_handles = set(
|
||||||
[ handle for handle in handle_list if handle_list.count(handle) > 1 ]
|
[ handle for handle in handle_list if handle_list.count(handle) > 1 ]
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -290,7 +294,7 @@ class CheckIntegrity:
|
|||||||
value = self.db.person_map[handle]
|
value = self.db.person_map[handle]
|
||||||
p = RelLib.Person(value)
|
p = RelLib.Person(value)
|
||||||
splist = p.get_family_handle_list()
|
splist = p.get_family_handle_list()
|
||||||
if len(splist) != len(sets.Set(splist)):
|
if len(splist) != len(set(splist)):
|
||||||
new_list = []
|
new_list = []
|
||||||
for value in splist:
|
for value in splist:
|
||||||
if value not in new_list:
|
if value not in new_list:
|
||||||
@ -388,11 +392,34 @@ class CheckIntegrity:
|
|||||||
family.remove_child_ref(child_ref)
|
family.remove_child_ref(child_ref)
|
||||||
self.db.commit_family(family,self.trans)
|
self.db.commit_family(family,self.trans)
|
||||||
self.broken_links.append((child_handle,family_handle))
|
self.broken_links.append((child_handle,family_handle))
|
||||||
|
|
||||||
|
new_ref_list = []
|
||||||
|
new_ref_handles = []
|
||||||
|
replace = False
|
||||||
|
for child_ref in family.get_child_ref_list():
|
||||||
|
child_handle = child_ref.ref
|
||||||
|
if child_handle in new_ref_handles:
|
||||||
|
replace = True
|
||||||
|
else:
|
||||||
|
new_ref_list.append(child_ref)
|
||||||
|
new_ref_handles.append(child_handle)
|
||||||
|
|
||||||
|
if replace:
|
||||||
|
family.set_child_ref_list(new_ref_list)
|
||||||
|
self.db.commit_family(family,self.trans)
|
||||||
|
|
||||||
self.progress.step()
|
self.progress.step()
|
||||||
|
|
||||||
# Check persons membership in referenced families
|
# Check persons membership in referenced families
|
||||||
for person_handle in self.db.get_person_handles():
|
for person_handle in self.db.get_person_handles():
|
||||||
person = self.db.get_person_from_handle(person_handle)
|
person = self.db.get_person_from_handle(person_handle)
|
||||||
|
|
||||||
|
phandle_list = person.get_parent_family_handle_list()
|
||||||
|
new_list = list(set(phandle_list))
|
||||||
|
if len(phandle_list) != len(new_list):
|
||||||
|
person.set_parent_family_handle_list(new_list)
|
||||||
|
self.db.commit_person(person,self.trans)
|
||||||
|
|
||||||
for par_family_handle in person.get_parent_family_handle_list():
|
for par_family_handle in person.get_parent_family_handle_list():
|
||||||
family = self.db.get_family_from_handle(par_family_handle)
|
family = self.db.get_family_from_handle(par_family_handle)
|
||||||
if not family:
|
if not family:
|
||||||
|
Loading…
Reference in New Issue
Block a user