From 35723ed72c8a3da623d7b1d7dfb2c923d4233402 Mon Sep 17 00:00:00 2001 From: Raoul Snyman Date: Wed, 2 Feb 2022 11:28:46 -0700 Subject: [PATCH] Fix issue #937 by handling custom verse types correctly --- openlp/plugins/songs/lib/songselect.py | 7 ++++++- tests/openlp_plugins/songs/test_songselect.py | 5 ++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/openlp/plugins/songs/lib/songselect.py b/openlp/plugins/songs/lib/songselect.py index 18fc6f871..ca0b61c61 100644 --- a/openlp/plugins/songs/lib/songselect.py +++ b/openlp/plugins/songs/lib/songselect.py @@ -243,7 +243,12 @@ class SongSelectImport(object): verse_type = verse['label'] verse_number = 1 verse_type = VerseType.from_loose_input(verse_type) - verse_number = int(verse_number) + try: + verse_number = int(verse_number) + except ValueError: + # Some custom verse types contain multiple words, and this messes with the verse number, + # so just default to 1 on ValueError. See https://gitlab.com/openlp/openlp/-/issues/937 + verse_number = 1 song_xml.add_verse_to_lyrics(VerseType.tags[verse_type], verse_number, verse['lyrics']) verse_order.append('{tag}{number}'.format(tag=VerseType.tags[verse_type], number=verse_number)) db_song.verse_order = ' '.join(verse_order) diff --git a/tests/openlp_plugins/songs/test_songselect.py b/tests/openlp_plugins/songs/test_songselect.py index 60149bf54..0baa1499a 100644 --- a/tests/openlp_plugins/songs/test_songselect.py +++ b/tests/openlp_plugins/songs/test_songselect.py @@ -374,6 +374,8 @@ class TestSongSelectImport(TestCase, TestMixin):

verse thing 1
line 2

Verse 2

verse thing 2

+

Spoken Words

+

completely custom verse type