Fixed merging

svn: r3167
This commit is contained in:
Don Allingham 2004-05-13 23:48:40 +00:00
parent 2bd66d6b4c
commit da607cf048
6 changed files with 19 additions and 29 deletions

View File

@ -68,7 +68,6 @@ class MergePeople:
self.altname = self.glade.get_widget("altname")
self.altbirth = self.glade.get_widget("altbirth")
self.altdeath = self.glade.get_widget("altdeath")
self.family_list = db.get_family_id_map().values()
self.glade.signal_autoconnect({
"on_merge_clicked" : self.on_merge_clicked,
@ -355,12 +354,13 @@ class MergePeople:
def find_family(self,family):
if self.p1.get_gender() == RelLib.Person.male:
mother = family.get_mother_id()
father = self.p1
father = self.p1.get_id()
else:
father = family.get_father_id()
mother = self.p1
mother = self.p1.get_id()
for myfamily in self.family_list:
for myfamily_id in self.db.get_family_keys():
myfamily = self.db.find_family_from_id(myfamily_id)
if myfamily.get_father_id() == father and myfamily.get_mother_id() == mother:
return myfamily
return None
@ -389,7 +389,7 @@ class MergePeople:
#
if tgt_family in self.p1.get_family_id_list():
if tgt_family.get_father_id() != None and \
src_family in tgt_family.get_father_id().get_family_id_list():
src_family in tgt_father.get_family_id_list():
tgt_family.get_father_id().remove_family_id(src_family)
if tgt_family.get_mother_id() != None and \
src_family in tgt_family.get_mother_id().get_family_id_list():

View File

@ -2663,23 +2663,20 @@ class GrampsDB:
if len(self.translist) == 0:
return
transaction = self.translist.pop()
transaction.display()
subitems = transaction.get_data()
subitems.reverse()
for (key, gid, data) in subitems:
if key == PERSON_KEY:
if data == None:
print "removing PERSON",gid
del self.person_map[gid]
else:
print "altering PERSON",gid
self.person_map.put(gid,data)
elif key == FAMILY_KEY:
if data == None:
print "removing FAMILY",gid
del self.family_map[gid]
else:
print "altering FAMILY",gid
self.family_map.put(gid,data)
elif key == SOURCE_KEY:
if data == None:
@ -2688,10 +2685,8 @@ class GrampsDB:
self.source_map.put(gid,data)
elif key == EVENT_KEY:
if data == None:
print "removing EVENT",gid
del self.event_map[gid]
else:
print "altering EVENT",gid
self.event_map.put(gid,data)
elif key == PLACE_KEY:
if data == None:

View File

@ -355,6 +355,7 @@ class Gramps:
self.change_active_person(p)
self.place_view.change_db(self.db)
self.people_view.change_db(self.db)
self.people_view.apply_filter()
self.source_view.change_db(self.db)
self.media_view.change_db(self.db)
self.family_view.load_family()

View File

@ -70,9 +70,6 @@ def runTool(database,active_person,callback,parent=None):
if errs:
checker.report(0)
except:
database.add_transaction(trans)
database.undo()
import DisplayTrace
DisplayTrace.DisplayTrace()

View File

@ -48,7 +48,6 @@ import os
# GNOME libraries
#
#-------------------------------------------------------------------------
from gnome.ui import *
import gtk
import gtk.glade

View File

@ -54,7 +54,7 @@ from gettext import gettext as _
#
#-------------------------------------------------------------------------
_title_re = re.compile(r"^([A-Za-z][A-Za-z]+\.)\s+(.*)$")
_nick_re = re.compile(r"(.+)[(\"](.*)[)\"]")
_nick_re = re.compile(r"(.+)\s*[(\"](.*)[)\"]")
#-------------------------------------------------------------------------
#
@ -65,12 +65,8 @@ _nick_re = re.compile(r"(.+)[(\"](.*)[)\"]")
#-------------------------------------------------------------------------
def runTool(database,active_person,callback,parent=None):
try:
trans = database.start_transaction()
PatchNames(database,callback,parent,trans)
database.add_transaction(trans)
PatchNames(database,callback,parent)
except:
database.add_transaction(trans)
database.undo()
import DisplayTrace
DisplayTrace.DisplayTrace()
@ -81,11 +77,11 @@ def runTool(database,active_person,callback,parent=None):
#-------------------------------------------------------------------------
class PatchNames:
def __init__(self,db,callback,parent,trans):
def __init__(self,db,callback,parent):
self.cb = callback
self.db = db
self.parent = parent
self.trans = trans
self.trans = db.start_transaction()
self.win_key = self
self.child_windows = {}
self.title_list = []
@ -111,7 +107,6 @@ class PatchNames:
else:
OkDialog(_('No modifications made'),
_("No titles or nicknames were found"))
self.cb(0)
def toggled(self,cell,path_string):
path = tuple([int (i) for i in path_string.split(':')])
@ -212,8 +207,8 @@ class PatchNames:
if val:
p = self.db.get_person(grp[0])
name = p.get_primary_name()
name.set_first_name(grp[1])
p.set_nick_name(grp[2])
name.set_first_name(grp[1].strip())
p.set_nick_name(grp[2].strip())
self.db.commit_person(p,self.trans)
for grp in self.title_list:
@ -222,10 +217,11 @@ class PatchNames:
if val:
p = self.db.find_person_from_id(grp[0])
name = p.get_primary_name()
name.set_first_name(grp[2])
name.set_title(grp[1])
name.set_first_name(grp[2].strip())
name.set_title(grp[1].strip())
self.db.commit_person(p,self.trans)
self.db.add_transaction(self.trans)
self.close(obj)
self.cb(1)
@ -240,5 +236,7 @@ register_tool(
runTool,
_("Extract information from names"),
category=_("Database Processing"),
description=_("Searches the entire database and attempts to extract titles and nicknames that may be embedded in a person's given name field.")
description=_("Searches the entire database and attempts to "
"extract titles and nicknames that may be embedded "
"in a person's given name field.")
)