(commit_*): update custom type sets on commit.

svn: r6719
This commit is contained in:
Alex Roitman 2006-05-19 00:39:22 +00:00
parent 9203f6b32d
commit e4b2a9f565
3 changed files with 54 additions and 13 deletions

View File

@ -3,6 +3,7 @@
unused secondary tables; add more custom type holders.
* src/GrampsDb/_GrampsDbBase.py (GrampsDbBase.__init__): Add more
custom type holders.
(commit_*): update custom type sets on commit.
* src/DisplayTabs/_BackRefList.py (edit_button_clicked): Typo.
* src/DataViews/_RepositoryView.py (edit, on_double_click): Catch
exception.
@ -14,7 +15,6 @@
* src/GrampsDb/_WriteXML.py (write_bookmarks): Add method to write
new bookmarks.
(XmlWriter.write_xml_data): Do not export name groups.
* src/GrampsDb/_ReadXML.py (start_bmark): Parse new bookmarks
* INSTALL: Clarify; list build-dependencies.
* src/GrampsDb/_ReadGrdb.py: Update progress.

View File

@ -397,7 +397,6 @@ class GrampsBSDDB(GrampsDbBase):
self.individual_event_names = set(self.metadata.get('pevent_names',[]))
self.family_attributes = set(self.metadata.get('fattr_names',[]))
self.individual_attributes = set(self.metadata.get('pattr_names',[]))
# These are not hooked up yet:
self.child_ref_types = set(self.metadata.get('child_refs',[]))
self.family_rel_types = set(self.metadata.get('family_rels',[]))
self.event_role_names = set(self.metadata.get('event_roles',[]))
@ -824,7 +823,6 @@ class GrampsBSDDB(GrampsDbBase):
self.metadata['pevent_names'] = list(self.individual_event_names)
self.metadata['fattr_names'] = list(self.family_attributes)
self.metadata['pattr_names'] = list(self.individual_attributes)
# These are not hooked up yet:
self.metadata['child_refs'] = list(self.child_ref_types)
self.metadata['family_rels'] = list(self.family_rel_types)
self.metadata['event_roles'] = list(self.event_role_names)

View File

@ -224,9 +224,6 @@ class GrampsDbBase(GrampsDBCallback):
self.individual_attributes = set()
self.family_attributes = set()
self.marker_names = set()
# FIXME: TODO: These are just added here at the moment.
# They need to be hooked up on commits
self.child_ref_types = set()
self.family_rel_types = set()
self.event_role_names = set()
@ -234,7 +231,6 @@ class GrampsDbBase(GrampsDBCallback):
self.repository_types = set()
self.source_media_types = set()
self.url_types = set()
# END FIXME
self.set_person_id_prefix(Config.get(Config.IPREFIX))
self.set_object_id_prefix(Config.get(Config.OPREFIX))
@ -449,11 +445,28 @@ class GrampsDbBase(GrampsDBCallback):
else:
self.genderStats.count_person(person)
for attr in person.attribute_list:
self.individual_attributes.add(str(attr.type))
self.individual_attributes.update(
[str(attr.type) for attr in person.attribute_list
if attr.type.is_custom()])
if person.marker.is_custom():
self.marker_names.add(str(person.marker))
eref_list = [eref for eref in (person.event_ref_list
+ [person.birth_ref,person.death_ref])
if eref]
self.event_role_names.update(
[str(eref.role) for eref in eref_list if eref.role.is_custom()])
self.name_types.update([str(name.type)
for name in ([person.primary_name]
+ person.alternate_names)
if name.type.is_custom()])
self.url_types.update([str(url.type) for url in person.urls
if url.type.is_custom()])
self.marker_names.add(str(person.marker))
def commit_media_object(self, obj, transaction, change_time=None):
"""
Commits the specified MediaObject to the database, storing the changes
@ -474,6 +487,11 @@ class GrampsDbBase(GrampsDBCallback):
transaction.source_update, transaction.source_add,
transaction, change_time)
self.source_media_types.update(
[str(ref.media_type) for ref in source.reporef_list
if ref.media_type.is_custom()])
def commit_place(self, place, transaction, change_time=None):
"""
Commits the specified Place to the database, storing the changes
@ -484,6 +502,9 @@ class GrampsDbBase(GrampsDBCallback):
transaction.place_update, transaction.place_add,
transaction, change_time)
self.url_types.update([str(url.type) for url in place.urls
if url.type.is_custom()])
def commit_personal_event(self, event, transaction, change_time=None):
if event.type.is_custom():
self.individual_event_names.add(str(event.type))
@ -513,8 +534,24 @@ class GrampsDbBase(GrampsDBCallback):
transaction.family_update, transaction.family_add,
transaction, change_time)
for attr in family.attribute_list:
self.family_attributes.add(str(attr.type))
self.family_attributes.update(
[str(attr.type) for attr in family.attribute_list
if attr.type.is_custom()])
self.child_ref_types.update(
[str(ref.frel) for ref in family.child_ref_list
if ref.frel.is_custom()])
self.child_ref_types.update(
[str(ref.mrel) for ref in family.child_ref_list
if ref.mrel.is_custom()])
self.event_role_names.update(
[str(eref.role) for eref in family.event_ref_list
if eref.role.is_custom()])
if family.type.is_custom():
self.family_rel_types.add(str(family.type))
def commit_repository(self, repository, transaction, change_time=None):
"""
@ -527,6 +564,12 @@ class GrampsDbBase(GrampsDBCallback):
transaction.repository_add,
transaction, change_time)
if repository.type.is_custom():
self.repository_types.add(str(repository.type))
self.url_types.update([str(url.type) for url in repository.urls
if url.type.is_custom()])
def find_next_person_gramps_id(self):
"""
Returns the next available GRAMPS' ID for a Person object based