0005667: Merging notes with citation references fails (also merge media)

svn: r19251
This commit is contained in:
Tim G L Lyons 2012-04-06 17:15:34 +00:00
parent 181cef35a8
commit c29763c6f2
2 changed files with 12 additions and 2 deletions

View File

@ -29,7 +29,7 @@ Provide merge capabilities for media objects.
# Gramps modules # Gramps modules
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from gen.lib import Person, Family, Event, Source, Place from gen.lib import Person, Family, Event, Source, Citation, Place
from gen.db import DbTxn from gen.db import DbTxn
from gen.ggettext import sgettext as _ from gen.ggettext import sgettext as _
import const import const
@ -211,6 +211,11 @@ class MergeMediaQuery(object):
assert(source.has_media_reference(old_handle)) assert(source.has_media_reference(old_handle))
source.replace_media_references(old_handle, new_handle) source.replace_media_references(old_handle, new_handle)
self.database.commit_source(source, trans) self.database.commit_source(source, trans)
elif class_name == Citation.__name__:
citation = self.database.get_citation_from_handle(handle)
assert(citation.has_media_reference(old_handle))
citation.replace_media_references(old_handle, new_handle)
self.database.commit_citation(citation, trans)
elif class_name == Place.__name__: elif class_name == Place.__name__:
place = self.database.get_place_from_handle(handle) place = self.database.get_place_from_handle(handle)
assert(place.has_media_reference(old_handle)) assert(place.has_media_reference(old_handle))

View File

@ -29,7 +29,7 @@ Provide merge capabilities for notes.
# Gramps modules # Gramps modules
# #
#------------------------------------------------------------------------- #-------------------------------------------------------------------------
from gen.lib import (Person, Family, Event, Place, Source, Repository, from gen.lib import (Person, Family, Event, Place, Source, Citation, Repository,
MediaObject) MediaObject)
from gen.db import DbTxn from gen.db import DbTxn
from gen.ggettext import sgettext as _ from gen.ggettext import sgettext as _
@ -224,6 +224,11 @@ class MergeNoteQuery(object):
assert(source.has_note_reference(old_handle)) assert(source.has_note_reference(old_handle))
source.replace_note_references(old_handle, new_handle) source.replace_note_references(old_handle, new_handle)
self.database.commit_source(source, trans) self.database.commit_source(source, trans)
elif class_name == Citation.__name__:
citation = self.database.get_citation_from_handle(handle)
assert(citation.has_note_reference(old_handle))
citation.replace_note_references(old_handle, new_handle)
self.database.commit_citation(citation, trans)
elif class_name == Place.__name__: elif class_name == Place.__name__:
place = self.database.get_place_from_handle(handle) place = self.database.get_place_from_handle(handle)
assert(place.has_note_reference(old_handle)) assert(place.has_note_reference(old_handle))