diff --git a/openlp/plugins/songs/lib/songimport.py b/openlp/plugins/songs/lib/songimport.py index 40be1675e..a8ca5d7b3 100644 --- a/openlp/plugins/songs/lib/songimport.py +++ b/openlp/plugins/songs/lib/songimport.py @@ -270,8 +270,6 @@ class SongImport(QtCore.QObject): """ All fields have been set to this song. Write the song to disk. """ - if not self.authors: - self.authors.append(SongStrings.AuthorUnknownUnT) log.info(u'committing song %s to database', self.title) song = Song() song.title = self.title @@ -315,10 +313,19 @@ class SongImport(QtCore.QObject): author = self.manager.get_object_filtered(Author, Author.display_name == authortext) if not author: - author = Author.populate(display_name = authortext, + author = Author.populate(display_name=authortext, last_name=authortext.split(u' ')[-1], first_name=u' '.join(authortext.split(u' ')[:-1])) song.authors.append(author) + # No author, add the default author. + if not song.authors: + name = SongStrings.AuthorUnknown + author = self.manager.get_object_filtered( + Author, Author.display_name == name) + if not author: + author = Author.populate( + display_name=name, last_name=u'', first_name=u'') + song.authors.append(author) for filename in self.media_files: media_file = self.manager.get_object_filtered(MediaFile, MediaFile.file_name == filename) diff --git a/openlp/plugins/songs/lib/ui.py b/openlp/plugins/songs/lib/ui.py index 65f473e63..6415c48c9 100644 --- a/openlp/plugins/songs/lib/ui.py +++ b/openlp/plugins/songs/lib/ui.py @@ -36,8 +36,7 @@ class SongStrings(object): # These strings should need a good reason to be retranslated elsewhere. Author = translate('OpenLP.Ui', 'Author', 'Singular') Authors = translate('OpenLP.Ui', 'Authors', 'Plural') - AuthorUnknown = translate('OpenLP.Ui', 'Author Unknown') # Used in the UI. - AuthorUnknownUnT = u'Author Unknown' # Used to populate the database. + AuthorUnknown = u'Author Unknown' # Used to populate the database. CopyrightSymbol = translate('OpenLP.Ui', '\xa9', 'Copyright symbol.') SongBook = translate('OpenLP.Ui', 'Song Book', 'Singular') SongBooks = translate('OpenLP.Ui', 'Song Books', 'Plural') diff --git a/openlp/plugins/songs/lib/xml.py b/openlp/plugins/songs/lib/xml.py index a552a42a1..2aa51c99e 100644 --- a/openlp/plugins/songs/lib/xml.py +++ b/openlp/plugins/songs/lib/xml.py @@ -374,8 +374,6 @@ class OpenLyrics(object): display_name = self._text(author) if display_name: authors.append(display_name) - if not authors: - authors.append(SongStrings.AuthorUnknownUnT) for display_name in authors: author = self.manager.get_object_filtered(Author, Author.display_name == display_name) @@ -384,7 +382,14 @@ class OpenLyrics(object): author = Author.populate(display_name=display_name, last_name=display_name.split(u' ')[-1], first_name=u' '.join(display_name.split(u' ')[:-1])) - self.manager.save_object(author) + # The song does not have an author, add a default author. + if not song.authors: + name = SongStrings.AuthorUnknown + author = self.manager.get_object_filtered( + Author, Author.display_name == name) + if author is None: + author = Author.populate( + display_name=name, last_name=u'', first_name=u'') song.authors.append(author) def _process_cclinumber(self, properties, song): diff --git a/openlp/plugins/songs/songsplugin.py b/openlp/plugins/songs/songsplugin.py index 3800d00dc..1932a8384 100644 --- a/openlp/plugins/songs/songsplugin.py +++ b/openlp/plugins/songs/songsplugin.py @@ -148,13 +148,12 @@ class SongsPlugin(Plugin): counter += 1 # The song does not have any author, add one. if not song.authors: - name = unicode(SongStrings.AuthorUnknownUnT) + name = SongStrings.AuthorUnknown author = self.manager.get_object_filtered(Author, Author.display_name == name) if author is None: author = Author.populate( - first_name=u' '.join(name.split(u' ', 1)[:-1]), - last_name=name.split(u' ', 1)[-1], display_name=name) + display_name=name, last_name=u'', first_name=u'') song.authors.append(author) if song.title is None: song.title = u''