moved code

This commit is contained in:
Andreas Preikschat 2011-02-23 21:22:29 +01:00
parent de584a8945
commit 1eea1c97a4
5 changed files with 45 additions and 44 deletions

View File

@ -25,7 +25,10 @@
###############################################################################
from PyQt4 import QtGui
from openlp.core.lib import translate
from db import Author
from ui import SongStrings
class VerseType(object):
"""
@ -241,6 +244,24 @@ def retrieve_windows_encoding(recommendation=None):
return None
return filter(lambda item: item[1] == choice[0], encodings)[0][0]
def add_author_unknown(manager, song):
"""
Add the default author *Author Unknown* to the song.
``manager``
The song's manager.
``song``
The song object.
"""
name = SongStrings.AuthorUnknown
author = 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)
from xml import OpenLyrics, SongXML
from songstab import SongsTab
from mediaitem import SongMediaItem

View File

@ -36,6 +36,7 @@ from sqlalchemy.orm.exc import UnmappedClassError
from openlp.core.lib import translate
from openlp.core.lib.db import BaseModel
from openlp.plugins.songs.lib import add_author_unknown
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic #, MediaFile
from songimport import SongImport
@ -47,30 +48,35 @@ class OldAuthor(BaseModel):
"""
pass
class OldBook(BaseModel):
"""
Book model
"""
pass
class OldMediaFile(BaseModel):
"""
MediaFile model
"""
pass
class OldSong(BaseModel):
"""
Song model
"""
pass
class OldTopic(BaseModel):
"""
Topic model
"""
pass
class OpenLPSongImport(SongImport):
"""
The :class:`OpenLPSongImport` class provides OpenLP with the ability to
@ -170,25 +176,18 @@ class OpenLPSongImport(SongImport):
new_song.comments = song.comments
new_song.theme_name = song.theme_name
new_song.ccli_number = song.ccli_number
if song.authors:
for author in song.authors:
existing_author = self.manager.get_object_filtered(
Author, Author.display_name == author.display_name)
if existing_author:
new_song.authors.append(existing_author)
else:
new_song.authors.append(Author.populate(
first_name=author.first_name,
last_name=author.last_name,
display_name=author.display_name))
else:
au = self.manager.get_object_filtered(Author,
Author.display_name == u'Author Unknown')
if au:
new_song.authors.append(au)
for author in song.authors:
existing_author = self.manager.get_object_filtered(
Author, Author.display_name == author.display_name)
if existing_author:
new_song.authors.append(existing_author)
else:
new_song.authors.append(Author.populate(
display_name=u'Author Unknown'))
first_name=author.first_name,
last_name=author.last_name,
display_name=author.display_name))
if not new_song.authors:
add_author_unknown(self.manager, new_song)
if song.book:
existing_song_book = self.manager.get_object_filtered(
Book, Book.name == song.book.name)

View File

@ -29,7 +29,7 @@ import re
from PyQt4 import QtCore
from openlp.core.lib import Receiver, translate
from openlp.plugins.songs.lib import VerseType
from openlp.plugins.songs.lib import add_author_unknown, VerseType
from openlp.plugins.songs.lib.db import Song, Author, Topic, Book, MediaFile
from openlp.plugins.songs.lib.ui import SongStrings
from openlp.plugins.songs.lib.xml import SongXML
@ -319,13 +319,7 @@ class SongImport(QtCore.QObject):
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)
add_author_unknown(self.manager, song)
for filename in self.media_files:
media_file = self.manager.get_object_filtered(MediaFile,
MediaFile.file_name == filename)

View File

@ -66,7 +66,7 @@ import re
from lxml import etree, objectify
from openlp.plugins.songs.lib import VerseType
from openlp.plugins.songs.lib import add_author_unknown, VerseType
from openlp.plugins.songs.lib.db import Author, Book, Song, Topic
from openlp.plugins.songs.lib.ui import SongStrings
@ -382,15 +382,8 @@ 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]))
# 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)
add_author_unknown(self.manager, song)
def _process_cclinumber(self, properties, song):
"""

View File

@ -32,10 +32,10 @@ from PyQt4 import QtCore, QtGui
from openlp.core.lib import Plugin, StringContent, build_icon, translate
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 Author, init_schema, Song
from openlp.plugins.songs.lib import add_author_unknown, SongMediaItem, \
SongsTab, SongXML
from openlp.plugins.songs.lib.db import init_schema, Song
from openlp.plugins.songs.lib.importer import SongFormat
from openlp.plugins.songs.lib.ui import SongStrings
log = logging.getLogger(__name__)
@ -148,13 +148,7 @@ class SongsPlugin(Plugin):
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)
add_author_unknown(self.manager, song)
if song.title is None:
song.title = u''
if song.alternate_title is None: