From cb431fea2af21a1f0cb18684765f49de79206563 Mon Sep 17 00:00:00 2001 From: Jon Tibble Date: Tue, 20 Jul 2010 16:22:05 +0100 Subject: [PATCH] Fix song object creation (Bug #607034) --- openlp/core/lib/db.py | 8 ++++++-- openlp/plugins/songs/forms/editsongform.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/openlp/core/lib/db.py b/openlp/core/lib/db.py index 8acc79541..70def9490 100644 --- a/openlp/core/lib/db.py +++ b/openlp/core/lib/db.py @@ -135,16 +135,20 @@ class Manager(object): settings.endGroup() self.session = init_schema(self.db_url) - def save_object(self, object_instance): + def save_object(self, object_instance, commit=True): """ Save an object to the database ``object_instance`` The object to save + + ``commit`` + Commit the session with this object """ try: self.session.add(object_instance) - self.session.commit() + if commit: + self.session.commit() return True except InvalidRequestError: self.session.rollback() diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index f2dc826e9..691918782 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -290,7 +290,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: author = Author.populate(first_name=text.rsplit(u' ', 1)[0], last_name=text.rsplit(u' ', 1)[1], display_name=text) - self.songmanager.save_object(author) + self.songmanager.save_object(author, False) self.song.authors.append(author) author_item = QtGui.QListWidgetItem( unicode(author.display_name)) @@ -342,7 +342,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): QtGui.QMessageBox.Yes | QtGui.QMessageBox.No, QtGui.QMessageBox.Yes) == QtGui.QMessageBox.Yes: topic = Topic.populate(name=text) - self.songmanager.save_object(topic) + self.songmanager.save_object(topic, False) self.song.topics.append(topic) topic_item = QtGui.QListWidgetItem(unicode(topic.name)) topic_item.setData(QtCore.Qt.UserRole,