From 7a15251ffc2a8e5c27a624ec755bc3f6c945b612 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Armin=20K=C3=B6hler?= Date: Thu, 17 Mar 2011 20:40:01 +0100 Subject: [PATCH] Clean up changed create_book in cscbible, openlp1, opensong and osis --- .../bibles/forms/bibleimportrequestdialog.py | 2 +- openlp/plugins/bibles/lib/csvbible.py | 15 +- openlp/plugins/bibles/lib/mediaitem.py | 2 +- openlp/plugins/bibles/lib/openlp1.py | 16 +- openlp/plugins/bibles/lib/opensong.py | 17 ++- openlp/plugins/bibles/lib/osis.py | 16 +- resources/forms/bibleimportrequestdialog.ui | 137 ++++++++++++++++++ 7 files changed, 183 insertions(+), 22 deletions(-) create mode 100644 resources/forms/bibleimportrequestdialog.ui diff --git a/openlp/plugins/bibles/forms/bibleimportrequestdialog.py b/openlp/plugins/bibles/forms/bibleimportrequestdialog.py index d58c1df9f..7fcc36932 100644 --- a/openlp/plugins/bibles/forms/bibleimportrequestdialog.py +++ b/openlp/plugins/bibles/forms/bibleimportrequestdialog.py @@ -53,7 +53,7 @@ class Ui_BibleImportRequest(object): font.setBold(True) self.headlineLabel.setFont(font) self.headlineLabel.setObjectName("HeadlineLabel") - self.verticalLayout.addWidget(self.HeadlineLabel) + self.verticalLayout.addWidget(self.headlineLabel) self.infoLabel = QtGui.QLabel(self.widget) self.infoLabel.setObjectName("InfoLabel") self.verticalLayout.addWidget(self.infoLabel) diff --git a/openlp/plugins/bibles/lib/csvbible.py b/openlp/plugins/bibles/lib/csvbible.py index b5644db81..7d1791281 100644 --- a/openlp/plugins/bibles/lib/csvbible.py +++ b/openlp/plugins/bibles/lib/csvbible.py @@ -70,7 +70,7 @@ import chardet import csv from openlp.core.lib import Receiver, translate -from openlp.plugins.bibles.lib.db import BibleDB, Testament +from openlp.plugins.bibles.lib.db import BibleDB, Testament, BiblesResourcesDB log = logging.getLogger(__name__) @@ -86,6 +86,7 @@ class CSVBible(BibleDB): """ log.info(self.__class__.__name__) BibleDB.__init__(self, parent, **kwargs) + self.parent = parent try: self.testamentsfile = kwargs[u'testamentsfile'] except KeyError: @@ -135,7 +136,10 @@ class CSVBible(BibleDB): self.wizard.progressBar.setMinimum(0) self.wizard.progressBar.setMaximum(66) success = True - #TODO: include create_meta language + language = self.parent.mediaItem.importRequest(u'language') + language = BiblesResourcesDB.get_language(language) + language_id = language[u'id'] + self.create_meta(u'language_id', language_id) books_file = None book_list = {} # Populate the Tables @@ -149,10 +153,11 @@ class CSVBible(BibleDB): self.wizard.incrementProgressBar(unicode( translate('BibleDB.Wizard', 'Importing books... %s')) % unicode(line[2], details['encoding'])) - #TODO: change create_book to the new database model - #(name, bk_ref_id, testament) + book_ref_id = self.parent.manager.get_book_ref_id_by_name( + unicode(line[2], details['encoding']), language_id) + book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) self.create_book(unicode(line[2], details['encoding']), - unicode(line[3], details['encoding']), int(line[1])) + book_ref_id, book_details[u'testament_id']) book_list[int(line[0])] = unicode(line[2], details['encoding']) Receiver.send_message(u'openlp_process_events') except (IOError, IndexError): diff --git a/openlp/plugins/bibles/lib/mediaitem.py b/openlp/plugins/bibles/lib/mediaitem.py index 58fa0eec7..1f1a7e2a0 100644 --- a/openlp/plugins/bibles/lib/mediaitem.py +++ b/openlp/plugins/bibles/lib/mediaitem.py @@ -290,7 +290,7 @@ class BibleMediaItem(MediaManagerItem): def importRequest(self, case, name=None): self.import_request = BibleImportRequest(self) if self.import_request.exec_(case, name): - return unicode(self.import_request.RequestComboBox.currentText()) + return unicode(self.import_request.requestComboBox.currentText()) def loadBibles(self): log.debug(u'Loading Bibles') diff --git a/openlp/plugins/bibles/lib/openlp1.py b/openlp/plugins/bibles/lib/openlp1.py index f0e12481a..508add469 100644 --- a/openlp/plugins/bibles/lib/openlp1.py +++ b/openlp/plugins/bibles/lib/openlp1.py @@ -29,7 +29,7 @@ import sqlite from openlp.core.lib import Receiver from openlp.core.ui.wizard import WizardStrings -from openlp.plugins.bibles.lib.db import BibleDB +from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB log = logging.getLogger(__name__) @@ -43,6 +43,7 @@ class OpenLP1Bible(BibleDB): """ log.debug(self.__class__.__name__) BibleDB.__init__(self, parent, **kwargs) + self.parent = parent self.filename = kwargs[u'filename'] def do_import(self): @@ -56,7 +57,11 @@ class OpenLP1Bible(BibleDB): cursor = connection.cursor() except: return False - #TODO: include create_meta language + #Create the bible language + language = self.parent.mediaItem.importRequest(u'language') + language = BiblesResourcesDB.get_language(language) + language_id = language[u'id'] + self.create_meta(u'language_id', language_id) # Create all books. cursor.execute(u'SELECT id, testament_id, name, abbreviation FROM book') books = cursor.fetchall() @@ -69,9 +74,10 @@ class OpenLP1Bible(BibleDB): testament_id = int(book[1]) name = unicode(book[2], u'cp1252') abbreviation = unicode(book[3], u'cp1252') - #TODO: change create_book to the new database model - #(name, bk_ref_id, testament) - self.create_book(name, abbreviation, testament_id) + book_ref_id = self.parent.manager.get_book_ref_id_by_name(name, + language_id) + book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) + self.create_book(name, book_ref_id, book_details[u'testament_id']) # Update the progess bar. self.wizard.incrementProgressBar(WizardStrings.ImportingType % name) # Import the verses for this book. diff --git a/openlp/plugins/bibles/lib/opensong.py b/openlp/plugins/bibles/lib/opensong.py index 62cf12eaf..91b96abf2 100644 --- a/openlp/plugins/bibles/lib/opensong.py +++ b/openlp/plugins/bibles/lib/opensong.py @@ -28,7 +28,7 @@ import logging from lxml import objectify from openlp.core.lib import Receiver, translate -from openlp.plugins.bibles.lib.db import BibleDB +from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB log = logging.getLogger(__name__) @@ -43,6 +43,7 @@ class OpenSongBible(BibleDB): """ log.debug(self.__class__.__name__) BibleDB.__init__(self, parent, **kwargs) + self.parent = parent self.filename = kwargs['filename'] def do_import(self): @@ -61,14 +62,18 @@ class OpenSongBible(BibleDB): file = open(self.filename, u'r') opensong = objectify.parse(file) bible = opensong.getroot() - #TODO: include create_meta language + language = self.parent.mediaItem.importRequest(u'language') + language = BiblesResourcesDB.get_language(language) + language_id = language[u'id'] + self.create_meta(u'language_id', language_id) for book in bible.b: if self.stop_import_flag: break - #TODO: change create_book to the new database model - #(name, bk_ref_id, testament) - db_book = self.create_book(unicode(book.attrib[u'n']), - unicode(book.attrib[u'n'][:4])) + book_ref_id = self.parent.manager.get_book_ref_id_by_name( + unicode(book.attrib[u'n']), language_id) + book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) + db_book = self.create_book(unicode(book.attrib[u'n']), + book_ref_id, book_details[u'testament_id']) for chapter in book.c: if self.stop_import_flag: break diff --git a/openlp/plugins/bibles/lib/osis.py b/openlp/plugins/bibles/lib/osis.py index 05a57bbe4..6c8b2153b 100644 --- a/openlp/plugins/bibles/lib/osis.py +++ b/openlp/plugins/bibles/lib/osis.py @@ -33,7 +33,7 @@ import re from openlp.core.lib import Receiver, translate from openlp.core.utils import AppLocation -from openlp.plugins.bibles.lib.db import BibleDB +from openlp.plugins.bibles.lib.db import BibleDB, BiblesResourcesDB log = logging.getLogger(__name__) @@ -46,6 +46,7 @@ class OSISBible(BibleDB): def __init__(self, parent, **kwargs): log.debug(self.__class__.__name__) BibleDB.__init__(self, parent, **kwargs) + self.parent = parent self.filename = kwargs[u'filename'] fbibles = None self.books = {} @@ -104,7 +105,11 @@ class OSISBible(BibleDB): finally: if detect_file: detect_file.close() - #TODO: include create_meta language with try - except scheme + # Set meta language_id + language = self.parent.mediaItem.importRequest(u'language') + language = BiblesResourcesDB.get_language(language) + language_id = language[u'id'] + self.create_meta(u'language_id', language_id) try: osis = codecs.open(self.filename, u'r', details['encoding']) for file_record in osis: @@ -123,10 +128,13 @@ class OSISBible(BibleDB): testament += 1 #TODO: change create_book to the new database model #(name, bk_ref_id, testament) + book_ref_id = self.parent.manager.get_book_ref_id_by_name( + unicode(self.books[book][0]), language_id) + book_details = BiblesResourcesDB.get_book_by_id(book_ref_id) db_book = self.create_book( unicode(self.books[book][0]), - unicode(self.books[book][1]), - testament) + book_ref_id, + book_details[u'testament_id']) if last_chapter == 0: if book == u'Gen': self.wizard.progressBar.setMaximum(1188) diff --git a/resources/forms/bibleimportrequestdialog.ui b/resources/forms/bibleimportrequestdialog.ui new file mode 100644 index 000000000..5795300f9 --- /dev/null +++ b/resources/forms/bibleimportrequestdialog.ui @@ -0,0 +1,137 @@ + + + BibleImportRequest + + + + 0 + 0 + 400 + 175 + + + + + 0 + 0 + + + + Dialog + + + + + 10 + 15 + 381 + 151 + + + + + + + + Arial + 12 + 75 + true + + + + Choose Book: + + + + + + + The following books cannot be clearly attributed. +Please choose the book it is. + + + + + + + + + Book: + + + + + + + + 0 + 0 + + + + + + + + + + Qt::Vertical + + + + 20 + 40 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + BibleImportRequestButtonBox + accepted() + BibleImportRequest + accept() + + + 248 + 254 + + + 157 + 274 + + + + + BibleImportRequestButtonBox + rejected() + BibleImportRequest + reject() + + + 316 + 260 + + + 286 + 274 + + + + +