forked from openlp/openlp
Convert translated verse orders (some time ago, it was possible to add translated verse orders to the database)
bzr-revno: 1408
This commit is contained in:
commit
d9893fdf05
@ -183,8 +183,9 @@ class ServiceItem(object):
|
|||||||
else:
|
else:
|
||||||
log.error(u'Invalid value renderer :%s' % self.service_item_type)
|
log.error(u'Invalid value renderer :%s' % self.service_item_type)
|
||||||
self.title = clean_tags(self.title)
|
self.title = clean_tags(self.title)
|
||||||
# The footer should never be None, but to be compatible with older
|
# The footer should never be None, but to be compatible with a few
|
||||||
# release of OpenLP, we have to correct this to avoid tracebacks.
|
# nightly builds between 1.9.4 and 1.9.5, we have to correct this to
|
||||||
|
# avoid tracebacks.
|
||||||
if self.raw_footer is None:
|
if self.raw_footer is None:
|
||||||
self.raw_footer = []
|
self.raw_footer = []
|
||||||
self.foot_text = \
|
self.foot_text = \
|
||||||
@ -448,3 +449,4 @@ class ServiceItem(object):
|
|||||||
return end
|
return end
|
||||||
else:
|
else:
|
||||||
return u'%s : %s' % (start, end)
|
return u'%s : %s' % (start, end)
|
||||||
|
|
||||||
|
@ -275,14 +275,33 @@ def clean_song(manager, song):
|
|||||||
sxml = SongXML()
|
sxml = SongXML()
|
||||||
# Rebuild the song's verses, to remove any wrong verse names (for example
|
# Rebuild the song's verses, to remove any wrong verse names (for example
|
||||||
# translated ones), which might have been added prior to 1.9.5.
|
# translated ones), which might have been added prior to 1.9.5.
|
||||||
|
# List for later comparison.
|
||||||
|
compare_order = []
|
||||||
for verse in verses:
|
for verse in verses:
|
||||||
|
type = VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])]
|
||||||
sxml.add_verse_to_lyrics(
|
sxml.add_verse_to_lyrics(
|
||||||
VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])],
|
type,
|
||||||
verse[0][u'label'],
|
verse[0][u'label'],
|
||||||
verse[1],
|
verse[1],
|
||||||
verse[0][u'lang'] if verse[0].has_key(u'lang') else None
|
verse[0][u'lang'] if verse[0].has_key(u'lang') else None
|
||||||
)
|
)
|
||||||
|
compare_order.append((u'%s%s' % (type, verse[0][u'label'])).upper())
|
||||||
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
|
song.lyrics = unicode(sxml.extract_xml(), u'utf-8')
|
||||||
|
# Rebuild the verse order, to convert translated verse tags, which might
|
||||||
|
# have been added prior to 1.9.5.
|
||||||
|
order = song.verse_order.strip().split()
|
||||||
|
new_order = []
|
||||||
|
for verse_def in order:
|
||||||
|
new_order.append((u'%s%s' % (
|
||||||
|
VerseType.Tags[VerseType.from_loose_input(verse_def[0])],
|
||||||
|
verse_def[1:])).upper()
|
||||||
|
)
|
||||||
|
song.verse_order = u' '.join(new_order)
|
||||||
|
# Check if the verse order contains tags for verses which do not exist.
|
||||||
|
for order in new_order:
|
||||||
|
if order not in compare_order:
|
||||||
|
song.verse_order = u''
|
||||||
|
break
|
||||||
# The song does not have any author, add one.
|
# The song does not have any author, add one.
|
||||||
if not song.authors:
|
if not song.authors:
|
||||||
name = SongStrings.AuthorUnknown
|
name = SongStrings.AuthorUnknown
|
||||||
|
Loading…
Reference in New Issue
Block a user