← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol-hush/openlp/trivial into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol-hush/openlp/trivial into lp:openlp.

Requested reviews:
  Jon Tibble (meths)
  Tim Bentley (trb143)
  Raoul Snyman (raoul-snyman)

For more details, see:
https://code.launchpad.net/~googol-hush/openlp/trivial/+merge/50966

Hello!

The re-index tool adds 'Author unknown' if songs do not have any author.

Cheers
-- 
https://code.launchpad.net/~googol-hush/openlp/trivial/+merge/50966
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/plugins/songs/lib/songimport.py'
--- openlp/plugins/songs/lib/songimport.py	2011-02-20 00:05:50 +0000
+++ openlp/plugins/songs/lib/songimport.py	2011-02-23 17:48:20 +0000
@@ -270,8 +270,6 @@
         """
         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 @@
             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)

=== modified file 'openlp/plugins/songs/lib/ui.py'
--- openlp/plugins/songs/lib/ui.py	2011-02-16 17:54:31 +0000
+++ openlp/plugins/songs/lib/ui.py	2011-02-23 17:48:20 +0000
@@ -36,8 +36,7 @@
     # 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')

=== modified file 'openlp/plugins/songs/lib/xml.py'
--- openlp/plugins/songs/lib/xml.py	2011-02-20 17:34:57 +0000
+++ openlp/plugins/songs/lib/xml.py	2011-02-23 17:48:20 +0000
@@ -374,8 +374,6 @@
                 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 @@
                 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):

=== modified file 'openlp/plugins/songs/songsplugin.py'
--- openlp/plugins/songs/songsplugin.py	2011-02-18 01:07:55 +0000
+++ openlp/plugins/songs/songsplugin.py	2011-02-23 17:48:20 +0000
@@ -33,8 +33,9 @@
 from openlp.core.lib.db import Manager
 from openlp.core.lib.ui import UiStrings
 from openlp.plugins.songs.lib import SongMediaItem, SongsTab, SongXML
-from openlp.plugins.songs.lib.db import init_schema, Song
+from openlp.plugins.songs.lib.db import Author, init_schema, Song
 from openlp.plugins.songs.lib.importer import SongFormat
+from openlp.plugins.songs.lib.ui import SongStrings
 
 log = logging.getLogger(__name__)
 
@@ -145,6 +146,15 @@
         counter = 0
         for song in songs:
             counter += 1
+            # The song does not have any author, add one.
+            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)
             if song.title is None:
                 song.title = u''
             if song.alternate_title is None:


Follow ups