OpenLP importer can't handle new song songbook DB structure (AttributeError: 'OldSong' object has no attribute 'book')
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenLP |
Fix Committed
|
High
|
Raoul Snyman | ||
2.4 |
Fix Released
|
Undecided
|
Raoul Snyman |
Bug Description
Importing songs that are using the new database format via import menu > OpenLP 2 or First Time Wizard causes traceback.
Database structure has been changed from 2.2.1
2.2.1 songs.sqlite does not have a table named "songs_songbooks"
Songbook details are stored in “songs” table with fields:
“song_book_id” and “song_number”
The problem seems to be that the importer tries to look for the
songbook data from the "songs" table.
This traceback appears on 2.4.4 when trying to import a 2.4 >
database into OpenLP 2.4 >
Traceback (most recent call last):
File "openlp\
File "openlp\
File "openlp\
AttributeError: 'OldSong' object has no attribute 'book'
This also means 2.4> databases are not compatible with 2.2.1. <
Is there a benefit in using the new db structure or should this be reverted?
If 2.4> database is imported to 2.2.1 this traceback appears
and OpenLP crashes with "Fatal error! Openlp returned -1"
Traceback (most recent call last):
File "c:\Python33\
File "<string>", line 2, in join_condition
File "c:\Python33\
sqlalchemy.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<string>", line 44, in <module>
File "D:\OpenLP_
File "D:\OpenLP_
File "D:\OpenLP_
File "D:\bzr\
importer.
File "D:\OpenLP_
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
File "c:\Python33\
sqlalchemy.
Related branches
- Tim Bentley: Pending requested
-
Diff: 102 lines (+31/-7)2 files modifiedopenlp/plugins/songs/lib/importers/openlp.py (+30/-6)
openlp/plugins/songs/lib/importers/songimport.py (+1/-1)
- OpenLP Core: Pending requested
-
Diff: 114285 lines (+91012/-6647) (has conflicts)394 files modified.bzrignore (+6/-1)
.coveragerc (+0/-5)
nose2.cfg (+22/-0)
openlp/.version (+4/-0)
openlp/core/__init__.py (+61/-23)
openlp/core/common/__init__.py (+218/-17)
openlp/core/common/actions.py (+390/-0)
openlp/core/common/db.py (+72/-0)
openlp/core/common/httputils.py (+255/-0)
openlp/core/common/languagemanager.py (+207/-0)
openlp/core/common/languages.py (+201/-0)
openlp/core/common/openlpmixin.py (+9/-2)
openlp/core/common/registry.py (+39/-8)
openlp/core/common/settings.py (+25/-13)
openlp/core/common/uistrings.py (+40/-5)
openlp/core/common/versionchecker.py (+173/-0)
openlp/core/lib/__init__.py (+54/-43)
openlp/core/lib/db.py (+40/-37)
openlp/core/lib/exceptions.py (+7/-1)
openlp/core/lib/filedialog.py (+2/-2)
openlp/core/lib/htmlbuilder.py (+249/-235)
openlp/core/lib/imagemanager.py (+4/-4)
openlp/core/lib/mediamanageritem.py (+24/-31)
openlp/core/lib/plugin.py (+6/-7)
openlp/core/lib/pluginmanager.py (+14/-12)
openlp/core/lib/projector/constants.py (+233/-153)
openlp/core/lib/projector/db.py (+63/-45)
openlp/core/lib/projector/pjlink1.py (+101/-33)
openlp/core/lib/renderer.py (+19/-13)
openlp/core/lib/screen.py (+9/-7)
openlp/core/lib/searchedit.py (+11/-15)
openlp/core/lib/serviceitem.py (+15/-10)
openlp/core/lib/settingstab.py (+1/-1)
openlp/core/lib/theme.py (+32/-7)
openlp/core/lib/ui.py (+4/-4)
openlp/core/resources.py (+50027/-2)
openlp/core/ui/__init__.py (+1/-3)
openlp/core/ui/aboutdialog.py (+116/-97)
openlp/core/ui/aboutform.py (+2/-2)
openlp/core/ui/advancedtab.py (+84/-103)
openlp/core/ui/exceptiondialog.py (+19/-9)
openlp/core/ui/exceptionform.py (+49/-34)
openlp/core/ui/filerenamedialog.py (+1/-1)
openlp/core/ui/firsttimeform.py (+59/-115)
openlp/core/ui/firsttimelanguagedialog.py (+1/-1)
openlp/core/ui/firsttimelanguageform.py (+1/-1)
openlp/core/ui/firsttimewizard.py (+52/-22)
openlp/core/ui/formattingtagcontroller.py (+13/-10)
openlp/core/ui/formattingtagdialog.py (+1/-1)
openlp/core/ui/formattingtagform.py (+4/-3)
openlp/core/ui/generaltab.py (+88/-6)
openlp/core/ui/lib/__init__.py (+34/-0)
openlp/core/ui/lib/colorbutton.py (+82/-0)
openlp/core/ui/lib/dockwidget.py (+56/-0)
openlp/core/ui/lib/historycombobox.py (+84/-0)
openlp/core/ui/lib/listpreviewwidget.py (+239/-0)
openlp/core/ui/lib/listwidgetwithdnd.py (+139/-0)
openlp/core/ui/lib/mediadockmanager.py (+71/-0)
openlp/core/ui/lib/spelltextedit.py (+204/-0)
openlp/core/ui/lib/toolbar.py (+90/-0)
openlp/core/ui/lib/treewidgetwithdnd.py (+144/-0)
openlp/core/ui/lib/wizard.py (+311/-0)
openlp/core/ui/maindisplay.py (+44/-27)
openlp/core/ui/mainwindow.py (+152/-124)
openlp/core/ui/media/__init__.py (+16/-10)
openlp/core/ui/media/mediacontroller.py (+198/-108)
openlp/core/ui/media/mediaplayer.py (+69/-2)
openlp/core/ui/media/playertab.py (+10/-3)
openlp/core/ui/media/systemplayer.py (+76/-24)
openlp/core/ui/media/vendor/mediainfoWrapper.py (+140/-0)
openlp/core/ui/media/vlcplayer.py (+57/-21)
openlp/core/ui/media/webkitplayer.py (+62/-145)
openlp/core/ui/plugindialog.py (+6/-14)
openlp/core/ui/pluginform.py (+28/-28)
openlp/core/ui/printservicedialog.py (+3/-2)
openlp/core/ui/projector/editform.py (+35/-36)
openlp/core/ui/projector/manager.py (+128/-90)
openlp/core/ui/projector/sourceselectform.py (+65/-2)
openlp/core/ui/projector/tab.py (+1/-1)
openlp/core/ui/serviceitemeditdialog.py (+1/-1)
openlp/core/ui/servicemanager.py (+69/-37)
openlp/core/ui/servicenoteform.py (+1/-1)
openlp/core/ui/settingsdialog.py (+1/-1)
openlp/core/ui/settingsform.py (+5/-2)
openlp/core/ui/shortcutlistdialog.py (+1/-1)
openlp/core/ui/shortcutlistform.py (+6/-5)
openlp/core/ui/slidecontroller.py (+143/-80)
openlp/core/ui/starttimedialog.py (+1/-1)
openlp/core/ui/starttimeform.py (+3/-3)
openlp/core/ui/themeform.py (+52/-10)
openlp/core/ui/themelayoutdialog.py (+1/-1)
openlp/core/ui/thememanager.py (+38/-30)
openlp/core/ui/themewizard.py (+41/-15)
openlp/plugins/alerts/alertsplugin.py (+10/-7)
openlp/plugins/alerts/forms/alertdialog.py (+1/-1)
openlp/plugins/alerts/lib/alertsmanager.py (+1/-1)
openlp/plugins/alerts/lib/alertstab.py (+7/-5)
openlp/plugins/bibles/bibleplugin.py (+10/-49)
openlp/plugins/bibles/forms/__init__.py (+3/-21)
openlp/plugins/bibles/forms/bibleimportform.py (+261/-23)
openlp/plugins/bibles/forms/booknamedialog.py (+1/-1)
openlp/plugins/bibles/forms/editbibledialog.py (+7/-4)
openlp/plugins/bibles/forms/editbibleform.py (+8/-7)
openlp/plugins/bibles/forms/languagedialog.py (+1/-1)
openlp/plugins/bibles/forms/languageform.py (+5/-5)
openlp/plugins/bibles/lib/__init__.py (+10/-8)
openlp/plugins/bibles/lib/bibleimport.py (+234/-0)
openlp/plugins/bibles/lib/biblestab.py (+63/-5)
openlp/plugins/bibles/lib/db.py (+37/-263)
openlp/plugins/bibles/lib/importers/csvbible.py (+102/-103)
openlp/plugins/bibles/lib/importers/http.py (+62/-40)
openlp/plugins/bibles/lib/importers/opensong.py (+119/-121)
openlp/plugins/bibles/lib/importers/osis.py (+141/-165)
openlp/plugins/bibles/lib/importers/sword.py (+102/-0)
openlp/plugins/bibles/lib/importers/wordproject.py (+169/-0)
openlp/plugins/bibles/lib/importers/zefania.py (+29/-42)
openlp/plugins/bibles/lib/manager.py (+108/-80)
openlp/plugins/bibles/lib/mediaitem.py (+354/-79)
openlp/plugins/bibles/lib/upgrade.py (+2/-164)
openlp/plugins/bibles/lib/versereferencelist.py (+14/-8)
openlp/plugins/custom/forms/editcustomdialog.py (+1/-1)
openlp/plugins/custom/forms/editcustomslidedialog.py (+3/-2)
openlp/plugins/custom/lib/customxmlhandler.py (+1/-1)
openlp/plugins/custom/lib/db.py (+1/-1)
openlp/plugins/custom/lib/mediaitem.py (+5/-9)
openlp/plugins/images/imageplugin.py (+1/-1)
openlp/plugins/images/lib/imagetab.py (+3/-2)
openlp/plugins/images/lib/mediaitem.py (+26/-23)
openlp/plugins/media/forms/mediaclipselectorform.py (+21/-12)
openlp/plugins/media/lib/mediaitem.py (+48/-40)
openlp/plugins/media/lib/mediatab.py (+1/-1)
openlp/plugins/media/mediaplugin.py (+35/-9)
openlp/plugins/presentations/lib/impresscontroller.py (+6/-6)
openlp/plugins/presentations/lib/mediaitem.py (+13/-10)
openlp/plugins/presentations/lib/messagelistener.py (+23/-19)
openlp/plugins/presentations/lib/pdfcontroller.py (+50/-32)
openlp/plugins/presentations/lib/powerpointcontroller.py (+19/-10)
openlp/plugins/presentations/lib/pptviewcontroller.py (+4/-5)
openlp/plugins/presentations/lib/presentationcontroller.py (+6/-5)
openlp/plugins/presentations/lib/presentationtab.py (+7/-6)
openlp/plugins/presentations/presentationplugin.py (+3/-3)
openlp/plugins/remotes/html/assets/jquery.js (+9404/-0)
openlp/plugins/remotes/html/assets/jquery.min.js (+4/-0)
openlp/plugins/remotes/html/assets/jquery.mobile.js (+9357/-0)
openlp/plugins/remotes/html/assets/jquery.mobile.min.css (+2/-0)
openlp/plugins/remotes/html/assets/jquery.mobile.min.js (+2/-0)
openlp/plugins/remotes/html/css/main.css (+32/-0)
openlp/plugins/remotes/html/css/openlp.css (+31/-0)
openlp/plugins/remotes/html/css/stage.css (+64/-0)
openlp/plugins/remotes/html/index.html (+17/-0)
openlp/plugins/remotes/html/js/main.js (+45/-0)
openlp/plugins/remotes/html/js/openlp.js (+384/-0)
openlp/plugins/remotes/html/js/stage.js (+170/-0)
openlp/plugins/remotes/html/main.html (+4/-4)
openlp/plugins/remotes/html/stage.html (+4/-4)
openlp/plugins/remotes/lib/httprouter.py (+33/-24)
openlp/plugins/remotes/lib/httpserver.py (+5/-3)
openlp/plugins/remotes/lib/remotetab.py (+20/-8)
openlp/plugins/songs/forms/authorsdialog.py (+1/-1)
openlp/plugins/songs/forms/duplicatesongremovalform.py (+4/-3)
openlp/plugins/songs/forms/editsongdialog.py (+1/-1)
openlp/plugins/songs/forms/editsongform.py (+51/-31)
openlp/plugins/songs/forms/editversedialog.py (+3/-2)
openlp/plugins/songs/forms/editverseform.py (+5/-5)
openlp/plugins/songs/forms/mediafilesdialog.py (+1/-1)
openlp/plugins/songs/forms/mediafilesform.py (+1/-1)
openlp/plugins/songs/forms/songbookdialog.py (+1/-1)
openlp/plugins/songs/forms/songexportform.py (+11/-6)
openlp/plugins/songs/forms/songimportform.py (+7/-3)
openlp/plugins/songs/forms/songmaintenancedialog.py (+1/-1)
openlp/plugins/songs/forms/songmaintenanceform.py (+35/-15)
openlp/plugins/songs/forms/songreviewwidget.py (+1/-1)
openlp/plugins/songs/forms/songselectdialog.py (+3/-2)
openlp/plugins/songs/forms/songselectform.py (+6/-2)
openlp/plugins/songs/forms/topicsdialog.py (+1/-1)
openlp/plugins/songs/lib/__init__.py (+14/-9)
openlp/plugins/songs/lib/db.py (+6/-4)
openlp/plugins/songs/lib/importer.py (+80/-44)
openlp/plugins/songs/lib/importers/cclifile.py (+8/-7)
openlp/plugins/songs/lib/importers/dreambeam.py (+6/-4)
openlp/plugins/songs/lib/importers/easyslides.py (+12/-10)
openlp/plugins/songs/lib/importers/easyworship.py (+45/-7)
openlp/plugins/songs/lib/importers/foilpresenter.py (+3/-2)
openlp/plugins/songs/lib/importers/lyrix.py (+2/-2)
openlp/plugins/songs/lib/importers/mediashout.py (+23/-8)
openlp/plugins/songs/lib/importers/openlp.py (+38/-1)
openlp/plugins/songs/lib/importers/openlyrics.py (+6/-4)
openlp/plugins/songs/lib/importers/openoffice.py (+2/-3)
openlp/plugins/songs/lib/importers/opensong.py (+5/-5)
openlp/plugins/songs/lib/importers/opspro.py (+265/-0)
openlp/plugins/songs/lib/importers/powerpraise.py (+3/-2)
openlp/plugins/songs/lib/importers/powersong.py (+12/-11)
openlp/plugins/songs/lib/importers/presentationmanager.py (+5/-2)
openlp/plugins/songs/lib/importers/propresenter.py (+77/-17)
openlp/plugins/songs/lib/importers/songimport.py (+6/-5)
openlp/plugins/songs/lib/importers/songshowplus.py (+13/-9)
openlp/plugins/songs/lib/importers/sundayplus.py (+1/-1)
openlp/plugins/songs/lib/importers/videopsalm.py (+5/-1)
openlp/plugins/songs/lib/importers/wordsofworship.py (+6/-6)
openlp/plugins/songs/lib/importers/worshipassistant.py (+10/-7)
openlp/plugins/songs/lib/importers/worshipcenterpro.py (+4/-2)
openlp/plugins/songs/lib/importers/zionworx.py (+7/-6)
openlp/plugins/songs/lib/mediaitem.py (+203/-40)
openlp/plugins/songs/lib/openlyricsexport.py (+7/-6)
openlp/plugins/songs/lib/openlyricsxml.py (+18/-11)
openlp/plugins/songs/lib/songcompare.py (+3/-3)
openlp/plugins/songs/lib/songselect.py (+54/-3)
openlp/plugins/songs/lib/songstab.py (+4/-4)
openlp/plugins/songs/lib/upgrade.py (+1/-1)
openlp/plugins/songs/reporting.py (+106/-0)
openlp/plugins/songs/songsplugin.py (+30/-12)
openlp/plugins/songusage/forms/songusagedeletedialog.py (+1/-1)
openlp/plugins/songusage/forms/songusagedetaildialog.py (+1/-1)
openlp/plugins/songusage/forms/songusagedetailform.py (+12/-9)
openlp/plugins/songusage/songusageplugin.py (+1/-1)
pylintrc (+379/-0)
resources/images/openlp-2.qrc (+14/-31)
resources/images/openlp-about-logo.svg (+0/-323)
resources/images/openlp-default-dualdisplay.svg (+0/-489)
resources/images/openlp-logo.svg (+98/-347)
resources/images/openlp-splash-screen.svg (+0/-296)
scripts/appveyor-webhook.py (+137/-0)
scripts/appveyor.yml (+84/-0)
scripts/check_dependencies.py (+2/-0)
scripts/clean_up_resources.py (+99/-0)
scripts/jenkins_script.py (+2/-1)
scripts/translation_utils.py (+5/-1)
setup.py (+2/-2)
tests/functional/openlp_core/test_init.py (+12/-24)
tests/functional/openlp_core_common/test_actions.py (+259/-0)
tests/functional/openlp_core_common/test_applocation.py (+10/-10)
tests/functional/openlp_core_common/test_common.py (+9/-9)
tests/functional/openlp_core_common/test_db.py (+104/-0)
tests/functional/openlp_core_common/test_httputils.py (+274/-0)
tests/functional/openlp_core_common/test_init.py (+403/-0)
tests/functional/openlp_core_common/test_languagemanager.py (+66/-0)
tests/functional/openlp_core_common/test_languages.py (+109/-0)
tests/functional/openlp_core_common/test_projector_utilities.py (+9/-5)
tests/functional/openlp_core_common/test_registry.py (+41/-4)
tests/functional/openlp_core_common/test_registrymixin.py (+2/-2)
tests/functional/openlp_core_common/test_registryproperties.py (+74/-29)
tests/functional/openlp_core_common/test_settings.py (+6/-6)
tests/functional/openlp_core_common/test_uistrings.py (+1/-1)
tests/functional/openlp_core_common/test_versionchecker.py (+63/-0)
tests/functional/openlp_core_lib/test_db.py (+5/-5)
tests/functional/openlp_core_lib/test_file_dialog.py (+3/-3)
tests/functional/openlp_core_lib/test_formattingtags.py (+2/-2)
tests/functional/openlp_core_lib/test_htmlbuilder.py (+212/-174)
tests/functional/openlp_core_lib/test_image_manager.py (+3/-3)
tests/functional/openlp_core_lib/test_lib.py (+280/-83)
tests/functional/openlp_core_lib/test_mediamanageritem.py (+4/-4)
tests/functional/openlp_core_lib/test_pluginmanager.py (+22/-22)
tests/functional/openlp_core_lib/test_projector_pjlink1.py (+317/-0)
tests/functional/openlp_core_lib/test_projectordb.py (+115/-10)
tests/functional/openlp_core_lib/test_renderer.py (+50/-6)
tests/functional/openlp_core_lib/test_screen.py (+1/-1)
tests/functional/openlp_core_lib/test_serviceitem.py (+13/-12)
tests/functional/openlp_core_lib/test_theme.py (+72/-33)
tests/functional/openlp_core_lib/test_ui.py (+13/-13)
tests/functional/openlp_core_ui/test_aboutform.py (+36/-0)
tests/functional/openlp_core_ui/test_exceptionform.py (+207/-0)
tests/functional/openlp_core_ui/test_first_time.py (+57/-0)
tests/functional/openlp_core_ui/test_firsttimeform.py (+10/-24)
tests/functional/openlp_core_ui/test_formattingtagscontroller.py (+4/-4)
tests/functional/openlp_core_ui/test_formattingtagsform.py (+2/-2)
tests/functional/openlp_core_ui/test_maindisplay.py (+109/-8)
tests/functional/openlp_core_ui/test_mainwindow.py (+72/-16)
tests/functional/openlp_core_ui/test_servicemanager.py (+250/-9)
tests/functional/openlp_core_ui/test_settingsform.py (+11/-11)
tests/functional/openlp_core_ui/test_shortcutlistdialog.py (+60/-0)
tests/functional/openlp_core_ui/test_slidecontroller.py (+280/-60)
tests/functional/openlp_core_ui/test_themeform.py (+2/-2)
tests/functional/openlp_core_ui/test_thememanager.py (+9/-9)
tests/functional/openlp_core_ui/test_themetab.py (+84/-0)
tests/functional/openlp_core_ui_lib/test_color_button.py (+199/-0)
tests/functional/openlp_core_ui_lib/test_listpreviewwidget.py (+503/-0)
tests/functional/openlp_core_ui_lib/test_listwidgetwithdnd.py (+104/-0)
tests/functional/openlp_core_ui_media/test_mediacontroller.py (+22/-21)
tests/functional/openlp_core_ui_media/test_systemplayer.py (+547/-0)
tests/functional/openlp_core_ui_media/test_vlcplayer.py (+46/-53)
tests/functional/openlp_core_ui_media/test_webkitplayer.py (+2/-2)
tests/functional/openlp_plugins/alerts/test_manager.py (+3/-3)
tests/functional/openlp_plugins/bibles/test_bibleimport.py (+615/-0)
tests/functional/openlp_plugins/bibles/test_bibleserver.py (+12/-12)
tests/functional/openlp_plugins/bibles/test_csvimport.py (+273/-18)
tests/functional/openlp_plugins/bibles/test_db.py (+33/-0)
tests/functional/openlp_plugins/bibles/test_lib.py (+22/-18)
tests/functional/openlp_plugins/bibles/test_manager.py (+69/-0)
tests/functional/openlp_plugins/bibles/test_mediaitem.py (+118/-3)
tests/functional/openlp_plugins/bibles/test_opensongimport.py (+348/-36)
tests/functional/openlp_plugins/bibles/test_osisimport.py (+376/-23)
tests/functional/openlp_plugins/bibles/test_swordimport.py (+110/-0)
tests/functional/openlp_plugins/bibles/test_versereferencelist.py (+5/-5)
tests/functional/openlp_plugins/bibles/test_wordprojectimport.py (+220/-0)
tests/functional/openlp_plugins/bibles/test_zefaniaimport.py (+11/-13)
tests/functional/openlp_plugins/custom/test_mediaitem.py (+3/-3)
tests/functional/openlp_plugins/images/test_imagetab.py (+2/-2)
tests/functional/openlp_plugins/images/test_lib.py (+11/-11)
tests/functional/openlp_plugins/media/test_mediaplugin.py (+28/-4)
tests/functional/openlp_plugins/presentations/test_impresscontroller.py (+5/-5)
tests/functional/openlp_plugins/presentations/test_mediaitem.py (+3/-3)
tests/functional/openlp_plugins/presentations/test_messagelistener.py (+4/-4)
tests/functional/openlp_plugins/presentations/test_pdfcontroller.py (+77/-3)
tests/functional/openlp_plugins/presentations/test_powerpointcontroller.py (+10/-10)
tests/functional/openlp_plugins/presentations/test_pptviewcontroller.py (+7/-7)
tests/functional/openlp_plugins/presentations/test_presentationcontroller.py (+10/-10)
tests/functional/openlp_plugins/remotes/test_remotetab.py (+6/-6)
tests/functional/openlp_plugins/remotes/test_router.py (+39/-14)
tests/functional/openlp_plugins/songs/test_editsongform.py (+36/-2)
tests/functional/openlp_plugins/songs/test_editverseform.py (+1/-1)
tests/functional/openlp_plugins/songs/test_ewimport.py (+15/-15)
tests/functional/openlp_plugins/songs/test_foilpresenterimport.py (+5/-5)
tests/functional/openlp_plugins/songs/test_lib.py (+55/-28)
tests/functional/openlp_plugins/songs/test_mediaitem.py (+244/-9)
tests/functional/openlp_plugins/songs/test_mediashout.py (+228/-0)
tests/functional/openlp_plugins/songs/test_openlpimporter.py (+75/-0)
tests/functional/openlp_plugins/songs/test_openlyricsexport.py (+1/-1)
tests/functional/openlp_plugins/songs/test_openlyricsimport.py (+5/-5)
tests/functional/openlp_plugins/songs/test_openoffice.py (+2/-2)
tests/functional/openlp_plugins/songs/test_opensongimport.py (+3/-3)
tests/functional/openlp_plugins/songs/test_opsproimport.py (+173/-0)
tests/functional/openlp_plugins/songs/test_presentationmanagerimport.py (+0/-2)
tests/functional/openlp_plugins/songs/test_propresenterimport.py (+16/-4)
tests/functional/openlp_plugins/songs/test_songbeamerimport.py (+4/-4)
tests/functional/openlp_plugins/songs/test_songselect.py (+78/-32)
tests/functional/openlp_plugins/songs/test_songshowplusimport.py (+5/-5)
tests/functional/openlp_plugins/songs/test_sundayplusimport.py (+0/-2)
tests/functional/openlp_plugins/songs/test_videopsalm.py (+0/-3)
tests/functional/openlp_plugins/songs/test_worshipassistantimport.py (+0/-2)
tests/functional/openlp_plugins/songs/test_worshipcenterproimport.py (+34/-31)
tests/functional/openlp_plugins/songs/test_zionworximport.py (+1/-1)
tests/functional/openlp_plugins/songusage/test_songusage.py (+19/-3)
tests/functional/test_init.py (+4/-4)
tests/interfaces/openlp_core_common/test_utils.py (+81/-0)
tests/interfaces/openlp_core_lib/test_pluginmanager.py (+10/-0)
tests/interfaces/openlp_core_lib/test_searchedit.py (+23/-12)
tests/interfaces/openlp_core_ui/test_filerenamedialog.py (+3/-3)
tests/interfaces/openlp_core_ui/test_mainwindow.py (+3/-3)
tests/interfaces/openlp_core_ui/test_projectoreditform.py (+25/-27)
tests/interfaces/openlp_core_ui/test_projectormanager.py (+2/-2)
tests/interfaces/openlp_core_ui/test_projectorsourceform.py (+3/-3)
tests/interfaces/openlp_core_ui/test_servicemanager.py (+8/-8)
tests/interfaces/openlp_core_ui/test_servicenotedialog.py (+1/-1)
tests/interfaces/openlp_core_ui/test_settings_form.py (+7/-7)
tests/interfaces/openlp_core_ui/test_shortcutlistform.py (+10/-10)
tests/interfaces/openlp_core_ui/test_starttimedialog.py (+2/-2)
tests/interfaces/openlp_core_ui/test_thememanager.py (+4/-4)
tests/interfaces/openlp_core_ui_lib/__init__.py (+21/-0)
tests/interfaces/openlp_core_ui_lib/test_historycombobox.py (+64/-0)
tests/interfaces/openlp_core_ui_lib/test_listpreviewwidget.py (+106/-0)
tests/interfaces/openlp_core_ul_media_vendor/__init__.py (+21/-0)
tests/interfaces/openlp_core_ul_media_vendor/test_mediainfoWrapper.py (+51/-0)
tests/interfaces/openlp_plugins/bibles/forms/test_bibleimportform.py (+17/-3)
tests/interfaces/openlp_plugins/bibles/test_lib_http.py (+27/-11)
tests/interfaces/openlp_plugins/bibles/test_lib_manager.py (+4/-4)
tests/interfaces/openlp_plugins/bibles/test_lib_parse_reference.py (+5/-5)
tests/interfaces/openlp_plugins/custom/forms/test_customform.py (+24/-5)
tests/interfaces/openlp_plugins/custom/forms/test_customslideform.py (+2/-2)
tests/interfaces/openlp_plugins/media/forms/test_mediaclipselectorform.py (+4/-4)
tests/interfaces/openlp_plugins/songs/forms/test_authorsform.py (+7/-7)
tests/interfaces/openlp_plugins/songs/forms/test_editsongform.py (+7/-7)
tests/interfaces/openlp_plugins/songs/forms/test_editverseform.py (+5/-5)
tests/interfaces/openlp_plugins/songs/forms/test_topicsform.py (+3/-3)
tests/resources/bibles/dk1933.json (+10/-10)
tests/resources/bibles/kjv.json (+10/-10)
tests/resources/bibles/rst.json (+10/-10)
tests/resources/bibles/web.json (+10/-10)
tests/resources/bibles/wordproject_chapter.htm (+248/-0)
tests/resources/bibles/wordproject_index.htm (+222/-0)
tests/resources/opensongsongs/Amazing Grace with bad CCLI (+56/-0)
tests/resources/opensongsongs/Amazing Grace without CCLI.json (+42/-0)
tests/resources/opsprosongs/Amazing Grace.json (+21/-0)
tests/resources/opsprosongs/Amazing Grace3.json (+31/-0)
tests/resources/opsprosongs/You are so faithful.json (+31/-0)
tests/resources/opsprosongs/amazing grace.txt (+24/-0)
tests/resources/opsprosongs/amazing grace2.txt (+29/-0)
tests/resources/opsprosongs/amazing grace3.txt (+31/-0)
tests/resources/opsprosongs/you are so faithfull.txt (+37/-0)
tests/resources/presentationmanagersongs/Agnus Dei.json (+0/-14)
tests/resources/presentationmanagersongs/Agnus Dei.sng (+0/-34)
tests/resources/propresentersongs/Amazing Grace.pro5 (+520/-0)
tests/resources/propresentersongs/Amazing Grace.pro6 (+490/-0)
tests/resources/propresentersongs/Vaste Grond.json (+0/-34)
tests/resources/propresentersongs/Vaste Grond.pro4 (+0/-1)
tests/resources/songshowplussongs/cleanse-me.json (+38/-0)
tests/resources/sundayplussongs/Abba Fader.ptf (+0/-8)
tests/resources/sundayplussongs/abba-fader.json (+0/-13)
tests/resources/videopsalmsongs/as-safe-a-stronghold2.json (+35/-0)
tests/resources/videopsalmsongs/videopsalm-as-safe-a-stronghold2.json (+47/-0)
tests/resources/worshipassistantsongs/lift_up_your_heads.csv (+0/-40)
tests/resources/worshipassistantsongs/lift_up_your_heads.json (+0/-13)
tests/utils/__init__.py (+1/-1)
tests/utils/test_bzr_tags.py (+1/-1)
tests/utils/test_pylint.py (+113/-0)
description: | updated |
summary: |
- OpenLP importer AttributeError: 'OldSong' object has no attribute 'book' + OpenLP importer can't handle new song songbook DB structure + (AttributeError: 'OldSong' object has no attribute 'book') |
Changed in openlp: | |
status: | New → Confirmed |
importance: | Undecided → Medium |
Changed in openlp: | |
importance: | Medium → High |
Changed in openlp: | |
assignee: | nobody → Azaziah (suutari-olli) |
Changed in openlp: | |
milestone: | none → 2.9.1 |
Which version of OpenLP was used to create the database?