From 22c3c76a5ac581b7e7c71dca3c676f976c4429ed Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Sat, 14 Jul 2012 21:35:19 +0100 Subject: [PATCH 1/3] Fixes https://bugs.launchpad.net/openlp/+bug/1015524 Note: If a title is not present in the song, it is still added. I feel this is the right action, as it apears that that is how it was in Foil Presenter --- .../plugins/songs/lib/foilpresenterimport.py | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 2f17f02bc..f77b2f379 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -483,8 +483,9 @@ class FoilPresenter(object): # Process verse order verse_order = [] verse_strophenr = [] - for strophennummer in foilpresenterfolie.reihenfolge.strophennummer: - verse_strophenr.append(strophennummer) + if hasattr(foilpresenterfolie, u'reihenfolge.strophennummer'): + for strophennummer in foilpresenterfolie.reihenfolge.strophennummer: + verse_strophenr.append(strophennummer) # Currently we do not support different "parts"! if u'0' in temp_verse_order: for vers in temp_verse_order_backup: @@ -538,12 +539,13 @@ class FoilPresenter(object): ``song`` The song object. """ - for title_string in foilpresenterfolie.titel.titelstring: - if not song.title: - song.title = self._child(title_string) - song.alternate_title = u'' - else: - song.alternate_title = self._child(title_string) + if hasattr(foilpresenterfolie, u'titel.titelstring'): + for title_string in foilpresenterfolie.titel.titelstring: + if not song.title: + song.title = self._child(title_string) + song.alternate_title = u'' + else: + song.alternate_title = self._child(title_string) def _process_topics(self, foilpresenterfolie, song): """ From b37bf5022c3b42146dc4109f2b5a21ddf2a520ed Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Sat, 14 Jul 2012 22:10:20 +0100 Subject: [PATCH 2/3] Now uses the first line of the first verse if no title present --- openlp/plugins/songs/lib/foilpresenterimport.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index f77b2f379..744fafcf8 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -546,6 +546,11 @@ class FoilPresenter(object): song.alternate_title = u'' else: song.alternate_title = self._child(title_string) + else: + # Use first line of first verse + #if hasattr(foilpresenterfolie, u'strophen.strophe'): + first_line = self._child(foilpresenterfolie.strophen.strophe.text_) + song.title = first_line.split('\n')[0] def _process_topics(self, foilpresenterfolie, song): """ From ae37f749f1e39b56ab45696308b738cfab0a4291 Mon Sep 17 00:00:00 2001 From: Philip Ridout Date: Sun, 15 Jul 2012 09:03:37 +0100 Subject: [PATCH 3/3] A real fix this time! --- openlp/plugins/songs/lib/foilpresenterimport.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openlp/plugins/songs/lib/foilpresenterimport.py b/openlp/plugins/songs/lib/foilpresenterimport.py index 744fafcf8..0397d41cb 100644 --- a/openlp/plugins/songs/lib/foilpresenterimport.py +++ b/openlp/plugins/songs/lib/foilpresenterimport.py @@ -483,9 +483,11 @@ class FoilPresenter(object): # Process verse order verse_order = [] verse_strophenr = [] - if hasattr(foilpresenterfolie, u'reihenfolge.strophennummer'): + try: for strophennummer in foilpresenterfolie.reihenfolge.strophennummer: verse_strophenr.append(strophennummer) + except AttributeError: + pass # Currently we do not support different "parts"! if u'0' in temp_verse_order: for vers in temp_verse_order_backup: @@ -539,16 +541,15 @@ class FoilPresenter(object): ``song`` The song object. """ - if hasattr(foilpresenterfolie, u'titel.titelstring'): + try: for title_string in foilpresenterfolie.titel.titelstring: if not song.title: song.title = self._child(title_string) song.alternate_title = u'' else: song.alternate_title = self._child(title_string) - else: + except AttributeError: # Use first line of first verse - #if hasattr(foilpresenterfolie, u'strophen.strophe'): first_line = self._child(foilpresenterfolie.strophen.strophe.text_) song.title = first_line.split('\n')[0]