* src/AutoComp.py: remove double display of data
* src/FamilyView.py: remove unused check * src/GrampsBSDDB.py: search by gramps_id * src/GrampsDbBase.py: search by gramps_id, unicode/str conversions * src/Marriage.py: handle gramps_id editing * src/ReadXML.py: fix handle/gramps_id on import * src/plugins/RelCalc.py: display date instead of event handle * src/Relationship.py: family handles working * src/PeopleModel.py: comment out unused functions * src/PeopleModel.py: simplify model interface * src/AddSpouse.py: get_family_from_handle fixes * src/EditPerson.py: get_family_from_handle fixes * src/EditSource.py: get_family_from_handle fixes * src/GraphLayout.py: get_family_from_handle fixes * src/ImageSelect.py: get_family_from_handle fixes * src/MediaView.py: get_family_from_handle fixes * src/MergeData.py: get_family_from_handle fixes * src/PlaceView.py: get_family_from_handle fixes * src/ReadXML.py: get_family_from_handle fixes * src/RelLib.py: get_family_from_handle fixes * src/Relationship.py: get_family_from_handle fixes * src/SelectChild.py: get_family_from_handle fixes * src/SourceView.py: get_family_from_handle fixes * src/SubstKeywords.py: get_family_from_handle fixes * src/WriteXML.py: get_family_from_handle fixes * src/gramps_main.py: get_family_from_handle fixes svn: r3446
This commit is contained in:
parent
9b427a6f64
commit
e50e33cba6
@ -1,21 +1,30 @@
|
|||||||
2004-08-19 Don Allingham <dallingham@users.sourceforge.net>
|
2004-08-19 Don Allingham <dallingham@users.sourceforge.net>
|
||||||
* PeopleModel.py: simplify model interface
|
* src/AutoComp.py: remove double display of data
|
||||||
* AddSpouse.py: get_family_from_handle fixes
|
* src/FamilyView.py: remove unused check
|
||||||
* EditPerson.py: get_family_from_handle fixes
|
* src/GrampsBSDDB.py: search by gramps_id
|
||||||
* EditSource.py: get_family_from_handle fixes
|
* src/GrampsDbBase.py: search by gramps_id, unicode/str conversions
|
||||||
* GraphLayout.py: get_family_from_handle fixes
|
* src/Marriage.py: handle gramps_id editing
|
||||||
* ImageSelect.py: get_family_from_handle fixes
|
* src/ReadXML.py: fix handle/gramps_id on import
|
||||||
* MediaView.py: get_family_from_handle fixes
|
* src/plugins/RelCalc.py: display date instead of event handle
|
||||||
* MergeData.py: get_family_from_handle fixes
|
* src/Relationship.py: family handles working
|
||||||
* PlaceView.py: get_family_from_handle fixes
|
* src/PeopleModel.py: comment out unused functions
|
||||||
* ReadXML.py: get_family_from_handle fixes
|
* src/PeopleModel.py: simplify model interface
|
||||||
* RelLib.py: get_family_from_handle fixes
|
* src/AddSpouse.py: get_family_from_handle fixes
|
||||||
* Relationship.py: get_family_from_handle fixes
|
* src/EditPerson.py: get_family_from_handle fixes
|
||||||
* SelectChild.py: get_family_from_handle fixes
|
* src/EditSource.py: get_family_from_handle fixes
|
||||||
* SourceView.py: get_family_from_handle fixes
|
* src/GraphLayout.py: get_family_from_handle fixes
|
||||||
* SubstKeywords.py: get_family_from_handle fixes
|
* src/ImageSelect.py: get_family_from_handle fixes
|
||||||
* WriteXML.py: get_family_from_handle fixes
|
* src/MediaView.py: get_family_from_handle fixes
|
||||||
* gramps_main.py: get_family_from_handle fixes
|
* src/MergeData.py: get_family_from_handle fixes
|
||||||
|
* src/PlaceView.py: get_family_from_handle fixes
|
||||||
|
* src/ReadXML.py: get_family_from_handle fixes
|
||||||
|
* src/RelLib.py: get_family_from_handle fixes
|
||||||
|
* src/Relationship.py: get_family_from_handle fixes
|
||||||
|
* src/SelectChild.py: get_family_from_handle fixes
|
||||||
|
* src/SourceView.py: get_family_from_handle fixes
|
||||||
|
* src/SubstKeywords.py: get_family_from_handle fixes
|
||||||
|
* src/WriteXML.py: get_family_from_handle fixes
|
||||||
|
* src/gramps_main.py: get_family_from_handle fixes
|
||||||
* plugins/AncestorChart.py: get_family_from_handle fixes
|
* plugins/AncestorChart.py: get_family_from_handle fixes
|
||||||
* plugins/AncestorChart2.py: get_family_from_handle fixes
|
* plugins/AncestorChart2.py: get_family_from_handle fixes
|
||||||
* plugins/AncestorReport.py: get_family_from_handle fixes
|
* plugins/AncestorReport.py: get_family_from_handle fixes
|
||||||
|
@ -44,7 +44,6 @@ def fill_combo(combo,data_list):
|
|||||||
|
|
||||||
def fill_entry(entry,data_list):
|
def fill_entry(entry,data_list):
|
||||||
store = gtk.ListStore(gobject.TYPE_STRING)
|
store = gtk.ListStore(gobject.TYPE_STRING)
|
||||||
|
|
||||||
for data in data_list:
|
for data in data_list:
|
||||||
store.append(row=[data])
|
store.append(row=[data])
|
||||||
|
|
||||||
@ -55,15 +54,13 @@ def fill_entry(entry,data_list):
|
|||||||
entry.set_completion(completion)
|
entry.set_completion(completion)
|
||||||
|
|
||||||
def fill_option_text(combobox,data):
|
def fill_option_text(combobox,data):
|
||||||
store = gtk.ListStore(gobject.TYPE_STRING)
|
store = gtk.ListStore(gobject.TYPE_STRING)
|
||||||
cell = gtk.CellRendererText()
|
cell = gtk.CellRendererText()
|
||||||
combobox.pack_start(cell,gtk.TRUE)
|
for item in data:
|
||||||
combobox.add_attribute(cell,'text',0)
|
store.append(row=[item])
|
||||||
for item in data:
|
combobox.set_model(store)
|
||||||
store.append(row=[item])
|
combobox.set_active(0)
|
||||||
combobox.set_model(store)
|
|
||||||
combobox.set_active(0)
|
|
||||||
|
|
||||||
def get_option(combobox):
|
def get_option(combobox):
|
||||||
store = combobox.get_model()
|
store = combobox.get_model()
|
||||||
return store.get_value(combobox.get_active_iter(),0)
|
return store.get_value(combobox.get_active_iter(),0)
|
||||||
|
@ -907,8 +907,6 @@ class FamilyView:
|
|||||||
flist = {}
|
flist = {}
|
||||||
|
|
||||||
for f in splist:
|
for f in splist:
|
||||||
if not f:
|
|
||||||
continue
|
|
||||||
fm = self.parent.db.get_family_from_handle(f)
|
fm = self.parent.db.get_family_from_handle(f)
|
||||||
|
|
||||||
if fm.get_father_handle() == self.person.get_handle():
|
if fm.get_father_handle() == self.person.get_handle():
|
||||||
|
@ -32,6 +32,9 @@ def find_surname(key,data):
|
|||||||
def find_idmap(key,data):
|
def find_idmap(key,data):
|
||||||
return str(data[1])
|
return str(data[1])
|
||||||
|
|
||||||
|
def find_fidmap(key,data):
|
||||||
|
return str(data[1])
|
||||||
|
|
||||||
def find_eventname(key,data):
|
def find_eventname(key,data):
|
||||||
return str(data[1])
|
return str(data[1])
|
||||||
|
|
||||||
@ -76,11 +79,16 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
self.id_trans.set_flags(db.DB_DUP)
|
self.id_trans.set_flags(db.DB_DUP)
|
||||||
self.id_trans.open(name, "idtrans", db.DB_HASH, flags=db.DB_CREATE)
|
self.id_trans.open(name, "idtrans", db.DB_HASH, flags=db.DB_CREATE)
|
||||||
|
|
||||||
|
self.fid_trans = db.DB(self.env)
|
||||||
|
self.fid_trans.set_flags(db.DB_DUP)
|
||||||
|
self.fid_trans.open(name, "fidtrans", db.DB_HASH, flags=db.DB_CREATE)
|
||||||
|
|
||||||
self.eventnames = db.DB(self.env)
|
self.eventnames = db.DB(self.env)
|
||||||
self.eventnames.set_flags(db.DB_DUP)
|
self.eventnames.set_flags(db.DB_DUP)
|
||||||
self.eventnames.open(name, "eventnames", db.DB_HASH, flags=db.DB_CREATE)
|
self.eventnames.open(name, "eventnames", db.DB_HASH, flags=db.DB_CREATE)
|
||||||
self.person_map.associate(self.surnames, find_surname, db.DB_CREATE)
|
self.person_map.associate(self.surnames, find_surname, db.DB_CREATE)
|
||||||
self.person_map.associate(self.id_trans, find_idmap, db.DB_CREATE)
|
self.person_map.associate(self.id_trans, find_idmap, db.DB_CREATE)
|
||||||
|
self.person_map.associate(self.fid_trans, find_fidmap, db.DB_CREATE)
|
||||||
self.event_map.associate(self.eventnames, find_eventname, db.DB_CREATE)
|
self.event_map.associate(self.eventnames, find_eventname, db.DB_CREATE)
|
||||||
|
|
||||||
self.undodb = db.DB()
|
self.undodb = db.DB()
|
||||||
@ -106,6 +114,7 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
self.surnames.close()
|
self.surnames.close()
|
||||||
self.eventnames.close()
|
self.eventnames.close()
|
||||||
self.id_trans.close()
|
self.id_trans.close()
|
||||||
|
self.fid_trans.close()
|
||||||
self.env.close()
|
self.env.close()
|
||||||
self.undodb.close()
|
self.undodb.close()
|
||||||
|
|
||||||
@ -167,3 +176,26 @@ class GrampsBSDDB(GrampsDbBase):
|
|||||||
transaction.add(EVENT_KEY,handle,old_data)
|
transaction.add(EVENT_KEY,handle,old_data)
|
||||||
self.event_map.delete(str(handle))
|
self.event_map.delete(str(handle))
|
||||||
|
|
||||||
|
def get_person_from_gramps_id(self,val):
|
||||||
|
"""finds a Person in the database from the passed gramps' ID.
|
||||||
|
If no such Person exists, a new Person is added to the database."""
|
||||||
|
|
||||||
|
data = self.id_trans.get(str(val))
|
||||||
|
if data:
|
||||||
|
person = Person()
|
||||||
|
person.unserialize(cPickle.loads(data))
|
||||||
|
return person
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_family_from_gramps_id(self,val):
|
||||||
|
"""finds a Person in the database from the passed gramps' ID.
|
||||||
|
If no such Person exists, a new Person is added to the database."""
|
||||||
|
|
||||||
|
data = self.fid_trans.get(str(val))
|
||||||
|
if data:
|
||||||
|
family = Family()
|
||||||
|
family.unserialize(cPickle.loads(data))
|
||||||
|
return family
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
@ -106,14 +106,14 @@ class GrampsDbBase:
|
|||||||
Opens the specified database. The method needs to be overridden
|
Opens the specified database. The method needs to be overridden
|
||||||
in the derived class.
|
in the derived class.
|
||||||
"""
|
"""
|
||||||
assert(0,"Needs to be overridden in the derived class")
|
assert(False,"Needs to be overridden in the derived class")
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
"""
|
"""
|
||||||
Closes the specified database. The method needs to be overridden
|
Closes the specified database. The method needs to be overridden
|
||||||
in the derived class.
|
in the derived class.
|
||||||
"""
|
"""
|
||||||
assert(0,"Needs to be overridden in the derived class")
|
assert(False,"Needs to be overridden in the derived class")
|
||||||
|
|
||||||
def is_open(self):
|
def is_open(self):
|
||||||
"""
|
"""
|
||||||
@ -126,7 +126,7 @@ class GrampsDbBase:
|
|||||||
Commits the specified Person to the database, storing the changes
|
Commits the specified Person to the database, storing the changes
|
||||||
as part of the transaction.
|
as part of the transaction.
|
||||||
"""
|
"""
|
||||||
handle = person.get_handle()
|
handle = str(person.get_handle())
|
||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.person_map.get(handle)
|
old_data = self.person_map.get(handle)
|
||||||
transaction.add(PERSON_KEY,handle,old_data)
|
transaction.add(PERSON_KEY,handle,old_data)
|
||||||
@ -141,7 +141,7 @@ class GrampsDbBase:
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.media_map.get(handle)
|
old_data = self.media_map.get(handle)
|
||||||
transaction.add(MEDIA_KEY,handle,old_data)
|
transaction.add(MEDIA_KEY,handle,old_data)
|
||||||
self.media_map[str(obj.get_handle())] = obj.serialize()
|
self.media_map[handle] = obj.serialize()
|
||||||
|
|
||||||
def commit_source(self,source,transaction):
|
def commit_source(self,source,transaction):
|
||||||
"""
|
"""
|
||||||
@ -152,7 +152,7 @@ class GrampsDbBase:
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.source_map.get(handle)
|
old_data = self.source_map.get(handle)
|
||||||
transaction.add(SOURCE_KEY,handle,old_data)
|
transaction.add(SOURCE_KEY,handle,old_data)
|
||||||
self.source_map[str(source.get_handle())] = source.serialize()
|
self.source_map[handle] = source.serialize()
|
||||||
|
|
||||||
def commit_place(self,place,transaction):
|
def commit_place(self,place,transaction):
|
||||||
"""
|
"""
|
||||||
@ -163,7 +163,7 @@ class GrampsDbBase:
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.place_map.get(handle)
|
old_data = self.place_map.get(handle)
|
||||||
transaction.add(PLACE_KEY,handle,old_data)
|
transaction.add(PLACE_KEY,handle,old_data)
|
||||||
self.place_map[str(place.get_handle())] = place.serialize()
|
self.place_map[handle] = place.serialize()
|
||||||
|
|
||||||
def commit_event(self,event,transaction):
|
def commit_event(self,event,transaction):
|
||||||
"""
|
"""
|
||||||
@ -174,7 +174,7 @@ class GrampsDbBase:
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.event_map.get(handle)
|
old_data = self.event_map.get(handle)
|
||||||
transaction.add(EVENT_KEY,handle,old_data)
|
transaction.add(EVENT_KEY,handle,old_data)
|
||||||
self.event_map[str(event.get_handle())] = event.serialize()
|
self.event_map[handle] = event.serialize()
|
||||||
|
|
||||||
def commit_family(self,family,transaction):
|
def commit_family(self,family,transaction):
|
||||||
"""
|
"""
|
||||||
@ -185,7 +185,7 @@ class GrampsDbBase:
|
|||||||
if transaction != None:
|
if transaction != None:
|
||||||
old_data = self.family_map.get(handle)
|
old_data = self.family_map.get(handle)
|
||||||
transaction.add(FAMILY_KEY,handle,old_data)
|
transaction.add(FAMILY_KEY,handle,old_data)
|
||||||
self.family_map[str(family.get_handle())] = family.serialize()
|
self.family_map[handle] = family.serialize()
|
||||||
|
|
||||||
def find_next_person_gramps_id(self):
|
def find_next_person_gramps_id(self):
|
||||||
"""
|
"""
|
||||||
@ -263,7 +263,7 @@ class GrampsDbBase:
|
|||||||
"""finds a Person in the database from the passed gramps' ID.
|
"""finds a Person in the database from the passed gramps' ID.
|
||||||
If no such Person exists, a new Person is added to the database."""
|
If no such Person exists, a new Person is added to the database."""
|
||||||
|
|
||||||
data = self.person_map.get(val)
|
data = self.person_map.get(str(val))
|
||||||
if data:
|
if data:
|
||||||
person = Person()
|
person = Person()
|
||||||
person.unserialize(data)
|
person.unserialize(data)
|
||||||
@ -336,7 +336,7 @@ class GrampsDbBase:
|
|||||||
person.set_handle(val)
|
person.set_handle(val)
|
||||||
if transaction != None:
|
if transaction != None:
|
||||||
transaction.add(PERSON_KEY, val, None)
|
transaction.add(PERSON_KEY, val, None)
|
||||||
self.person_map[val] = person.serialize()
|
self.person_map[str(val)] = person.serialize()
|
||||||
self.genderStats.count_person (person, self)
|
self.genderStats.count_person (person, self)
|
||||||
return person
|
return person
|
||||||
|
|
||||||
@ -390,7 +390,7 @@ class GrampsDbBase:
|
|||||||
data = self.place_map.get(str(handle))
|
data = self.place_map.get(str(handle))
|
||||||
place = Place()
|
place = Place()
|
||||||
if not data:
|
if not data:
|
||||||
place.handle = handle
|
place.set_handle(handle)
|
||||||
if transaction != None:
|
if transaction != None:
|
||||||
transaction.add(PLACE_KEY,handle,None)
|
transaction.add(PLACE_KEY,handle,None)
|
||||||
self.place_map[str(handle)] = place.serialize()
|
self.place_map[str(handle)] = place.serialize()
|
||||||
@ -408,13 +408,37 @@ class GrampsDbBase:
|
|||||||
if data:
|
if data:
|
||||||
family.unserialize(data)
|
family.unserialize(data)
|
||||||
else:
|
else:
|
||||||
family.handle = val
|
family.set_handle(val)
|
||||||
if transaction:
|
if transaction:
|
||||||
transaction.add(FAMILY_KEY,val,None)
|
transaction.add(FAMILY_KEY,val,None)
|
||||||
self.family_map[str(val)] = family.serialize()
|
self.family_map[str(val)] = family.serialize()
|
||||||
self.fmap_index = self.fmap_index + 1
|
self.fmap_index = self.fmap_index + 1
|
||||||
return family
|
return family
|
||||||
|
|
||||||
|
def get_person_from_gramps_id(self,val):
|
||||||
|
"""
|
||||||
|
Finds a Person in the database from the passed GRAMPS ID.
|
||||||
|
If no such Person exists, None is returned.
|
||||||
|
|
||||||
|
Needs to be overridden by the derrived class.
|
||||||
|
"""
|
||||||
|
data = self.id_trans.get(str(val))
|
||||||
|
if data:
|
||||||
|
person = Person()
|
||||||
|
person.unserialize(cPickle.loads(data))
|
||||||
|
return person
|
||||||
|
else:
|
||||||
|
return None
|
||||||
|
|
||||||
|
def get_family_from_gramps_id(self,val):
|
||||||
|
"""
|
||||||
|
Finds a Family in the database from the passed GRAMPS ID.
|
||||||
|
If no such Family exists, None is returned.
|
||||||
|
|
||||||
|
Needs to be overridden by the derrived class.
|
||||||
|
"""
|
||||||
|
assert(False,"Needs to be overridden in the derived class")
|
||||||
|
|
||||||
def add_person(self,person,transaction):
|
def add_person(self,person,transaction):
|
||||||
"""
|
"""
|
||||||
Adds a Person to the database, assigning internal IDs if they have
|
Adds a Person to the database, assigning internal IDs if they have
|
||||||
@ -906,49 +930,23 @@ class GrampsDbBase:
|
|||||||
"""
|
"""
|
||||||
return self.media_map.has_key(str(handle)) != None
|
return self.media_map.has_key(str(handle)) != None
|
||||||
|
|
||||||
def get_person_from_gramps_id(self,val):
|
|
||||||
"""finds a Person in the database from the passed gramps' ID.
|
|
||||||
If no such Person exists, a new Person is added to the database."""
|
|
||||||
|
|
||||||
data = self.id_trans.get(str(val))
|
|
||||||
if data:
|
|
||||||
person = Person()
|
|
||||||
person.unserialize(cPickle.loads(data))
|
|
||||||
return person
|
|
||||||
else:
|
|
||||||
return None
|
|
||||||
|
|
||||||
def find_person_from_gramps_id(self,val,transaction):
|
|
||||||
"""finds a Person in the database from the passed gramps' ID.
|
|
||||||
If no such Person exists, a new Person is added to the database."""
|
|
||||||
|
|
||||||
person = Person()
|
|
||||||
data = self.id_trans.get(str(val))
|
|
||||||
if data:
|
|
||||||
person.unserialize(cPickle.loads(data))
|
|
||||||
else:
|
|
||||||
intid = Utils.create_id()
|
|
||||||
person.set_handle(intid)
|
|
||||||
person.set_gramps_id(val)
|
|
||||||
self.add_person(person,transaction)
|
|
||||||
return person
|
|
||||||
|
|
||||||
def _sortbyname(self,f,s):
|
def _sortbyname(self,f,s):
|
||||||
n1 = self.person_map.get(f)[2].sname
|
n1 = self.person_map.get(str(f))[2].sname
|
||||||
n2 = self.person_map.get(s)[2].sname
|
n2 = self.person_map.get(str(s))[2].sname
|
||||||
return cmp(n1,n2)
|
return cmp(n1,n2)
|
||||||
|
|
||||||
def _sortbyplace(self,f,s):
|
def _sortbyplace(self,f,s):
|
||||||
return cmp(self.place_map.get(f)[2].upper(), self.place_map.get(s)[2].upper())
|
return cmp(self.place_map.get(str(f))[2].upper(),
|
||||||
|
self.place_map.get(str(s))[2].upper())
|
||||||
|
|
||||||
def _sortbysource(self,f,s):
|
def _sortbysource(self,f,s):
|
||||||
fp = self.source_map[f][2].upper()
|
fp = self.source_map[str(f)][2].upper()
|
||||||
sp = self.source_map[s][2].upper()
|
sp = self.source_map[str(s)][2].upper()
|
||||||
return cmp(fp,sp)
|
return cmp(fp,sp)
|
||||||
|
|
||||||
def _sortbymedia(self,f,s):
|
def _sortbymedia(self,f,s):
|
||||||
fp = self.media_map[f][4].upper()
|
fp = self.media_map[str(f)][4].upper()
|
||||||
sp = self.media_map[s][4].upper()
|
sp = self.media_map[str(s)][4].upper()
|
||||||
return cmp(fp,sp)
|
return cmp(fp,sp)
|
||||||
|
|
||||||
def set_person_column_order(self,list):
|
def set_person_column_order(self,list):
|
||||||
|
@ -199,7 +199,7 @@ class Marriage:
|
|||||||
|
|
||||||
frel = family.get_relationship()
|
frel = family.get_relationship()
|
||||||
self.type_field.set_active(frel)
|
self.type_field.set_active(frel)
|
||||||
self.gid.set_text(family.get_handle())
|
self.gid.set_text(family.get_gramps_id())
|
||||||
self.gid.set_editable(1)
|
self.gid.set_editable(1)
|
||||||
|
|
||||||
AutoComp.fill_combo(self.lds_temple,_temple_names)
|
AutoComp.fill_combo(self.lds_temple,_temple_names)
|
||||||
@ -556,6 +556,9 @@ class Marriage:
|
|||||||
else:
|
else:
|
||||||
self.close(0)
|
self.close(0)
|
||||||
|
|
||||||
|
def save(self):
|
||||||
|
self.on_close_marriage_editor(None)
|
||||||
|
|
||||||
def on_delete_event(self,obj,b):
|
def on_delete_event(self,obj,b):
|
||||||
self.on_cancel_edit(obj)
|
self.on_cancel_edit(obj)
|
||||||
|
|
||||||
@ -565,11 +568,9 @@ class Marriage:
|
|||||||
|
|
||||||
idval = unicode(self.gid.get_text())
|
idval = unicode(self.gid.get_text())
|
||||||
family = self.family
|
family = self.family
|
||||||
if idval != family.get_handle():
|
if idval != family.get_gramps_id():
|
||||||
if not self.db.has_family_handle(idval):
|
if not self.db.get_family_from_gramps_id(idval):
|
||||||
if self.db.has_family_handle(family.get_handle()):
|
family.set_gramps_id(idval)
|
||||||
self.db.remove_family_handle(family.get_handle(),trans)
|
|
||||||
family.set_handle(idval)
|
|
||||||
else:
|
else:
|
||||||
WarningDialog(_("GRAMPS ID value was not changed."),
|
WarningDialog(_("GRAMPS ID value was not changed."),
|
||||||
_('The GRAMPS ID that you chose for this '
|
_('The GRAMPS ID that you chose for this '
|
||||||
|
@ -97,31 +97,8 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
else:
|
else:
|
||||||
self.rebuild_data()
|
self.rebuild_data()
|
||||||
|
|
||||||
self.connect('row-deleted',self.on_row_deleted)
|
# self.connect('row-deleted',self.on_row_deleted)
|
||||||
self.connect('row-inserted',self.on_row_inserted)
|
# self.connect('row-inserted',self.on_row_inserted)
|
||||||
|
|
||||||
def on_row_inserted(self,model,path,iter):
|
|
||||||
pass
|
|
||||||
|
|
||||||
def on_row_deleted(self,model,path):
|
|
||||||
surname = self.top_path2iter[path[0]]
|
|
||||||
pid = self.path2iter[(surname,path[1])]
|
|
||||||
|
|
||||||
for idval in self.sname_sub[surname]:
|
|
||||||
key = self.iter2path[idval]
|
|
||||||
del self.iter2path[idval]
|
|
||||||
del self.path2iter[key]
|
|
||||||
self.sname_sub[surname].remove(pid)
|
|
||||||
|
|
||||||
val = 0
|
|
||||||
entries = self.sname_sub[surname]
|
|
||||||
entries.sort(self.byname)
|
|
||||||
for person_handle in entries:
|
|
||||||
tpl = (surname,val)
|
|
||||||
self.iter2path[person_handle] = tpl
|
|
||||||
self.path2iter[tpl] = person_handle
|
|
||||||
val += 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
def rebuild_data(self):
|
def rebuild_data(self):
|
||||||
self.top_path2iter = []
|
self.top_path2iter = []
|
||||||
@ -165,44 +142,6 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
self.path2iter,
|
self.path2iter,
|
||||||
self.sname_sub)
|
self.sname_sub)
|
||||||
|
|
||||||
def add_person(self,person):
|
|
||||||
pid = person.get_handle()
|
|
||||||
need = 0
|
|
||||||
surname = person.get_primary_name().get_surname()
|
|
||||||
if self.sname_sub.has_key(surname):
|
|
||||||
self.sname_sub[surname].append(pid)
|
|
||||||
else:
|
|
||||||
self.sname_sub[surname] = [pid]
|
|
||||||
|
|
||||||
inscol = 0
|
|
||||||
sval = 0
|
|
||||||
name_list = self.db.get_surname_list()
|
|
||||||
for name in name_list:
|
|
||||||
if self.sname_sub.has_key(name):
|
|
||||||
self.top_path2iter[sval] = name
|
|
||||||
if name == surname:
|
|
||||||
inscol = (sval,)
|
|
||||||
need = 1
|
|
||||||
sval += 1
|
|
||||||
|
|
||||||
column = 0
|
|
||||||
val = 0
|
|
||||||
entries = self.sname_sub[surname]
|
|
||||||
entries.sort(self.byname)
|
|
||||||
for person_handle in entries:
|
|
||||||
tpl = (surname,val)
|
|
||||||
self.iter2path[person_handle] = tpl
|
|
||||||
self.path2iter[tpl] = person_handle
|
|
||||||
if person_handle == pid:
|
|
||||||
column = val
|
|
||||||
val += 1
|
|
||||||
|
|
||||||
col = self.top_path2iter.index(surname)
|
|
||||||
mypath = (col[0],column)
|
|
||||||
if need:
|
|
||||||
self.row_inserted(inscol,self.get_iter(inscol))
|
|
||||||
self.row_inserted(mypath,self.get_iter(mypath))
|
|
||||||
|
|
||||||
def byname(self,f,s):
|
def byname(self,f,s):
|
||||||
n1 = self.db.person_map.get(str(f))[_NAME_COL].get_sort_name()
|
n1 = self.db.person_map.get(str(f))[_NAME_COL].get_sort_name()
|
||||||
n2 = self.db.person_map.get(str(s))[_NAME_COL].get_sort_name()
|
n2 = self.db.person_map.get(str(s))[_NAME_COL].get_sort_name()
|
||||||
@ -384,4 +323,65 @@ class PeopleModel(gtk.GenericTreeModel):
|
|||||||
return self.db.get_place_from_handle(place_handle).get_title()
|
return self.db.get_place_from_handle(place_handle).get_title()
|
||||||
return u""
|
return u""
|
||||||
|
|
||||||
|
# def add_person(self,person):
|
||||||
|
# pid = person.get_handle()
|
||||||
|
# need = 0
|
||||||
|
# surname = person.get_primary_name().get_surname()
|
||||||
|
# if self.sname_sub.has_key(surname):
|
||||||
|
# self.sname_sub[surname].append(pid)
|
||||||
|
# else:
|
||||||
|
# self.sname_sub[surname] = [pid]
|
||||||
|
|
||||||
|
# inscol = 0
|
||||||
|
# sval = 0
|
||||||
|
# name_list = self.db.get_surname_list()
|
||||||
|
# for name in name_list:
|
||||||
|
# if self.sname_sub.has_key(name):
|
||||||
|
# self.top_path2iter[sval] = name
|
||||||
|
# if name == surname:
|
||||||
|
# inscol = (sval,)
|
||||||
|
# need = 1
|
||||||
|
# sval += 1
|
||||||
|
|
||||||
|
# column = 0
|
||||||
|
# val = 0
|
||||||
|
# entries = self.sname_sub[surname]
|
||||||
|
# entries.sort(self.byname)
|
||||||
|
# for person_handle in entries:
|
||||||
|
# tpl = (surname,val)
|
||||||
|
# self.iter2path[person_handle] = tpl
|
||||||
|
# self.path2iter[tpl] = person_handle
|
||||||
|
# if person_handle == pid:
|
||||||
|
# column = val
|
||||||
|
# val += 1
|
||||||
|
|
||||||
|
# col = self.top_path2iter.index(surname)
|
||||||
|
# mypath = (col[0],column)
|
||||||
|
# if need:
|
||||||
|
# self.row_inserted(inscol,self.get_iter(inscol))
|
||||||
|
# self.row_inserted(mypath,self.get_iter(mypath))
|
||||||
|
|
||||||
|
# def on_row_inserted(self,model,path,iter):
|
||||||
|
# pass
|
||||||
|
|
||||||
|
# def on_row_deleted(self,model,path):
|
||||||
|
# surname = self.top_path2iter[path[0]]
|
||||||
|
# pid = self.path2iter[(surname,path[1])]
|
||||||
|
|
||||||
|
# for idval in self.sname_sub[surname]:
|
||||||
|
# key = self.iter2path[idval]
|
||||||
|
# del self.iter2path[idval]
|
||||||
|
# del self.path2iter[key]
|
||||||
|
# self.sname_sub[surname].remove(pid)
|
||||||
|
|
||||||
|
# val = 0
|
||||||
|
# entries = self.sname_sub[surname]
|
||||||
|
# entries.sort(self.byname)
|
||||||
|
# for person_handle in entries:
|
||||||
|
# tpl = (surname,val)
|
||||||
|
# self.iter2path[person_handle] = tpl
|
||||||
|
# self.path2iter[tpl] = person_handle
|
||||||
|
# val += 1
|
||||||
|
# return 0
|
||||||
|
|
||||||
_GENDER = [ _(u'female'), _(u'male'), _(u'unknown') ]
|
_GENDER = [ _(u'female'), _(u'male'), _(u'unknown') ]
|
||||||
|
@ -278,6 +278,7 @@ class GrampsParser:
|
|||||||
self.tlist = []
|
self.tlist = []
|
||||||
self.conf = 2
|
self.conf = 2
|
||||||
self.gid2id = {}
|
self.gid2id = {}
|
||||||
|
self.gid2fid = {}
|
||||||
|
|
||||||
self.ord = None
|
self.ord = None
|
||||||
self.objref = None
|
self.objref = None
|
||||||
@ -329,6 +330,7 @@ class GrampsParser:
|
|||||||
self.func = None
|
self.func = None
|
||||||
self.witness_comment = ""
|
self.witness_comment = ""
|
||||||
self.idswap = {}
|
self.idswap = {}
|
||||||
|
self.fidswap = {}
|
||||||
|
|
||||||
self.func_map = {
|
self.func_map = {
|
||||||
"address" : (self.start_address, self.stop_address),
|
"address" : (self.start_address, self.stop_address),
|
||||||
@ -414,26 +416,47 @@ class GrampsParser:
|
|||||||
}
|
}
|
||||||
|
|
||||||
def find_person_by_gramps_id(self,gramps_id):
|
def find_person_by_gramps_id(self,gramps_id):
|
||||||
person = RelLib.Person()
|
|
||||||
intid = self.gid2id.get(gramps_id)
|
intid = self.gid2id.get(gramps_id)
|
||||||
if intid:
|
if intid:
|
||||||
person.unserialize(self.db.person_map.get(intid))
|
person = self.db.get_person_from_handle(intid)
|
||||||
else:
|
else:
|
||||||
intid = Utils.create_id()
|
intid = Utils.create_id()
|
||||||
|
person = RelLib.Person()
|
||||||
person.set_handle(intid)
|
person.set_handle(intid)
|
||||||
person.set_gramps_id(gramps_id)
|
person.set_gramps_id(gramps_id)
|
||||||
self.db.add_person(person,self.trans)
|
self.db.add_person(person,self.trans)
|
||||||
self.gid2id[gramps_id] = intid
|
self.gid2id[gramps_id] = intid
|
||||||
return person
|
return person
|
||||||
|
|
||||||
|
def find_family_by_gramps_id(self,gramps_id):
|
||||||
|
intid = self.gid2fid.get(gramps_id)
|
||||||
|
if intid:
|
||||||
|
family = self.db.get_family_from_handle(intid)
|
||||||
|
else:
|
||||||
|
intid = Utils.create_id()
|
||||||
|
family = RelLib.Family()
|
||||||
|
family.set_handle(intid)
|
||||||
|
family.set_gramps_id(gramps_id)
|
||||||
|
self.db.add_family(family,self.trans)
|
||||||
|
self.gid2fid[gramps_id] = intid
|
||||||
|
return family
|
||||||
|
|
||||||
def map_gid(self,id):
|
def map_gid(self,id):
|
||||||
if not self.idswap.get(id):
|
if not self.idswap.get(id):
|
||||||
if self.db.id_trans.get(str(id)):
|
if self.db.get_person_from_gramps_id(id):
|
||||||
self.idswap[id] = self.db.find_next_person_gramps_id()
|
self.idswap[id] = self.db.find_next_person_gramps_id()
|
||||||
else:
|
else:
|
||||||
self.idswap[id] = id
|
self.idswap[id] = id
|
||||||
return self.idswap[id]
|
return self.idswap[id]
|
||||||
|
|
||||||
|
def map_fid(self,id):
|
||||||
|
if not self.fidswap.get(id):
|
||||||
|
if self.db.get_family_from_gramps_id(id):
|
||||||
|
self.fidswap[id] = self.db.find_next_family_gramps_id()
|
||||||
|
else:
|
||||||
|
self.fidswap[id] = id
|
||||||
|
return self.fidswap[id]
|
||||||
|
|
||||||
def parse(self,file):
|
def parse(self,file):
|
||||||
self.trans = self.db.transaction_begin()
|
self.trans = self.db.transaction_begin()
|
||||||
p = xml.parsers.expat.ParserCreate()
|
p = xml.parsers.expat.ParserCreate()
|
||||||
@ -444,7 +467,7 @@ class GrampsParser:
|
|||||||
|
|
||||||
self.db.set_researcher(self.owner)
|
self.db.set_researcher(self.owner)
|
||||||
if self.tempDefault != None:
|
if self.tempDefault != None:
|
||||||
id = self.tempDefault
|
id = self.map_gid(self.tempDefault)
|
||||||
person = self.find_person_by_gramps_id(id)
|
person = self.find_person_by_gramps_id(id)
|
||||||
if person:
|
if person:
|
||||||
self.db.set_default_person_handle(person.get_handle())
|
self.db.set_default_person_handle(person.get_handle())
|
||||||
@ -477,8 +500,8 @@ class GrampsParser:
|
|||||||
self.ord.set_status(int(attrs['val']))
|
self.ord.set_status(int(attrs['val']))
|
||||||
|
|
||||||
def start_sealed_to(self,attrs):
|
def start_sealed_to(self,attrs):
|
||||||
id = self.map_gid(attrs['ref'])
|
id = self.map_fid(attrs['ref'])
|
||||||
self.ord.set_family_handle(self.db.find_family_from_handle(id,self.trans))
|
self.ord.set_family_handle(self.find_family_by_gramps_id(id))
|
||||||
|
|
||||||
def start_place(self,attrs):
|
def start_place(self,attrs):
|
||||||
self.placeobj = self.db.find_place_from_handle(attrs['ref'],self.trans)
|
self.placeobj = self.db.find_place_from_handle(attrs['ref'],self.trans)
|
||||||
@ -578,7 +601,8 @@ class GrampsParser:
|
|||||||
self.address.private = int(attrs["priv"])
|
self.address.private = int(attrs["priv"])
|
||||||
|
|
||||||
def start_bmark(self,attrs):
|
def start_bmark(self,attrs):
|
||||||
person = self.find_person_by_gramps_id(self.map_gid(attrs["ref"]))
|
id = self.map_gid(attrs["ref"])
|
||||||
|
person = self.find_person_by_gramps_id(id)
|
||||||
self.db.bookmarks.append(person.get_handle())
|
self.db.bookmarks.append(person.get_handle())
|
||||||
|
|
||||||
def start_person(self,attrs):
|
def start_person(self,attrs):
|
||||||
@ -635,7 +659,7 @@ class GrampsParser:
|
|||||||
if self.callback != None and self.count % self.increment == 0:
|
if self.callback != None and self.count % self.increment == 0:
|
||||||
self.callback(float(self.count)/float(self.entries))
|
self.callback(float(self.count)/float(self.entries))
|
||||||
self.count = self.count + 1
|
self.count = self.count + 1
|
||||||
self.family = self.db.find_family_from_handle(attrs["id"],self.trans)
|
self.family = self.find_family_by_gramps_id(self.map_fid(attrs["id"]))
|
||||||
|
|
||||||
if attrs.has_key("type"):
|
if attrs.has_key("type"):
|
||||||
self.family.set_relationship(_FAMILY_TRANS.get(attrs["type"],
|
self.family.set_relationship(_FAMILY_TRANS.get(attrs["type"],
|
||||||
@ -646,7 +670,7 @@ class GrampsParser:
|
|||||||
self.family.set_complete_flag(0)
|
self.family.set_complete_flag(0)
|
||||||
|
|
||||||
def start_childof(self,attrs):
|
def start_childof(self,attrs):
|
||||||
family = self.db.find_family_from_handle(attrs["ref"],self.trans)
|
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
|
||||||
if attrs.has_key("mrel"):
|
if attrs.has_key("mrel"):
|
||||||
mrel = attrs["mrel"]
|
mrel = attrs["mrel"]
|
||||||
else:
|
else:
|
||||||
@ -658,7 +682,8 @@ class GrampsParser:
|
|||||||
self.person.add_parent_family_handle(family.get_handle(),mrel,frel)
|
self.person.add_parent_family_handle(family.get_handle(),mrel,frel)
|
||||||
|
|
||||||
def start_parentin(self,attrs):
|
def start_parentin(self,attrs):
|
||||||
self.person.add_family_handle(attrs["ref"])
|
family = self.find_family_by_gramps_id(self.map_fid(attrs["ref"]))
|
||||||
|
self.person.add_family_handle(family.get_handle())
|
||||||
|
|
||||||
def start_name(self,attrs):
|
def start_name(self,attrs):
|
||||||
if not self.in_witness:
|
if not self.in_witness:
|
||||||
|
@ -502,14 +502,6 @@ class Person(PrimaryObject,SourceNote):
|
|||||||
else:
|
else:
|
||||||
return self.parent_family_list[0][0]
|
return self.parent_family_list[0][0]
|
||||||
|
|
||||||
def get_main_parents_family_handle(self):
|
|
||||||
"""returns the main Family of the Person, the Family in which the
|
|
||||||
Person is a natural born child"""
|
|
||||||
if len(self.parent_family_list) == 0:
|
|
||||||
return (None,None,None)
|
|
||||||
else:
|
|
||||||
return self.parent_family_list[0]
|
|
||||||
|
|
||||||
def set_lds_baptism(self,ord):
|
def set_lds_baptism(self,ord):
|
||||||
"""Sets the LDS Baptism ordinance"""
|
"""Sets the LDS Baptism ordinance"""
|
||||||
self.lds_bapt = ord
|
self.lds_bapt = ord
|
||||||
|
@ -170,8 +170,8 @@ class RelationshipCalculator:
|
|||||||
pmap[person.get_handle()] = index
|
pmap[person.get_handle()] = index
|
||||||
|
|
||||||
family_handle = person.get_main_parents_family_handle()
|
family_handle = person.get_main_parents_family_handle()
|
||||||
family = self.db.get_family_from_handle(family_handle)
|
if family_handle != None:
|
||||||
if family != None:
|
family = self.db.get_family_from_handle(family_handle)
|
||||||
father = self.db.get_person_from_handle(family.get_father_handle())
|
father = self.db.get_person_from_handle(family.get_father_handle())
|
||||||
mother = self.db.get_person_from_handle(family.get_mother_handle())
|
mother = self.db.get_person_from_handle(family.get_mother_handle())
|
||||||
self.apply_filter(father,index+1,plist,pmap)
|
self.apply_filter(father,index+1,plist,pmap)
|
||||||
|
@ -98,7 +98,8 @@ class RelCalc:
|
|||||||
if p == self.person:
|
if p == self.person:
|
||||||
continue
|
continue
|
||||||
val = self.db.get_person_from_handle(key).get_display_info()
|
val = self.db.get_person_from_handle(key).get_display_info()
|
||||||
self.clist.add([val[0],val[1],val[3],val[5],val[6]],p.get_handle())
|
event = self.db.find_event_from_handle(val[3])
|
||||||
|
self.clist.add([val[0],val[1],event.get_date(),val[5],val[6]],p.get_handle())
|
||||||
|
|
||||||
self.clist.connect_model()
|
self.clist.connect_model()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user