* 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:
Don Allingham
2006-01-06 22:08:40 +00:00
parent b7d493d92a
commit 636d0df973
7 changed files with 140 additions and 25 deletions

View File

@@ -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

View File

@@ -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.

View File

@@ -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)