* src/DisplayModels.py: don't access db maps directly
* src/PeopleModel.py: don't access db maps directly * src/FamilyView.py: add gender symbol to primary person * src/GrampsDb/_GrampsBSDDB.py: provide access functions to avoid redirect map access * src/GrampsDb/_GrampsDbBase.py: provide access functions to avoid redirect map access * src/GrampsDb/_ReadGedcom.py: don't access db maps directly svn: r5689
This commit is contained in:
@@ -155,6 +155,69 @@ class GrampsBSDDB(GrampsDbBase):
|
||||
def get_repository_cursor(self):
|
||||
return GrampsBSDDBCursor(self.repository_map,self.txn)
|
||||
|
||||
def has_person_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Person database.
|
||||
"""
|
||||
return self.person_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_family_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Family database.
|
||||
"""
|
||||
return self.family_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_object_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current MediaObjectdatabase.
|
||||
"""
|
||||
return self.media_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_repository_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Repository database.
|
||||
"""
|
||||
return self.repository_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_event_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Repository database.
|
||||
"""
|
||||
return self.event_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_place_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Repository database.
|
||||
"""
|
||||
return self.place_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def has_source_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Repository database.
|
||||
"""
|
||||
return self.source_map.get(str(handle),txn=self.txn) != None
|
||||
|
||||
def get_raw_person_data(self,handle):
|
||||
return self.person_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_family_data(self,handle):
|
||||
return self.family_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_object_data(self,handle):
|
||||
return self.media_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_place_data(self,handle):
|
||||
return self.place_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_event_data(self,handle):
|
||||
return self.event_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_source_data(self,handle):
|
||||
return self.source_map.get(str(handle),txn=self.txn)
|
||||
|
||||
def get_raw_repository_data(self,handle):
|
||||
return self.repository_map.get(str(handle),txn=self.txn)
|
||||
|
||||
# cursors for lookups in the reference_map for back reference
|
||||
# lookups. The reference_map has three indexes:
|
||||
# the main index: a tuple of (primary_handle,referenced_handle)
|
||||
@@ -759,7 +822,7 @@ class GrampsBSDDB(GrampsDbBase):
|
||||
if data:
|
||||
obj = class_init()
|
||||
obj.unserialize(cPickle.loads(data))
|
||||
return person
|
||||
return obj
|
||||
else:
|
||||
return None
|
||||
|
||||
|
@@ -1370,12 +1370,51 @@ class GrampsDbBase(GrampsDBCallback):
|
||||
self._do_remove_object(handle,transaction,self.repository_map,
|
||||
REPOSITORY_KEY, transaction.repository_del)
|
||||
|
||||
def get_raw_person_data(self,handle):
|
||||
return self.person_map.get(str(handle))
|
||||
|
||||
def get_raw_family_data(self,handle):
|
||||
return self.family_map.get(str(handle))
|
||||
|
||||
def get_raw_object_data(self,handle):
|
||||
return self.media_map.get(str(handle))
|
||||
|
||||
def get_raw_place_data(self,handle):
|
||||
return self.place_map.get(str(handle))
|
||||
|
||||
def get_raw_event_data(self,handle):
|
||||
return self.event_map.get(str(handle))
|
||||
|
||||
def get_raw_source_data(self,handle):
|
||||
return self.source_map.get(str(handle))
|
||||
|
||||
def get_raw_repository_data(self,handle):
|
||||
return self.repository_map.get(str(handle))
|
||||
|
||||
def has_person_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Person database.
|
||||
"""
|
||||
return self.person_map.has_key(str(handle))
|
||||
|
||||
def has_event_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Event database.
|
||||
"""
|
||||
return self.event_map.has_key(str(handle))
|
||||
|
||||
def has_source_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Source database.
|
||||
"""
|
||||
return self.source_map.has_key(str(handle))
|
||||
|
||||
def has_place_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Place database.
|
||||
"""
|
||||
return self.place_map.has_key(str(handle))
|
||||
|
||||
def has_family_handle(self,handle):
|
||||
"""
|
||||
returns True if the handle exists in the current Family database.
|
||||
|
@@ -778,8 +778,8 @@ class GedcomParser:
|
||||
def find_or_create_person(self,gramps_id):
|
||||
person = RelLib.Person()
|
||||
intid = self.gid2id.get(gramps_id)
|
||||
if self.db.person_map.has_key(intid):
|
||||
person.unserialize(self.db.person_map.get(intid))
|
||||
if self.db.has_person_handle(intid):
|
||||
person.unserialize(self.db.get_raw_person_data(intid))
|
||||
else:
|
||||
intid = self.find_person_handle(gramps_id)
|
||||
person.set_handle(intid)
|
||||
@@ -796,8 +796,8 @@ class GedcomParser:
|
||||
def find_or_create_family(self,gramps_id):
|
||||
family = RelLib.Family()
|
||||
intid = self.fid2id.get(gramps_id)
|
||||
if self.db.family_map.has_key(intid):
|
||||
family.unserialize(self.db.family_map.get(intid))
|
||||
if self.db.has_family_handle(intid):
|
||||
family.unserialize(self.db.get_raw_family_data(intid))
|
||||
else:
|
||||
intid = self.find_family_handle(gramps_id)
|
||||
family.set_handle(intid)
|
||||
@@ -814,8 +814,8 @@ class GedcomParser:
|
||||
def find_or_create_source(self,gramps_id):
|
||||
source = RelLib.Source()
|
||||
intid = self.sid2id.get(gramps_id)
|
||||
if self.db.source_map.has_key(intid):
|
||||
source.unserialize(self.db.source_map.get(intid))
|
||||
if self.db.has_source_handle(intid):
|
||||
source.unserialize(self.db.get_raw_source_data(intid))
|
||||
else:
|
||||
intid = create_id()
|
||||
source.set_handle(intid)
|
||||
@@ -846,8 +846,8 @@ class GedcomParser:
|
||||
else:
|
||||
pname = title
|
||||
|
||||
if self.db.place_map.has_key(intid):
|
||||
place.unserialize(self.db.place_map.get(intid))
|
||||
if self.db.has_place_handle(intid):
|
||||
place.unserialize(self.db.get_raw_place_data(intid))
|
||||
else:
|
||||
intid = create_id()
|
||||
place.set_handle(intid)
|
||||
|
Reference in New Issue
Block a user