From b2067bef43cf427849c0b4e8f5ea7a01c876caa6 Mon Sep 17 00:00:00 2001 From: M2j Date: Fri, 18 Nov 2011 11:53:56 +0100 Subject: [PATCH] Bug #875286 use VerseType.Other if it is not recogniced during OpenSong import. --- openlp/plugins/songs/forms/editsongform.py | 2 +- openlp/plugins/songs/forms/editverseform.py | 4 +- openlp/plugins/songs/lib/__init__.py | 42 ++++++++++----------- openlp/plugins/songs/lib/mediaitem.py | 2 +- 4 files changed, 25 insertions(+), 25 deletions(-) diff --git a/openlp/plugins/songs/forms/editsongform.py b/openlp/plugins/songs/forms/editsongform.py index 1c254406c..5ca90bfbb 100644 --- a/openlp/plugins/songs/forms/editsongform.py +++ b/openlp/plugins/songs/forms/editsongform.py @@ -278,7 +278,7 @@ class EditSongForm(QtGui.QDialog, Ui_EditSongDialog): if len(verse_tag) > 1: index = VerseType.from_translated_string(verse_tag) if index is None: - index = VerseType.from_string(verse_tag) + index = VerseType.from_string(verse_tag, True) else: verse_tags_translated = True if index is None: diff --git a/openlp/plugins/songs/forms/editverseform.py b/openlp/plugins/songs/forms/editverseform.py index 1845bc0e3..1d37dd433 100644 --- a/openlp/plugins/songs/forms/editverseform.py +++ b/openlp/plugins/songs/forms/editverseform.py @@ -113,7 +113,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): verse_num = int(match.group(2)) except ValueError: verse_num = 1 - verse_type_index = VerseType.from_loose_input(verse_tag) + verse_type_index = VerseType.from_loose_input(verse_tag, True) if verse_type_index is not None: self.verseNumberBox.setValue(verse_num) @@ -140,7 +140,7 @@ class EditVerseForm(QtGui.QDialog, Ui_EditVerseDialog): match = VERSE_REGEX.match(text) if match: verse_type = match.group(1) - verse_type_index = VerseType.from_loose_input(verse_type) + verse_type_index = VerseType.from_loose_input(verse_type, True) try: verse_number = int(match.group(2)) except ValueError: diff --git a/openlp/plugins/songs/lib/__init__.py b/openlp/plugins/songs/lib/__init__.py index 1b0ca316e..05086ec86 100644 --- a/openlp/plugins/songs/lib/__init__.py +++ b/openlp/plugins/songs/lib/__init__.py @@ -80,15 +80,12 @@ class VerseType(object): ``strict`` Determines if the default Other or None should be returned """ - if strict: - not_found_value = None - else: - not_found_value = VerseType.TranslatedTags[VerseType.Other].upper() verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return VerseType.TranslatedTags[num].upper() - return not_found_value + if not strict: + return VerseType.TranslatedTags[VerseType.Other].upper() @staticmethod def translated_name(verse_tag, strict=False): @@ -101,15 +98,12 @@ class VerseType(object): ``strict`` Determines if the default Other or None should be returned """ - if strict: - not_found_value = None - else: - not_found_value = VerseType.TranslatedNames[VerseType.Other] verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return VerseType.TranslatedNames[num] - return not_found_value + if not strict: + return VerseType.TranslatedNames[VerseType.Other] @staticmethod def from_tag(verse_tag, strict=False): @@ -122,15 +116,12 @@ class VerseType(object): ``strict`` Determines if the default Other or None should be returned """ - if strict: - no_return_value = None - else: - no_return_value = VerseType.Other verse_tag = verse_tag[0].lower() for num, tag in enumerate(VerseType.Tags): if verse_tag == tag: return num - return no_return_value + if not strict: + return VerseType.Other @staticmethod def from_translated_tag(verse_tag): @@ -146,17 +137,22 @@ class VerseType(object): return num @staticmethod - def from_string(verse_name): + def from_string(verse_name, strict=False): """ Return the VerseType for a given string ``verse_name`` The string to return a VerseType for + + ``strict`` + Determines if the default Other or None should be returned """ verse_name = verse_name.lower() for num, name in enumerate(VerseType.Names): if verse_name == name.lower(): return num + if not strict: + return VerseType.Other @staticmethod def from_translated_string(verse_name): @@ -172,23 +168,27 @@ class VerseType(object): return num @staticmethod - def from_loose_input(verse_name): + def from_loose_input(verse_name, strict=False): """ Return the VerseType for a given string, Other if not found ``verse_name`` The string to return a VerseType for + + ``strict`` + Determines if the default Other or None should be returned """ verse_index = None if len(verse_name) > 1: verse_index = VerseType.from_translated_string(verse_name) if verse_index is None: - verse_index = VerseType.from_string(verse_name) + verse_index = VerseType.from_string(verse_name, strict) elif len(verse_name) == 1: + verse_index = VerseType.from_translated_tag(verse_name) if verse_index is None: - verse_index = VerseType.from_translated_tag(verse_name) - if verse_index is None: - verse_index = VerseType.from_tag(verse_name) + verse_index = VerseType.from_tag(verse_name, strict) + elif not strict: + verse_index = VerseType.Other return verse_index def retrieve_windows_encoding(recommendation=None): diff --git a/openlp/plugins/songs/lib/mediaitem.py b/openlp/plugins/songs/lib/mediaitem.py index 29f5d6a18..295b39cf5 100644 --- a/openlp/plugins/songs/lib/mediaitem.py +++ b/openlp/plugins/songs/lib/mediaitem.py @@ -457,7 +457,7 @@ class SongMediaItem(MediaManagerItem): verse_index = \ VerseType.from_translated_string(verse_tag) if verse_index is None: - verse_index = VerseType.from_string(verse_tag) + verse_index = VerseType.from_string(verse_tag, True) if verse_index is None: verse_index = VerseType.from_tag(verse_tag) verse_tag = VerseType.TranslatedTags[verse_index].upper()