Fixed merging
svn: r3167
This commit is contained in:
parent
2bd66d6b4c
commit
da607cf048
@ -68,7 +68,6 @@ class MergePeople:
|
|||||||
self.altname = self.glade.get_widget("altname")
|
self.altname = self.glade.get_widget("altname")
|
||||||
self.altbirth = self.glade.get_widget("altbirth")
|
self.altbirth = self.glade.get_widget("altbirth")
|
||||||
self.altdeath = self.glade.get_widget("altdeath")
|
self.altdeath = self.glade.get_widget("altdeath")
|
||||||
self.family_list = db.get_family_id_map().values()
|
|
||||||
|
|
||||||
self.glade.signal_autoconnect({
|
self.glade.signal_autoconnect({
|
||||||
"on_merge_clicked" : self.on_merge_clicked,
|
"on_merge_clicked" : self.on_merge_clicked,
|
||||||
@ -355,12 +354,13 @@ class MergePeople:
|
|||||||
def find_family(self,family):
|
def find_family(self,family):
|
||||||
if self.p1.get_gender() == RelLib.Person.male:
|
if self.p1.get_gender() == RelLib.Person.male:
|
||||||
mother = family.get_mother_id()
|
mother = family.get_mother_id()
|
||||||
father = self.p1
|
father = self.p1.get_id()
|
||||||
else:
|
else:
|
||||||
father = family.get_father_id()
|
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:
|
if myfamily.get_father_id() == father and myfamily.get_mother_id() == mother:
|
||||||
return myfamily
|
return myfamily
|
||||||
return None
|
return None
|
||||||
@ -389,7 +389,7 @@ class MergePeople:
|
|||||||
#
|
#
|
||||||
if tgt_family in self.p1.get_family_id_list():
|
if tgt_family in self.p1.get_family_id_list():
|
||||||
if tgt_family.get_father_id() != None and \
|
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)
|
tgt_family.get_father_id().remove_family_id(src_family)
|
||||||
if tgt_family.get_mother_id() != None and \
|
if tgt_family.get_mother_id() != None and \
|
||||||
src_family in tgt_family.get_mother_id().get_family_id_list():
|
src_family in tgt_family.get_mother_id().get_family_id_list():
|
||||||
|
@ -2663,23 +2663,20 @@ class GrampsDB:
|
|||||||
if len(self.translist) == 0:
|
if len(self.translist) == 0:
|
||||||
return
|
return
|
||||||
transaction = self.translist.pop()
|
transaction = self.translist.pop()
|
||||||
|
transaction.display()
|
||||||
|
|
||||||
subitems = transaction.get_data()
|
subitems = transaction.get_data()
|
||||||
subitems.reverse()
|
subitems.reverse()
|
||||||
for (key, gid, data) in subitems:
|
for (key, gid, data) in subitems:
|
||||||
if key == PERSON_KEY:
|
if key == PERSON_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
print "removing PERSON",gid
|
|
||||||
del self.person_map[gid]
|
del self.person_map[gid]
|
||||||
else:
|
else:
|
||||||
print "altering PERSON",gid
|
|
||||||
self.person_map.put(gid,data)
|
self.person_map.put(gid,data)
|
||||||
elif key == FAMILY_KEY:
|
elif key == FAMILY_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
print "removing FAMILY",gid
|
|
||||||
del self.family_map[gid]
|
del self.family_map[gid]
|
||||||
else:
|
else:
|
||||||
print "altering FAMILY",gid
|
|
||||||
self.family_map.put(gid,data)
|
self.family_map.put(gid,data)
|
||||||
elif key == SOURCE_KEY:
|
elif key == SOURCE_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
@ -2688,10 +2685,8 @@ class GrampsDB:
|
|||||||
self.source_map.put(gid,data)
|
self.source_map.put(gid,data)
|
||||||
elif key == EVENT_KEY:
|
elif key == EVENT_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
print "removing EVENT",gid
|
|
||||||
del self.event_map[gid]
|
del self.event_map[gid]
|
||||||
else:
|
else:
|
||||||
print "altering EVENT",gid
|
|
||||||
self.event_map.put(gid,data)
|
self.event_map.put(gid,data)
|
||||||
elif key == PLACE_KEY:
|
elif key == PLACE_KEY:
|
||||||
if data == None:
|
if data == None:
|
||||||
|
@ -355,6 +355,7 @@ class Gramps:
|
|||||||
self.change_active_person(p)
|
self.change_active_person(p)
|
||||||
self.place_view.change_db(self.db)
|
self.place_view.change_db(self.db)
|
||||||
self.people_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.source_view.change_db(self.db)
|
||||||
self.media_view.change_db(self.db)
|
self.media_view.change_db(self.db)
|
||||||
self.family_view.load_family()
|
self.family_view.load_family()
|
||||||
|
@ -70,9 +70,6 @@ def runTool(database,active_person,callback,parent=None):
|
|||||||
if errs:
|
if errs:
|
||||||
checker.report(0)
|
checker.report(0)
|
||||||
except:
|
except:
|
||||||
database.add_transaction(trans)
|
|
||||||
database.undo()
|
|
||||||
|
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
|
@ -48,7 +48,6 @@ import os
|
|||||||
# GNOME libraries
|
# GNOME libraries
|
||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
from gnome.ui import *
|
|
||||||
import gtk
|
import gtk
|
||||||
import gtk.glade
|
import gtk.glade
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ from gettext import gettext as _
|
|||||||
#
|
#
|
||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
_title_re = re.compile(r"^([A-Za-z][A-Za-z]+\.)\s+(.*)$")
|
_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):
|
def runTool(database,active_person,callback,parent=None):
|
||||||
try:
|
try:
|
||||||
trans = database.start_transaction()
|
PatchNames(database,callback,parent)
|
||||||
PatchNames(database,callback,parent,trans)
|
|
||||||
database.add_transaction(trans)
|
|
||||||
except:
|
except:
|
||||||
database.add_transaction(trans)
|
|
||||||
database.undo()
|
|
||||||
import DisplayTrace
|
import DisplayTrace
|
||||||
DisplayTrace.DisplayTrace()
|
DisplayTrace.DisplayTrace()
|
||||||
|
|
||||||
@ -81,11 +77,11 @@ def runTool(database,active_person,callback,parent=None):
|
|||||||
#-------------------------------------------------------------------------
|
#-------------------------------------------------------------------------
|
||||||
class PatchNames:
|
class PatchNames:
|
||||||
|
|
||||||
def __init__(self,db,callback,parent,trans):
|
def __init__(self,db,callback,parent):
|
||||||
self.cb = callback
|
self.cb = callback
|
||||||
self.db = db
|
self.db = db
|
||||||
self.parent = parent
|
self.parent = parent
|
||||||
self.trans = trans
|
self.trans = db.start_transaction()
|
||||||
self.win_key = self
|
self.win_key = self
|
||||||
self.child_windows = {}
|
self.child_windows = {}
|
||||||
self.title_list = []
|
self.title_list = []
|
||||||
@ -111,7 +107,6 @@ class PatchNames:
|
|||||||
else:
|
else:
|
||||||
OkDialog(_('No modifications made'),
|
OkDialog(_('No modifications made'),
|
||||||
_("No titles or nicknames were found"))
|
_("No titles or nicknames were found"))
|
||||||
self.cb(0)
|
|
||||||
|
|
||||||
def toggled(self,cell,path_string):
|
def toggled(self,cell,path_string):
|
||||||
path = tuple([int (i) for i in path_string.split(':')])
|
path = tuple([int (i) for i in path_string.split(':')])
|
||||||
@ -212,8 +207,8 @@ class PatchNames:
|
|||||||
if val:
|
if val:
|
||||||
p = self.db.get_person(grp[0])
|
p = self.db.get_person(grp[0])
|
||||||
name = p.get_primary_name()
|
name = p.get_primary_name()
|
||||||
name.set_first_name(grp[1])
|
name.set_first_name(grp[1].strip())
|
||||||
p.set_nick_name(grp[2])
|
p.set_nick_name(grp[2].strip())
|
||||||
self.db.commit_person(p,self.trans)
|
self.db.commit_person(p,self.trans)
|
||||||
|
|
||||||
for grp in self.title_list:
|
for grp in self.title_list:
|
||||||
@ -222,10 +217,11 @@ class PatchNames:
|
|||||||
if val:
|
if val:
|
||||||
p = self.db.find_person_from_id(grp[0])
|
p = self.db.find_person_from_id(grp[0])
|
||||||
name = p.get_primary_name()
|
name = p.get_primary_name()
|
||||||
name.set_first_name(grp[2])
|
name.set_first_name(grp[2].strip())
|
||||||
name.set_title(grp[1])
|
name.set_title(grp[1].strip())
|
||||||
self.db.commit_person(p,self.trans)
|
self.db.commit_person(p,self.trans)
|
||||||
|
|
||||||
|
self.db.add_transaction(self.trans)
|
||||||
self.close(obj)
|
self.close(obj)
|
||||||
self.cb(1)
|
self.cb(1)
|
||||||
|
|
||||||
@ -240,5 +236,7 @@ register_tool(
|
|||||||
runTool,
|
runTool,
|
||||||
_("Extract information from names"),
|
_("Extract information from names"),
|
||||||
category=_("Database Processing"),
|
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.")
|
||||||
)
|
)
|
||||||
|
Loading…
Reference in New Issue
Block a user