* src/GrampsBSDDB.py: add remove_place function

* src/DisplayModels.py: added row deletion and updating
functions
* src/EditPlace.py: Make a distinction between update and
new
* src/EditSource.py: Make a distinction between update and
new
* src/PeopleModel.py: remove debugging code
* src/PlaceView.py: better handling of updating and deleiting
* src/SourceView.py: better handling of updating and deleiting


svn: r3520
This commit is contained in:
Don Allingham
2004-08-30 03:50:33 +00:00
parent 4ec5ccd047
commit ec92261a5a
8 changed files with 102 additions and 61 deletions

View File

@@ -173,10 +173,18 @@ class PlaceView:
EditPlace.EditPlace(self.parent,RelLib.Place(),self.new_place_after_edit)
def new_place_after_edit(self,place):
self.parent.db.add_place(place)
self.build_tree()
def update_display(self,place):
self.build_tree()
self.model.update_row_by_handle(place.get_handle())
def delete_place(self,place):
trans = self.parent.db.transaction_begin()
place_handle = place.get_handle()
self.parent.db.remove_place(place_handle,trans)
title_msg = _("Delete Place (%s)") % place.get_title()
self.parent.db.transaction_commit(trans,title_msg)
self.model.delete_row_by_handle(place_handle)
def on_delete_clicked(self,obj):
mlist = []
@@ -184,7 +192,7 @@ class PlaceView:
trans = self.parent.db.transaction_begin()
for place in mlist:
for place_handle in mlist:
used = 0
for key in self.parent.db.get_person_handles(sort_handles=False):
p = self.parent.db.get_person_from_handle(key)
@@ -200,24 +208,27 @@ class PlaceView:
if p.get_lds_sealing():
event_list.append(p.get_lds_sealing())
for event in event_list:
if event.get_place_handle() == place.get_handle():
used = 1
if event:
if event.get_place_handle() == place_handle:
used = 1
for fid in self.parent.db.get_family_handles():
f = self.parent.db.get_family_from_handle(fid)
event_list = []
for e in f.get_event_list():
event = self.parent.db.get_event_from_handle(e)
for event_id in f.get_event_list():
event = self.parent.db.get_event_from_handle(event_id)
if event:
event_list.append(event)
if f.get_lds_sealing():
event_list.append(f.get_lds_sealing())
for event in event_list:
if event.get_place_handle() == place.get_handle():
if event.get_place_handle() == place_handle:
used = 1
place = self.parent.db.get_place_from_handle(place_handle)
if used == 1:
ans = EditPlace.DeletePlaceQuery(place,self.parent.db,self.update_display)
ans = EditPlace.DeletePlaceQuery(place,self.parent.db,
self.model.delete_row_by_handle)
QuestionDialog(_('Delete %s?') % place.get_title(),
_('This place is currently being used by at least one '
'record in the database. Deleting it will remove it '
@@ -226,17 +237,15 @@ class PlaceView:
_('_Delete Place'),
ans.query_response)
else:
trans = self.parent.db.transaction_begin()
self.parent.db.remove_place(place.get_handle(),trans)
self.parent.db.transaction_commit(trans,_("Delete Place (%s)") % place.title())
self.build_tree()
self.delete_place(place)
def on_edit_clicked(self,obj):
"""Display the selected places in the EditPlace display"""
mlist = []
self.selection.selected_foreach(self.blist,mlist)
for place in mlist:
for place_handle in mlist:
place = self.parent.db.get_place_from_handle(place_handle)
EditPlace.EditPlace(self.parent, place, self.update_display)
def blist(self,store,path,iter,list):