From 8439d1ed4f8d729d77ff6f5a30b0f30f519512e5 Mon Sep 17 00:00:00 2001 From: M2j Date: Thu, 21 Apr 2011 10:53:48 +0200 Subject: [PATCH] fix verse order rebuild to handle single character verse references rename variable to avoid using the 'type' keyword --- openlp/plugins/songs/lib/__init__.py | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 4f95791b3..6c8e187a9 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -278,24 +278,29 @@ def clean_song(manager, song): # List for later comparison. compare_order = [] for verse in verses: - type = VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])] + verse_type = + VerseType.Tags[VerseType.from_loose_input(verse[0][u'type'])] sxml.add_verse_to_lyrics( - type, + verse_type, verse[0][u'label'], verse[1], 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()) + compare_order.append((u'%s%s' % (verse_type, verse[0][u'label']) + ).upper()) + if verse[0][u'label'] == u'1': + compare_order.append(verse_type.upper()) 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() - ) + verse_type = VerseType.Tags[VerseType.from_loose_input(verse_def[0])] + if len(verse_def) > 1: + new_order.append((u'%s%s' % (verse_type, verse_def[1:])).upper()) + else: + new_order.append(verse_type.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: