forked from openlp/openlp
adapt the second_bible searchfunction to the new book name scheme
This commit is contained in:
parent
7a15251ffc
commit
a23d902fa5
@ -357,6 +357,17 @@ class BibleDB(QtCore.QObject, Manager):
|
||||
"""
|
||||
return self.get_all_objects(Book, order_by_ref=Book.id)
|
||||
|
||||
def get_book_by_book_ref_id(self, id):
|
||||
"""
|
||||
Return a book object from the database.
|
||||
|
||||
``book``
|
||||
The name of the book to return.
|
||||
"""
|
||||
log.debug(u'BibleDb.get_book_by_book_ref_id("%s")', id)
|
||||
db_book = self.get_object_filtered(Book, Book.book_reference_id.like(id))
|
||||
return db_book
|
||||
|
||||
def get_verses(self, reference_list, en_reference_list):
|
||||
"""
|
||||
This is probably the most used function. It retrieves the list of
|
||||
@ -863,6 +874,26 @@ class SpellingDB(QtCore.QObject, Manager):
|
||||
return None
|
||||
else:
|
||||
return id[0]
|
||||
|
||||
def get_book_name_by_reference_id(self, id, language):
|
||||
"""
|
||||
Return the name of a book by id and language.
|
||||
|
||||
``id``
|
||||
The name to search the id.
|
||||
|
||||
``language``
|
||||
The language for which should be searched
|
||||
"""
|
||||
log.debug(u'SpellingDB.get_book_name_by_reference_id("%s", "%s")', id,
|
||||
language)
|
||||
name = self.session.query(Spelling.name)\
|
||||
.filter(Spelling.book_reference_id.like(id))\
|
||||
.filter(Spelling.language_id.like(language)).first()
|
||||
if not name:
|
||||
return None
|
||||
else:
|
||||
return unicode(name[0])
|
||||
|
||||
def create_spelling(self, name, book_reference_id, language_id):
|
||||
"""
|
||||
|
@ -255,7 +255,7 @@ class BibleManager(object):
|
||||
book = self.get_book_ref(book, int(language_id.value))
|
||||
return self.db_cache[bible].get_verse_count(book, chapter)
|
||||
|
||||
def get_verses(self, bible, versetext):
|
||||
def get_verses(self, bible, versetext, secondbible=False):
|
||||
"""
|
||||
Parses a scripture reference, fetches the verses from the Bible
|
||||
specified, and returns a list of ``Verse`` objects.
|
||||
@ -286,13 +286,29 @@ class BibleManager(object):
|
||||
return None
|
||||
reflist = parse_reference(versetext)
|
||||
if reflist:
|
||||
log.debug(u'reflist:%s', reflist)
|
||||
# if we use a second bible we have to rename the book names
|
||||
if secondbible:
|
||||
log.debug(u'BibleManager.get_verses("secondbible true")')
|
||||
meta = self.db_cache[bible].get_object(BibleMeta,
|
||||
u'language_id')
|
||||
language_id = meta.value
|
||||
new_reflist = []
|
||||
for item in reflist:
|
||||
if item:
|
||||
book = self.get_book_ref(item[0])
|
||||
book_ref_id = self.parent.manager.\
|
||||
get_book_ref_id_by_name(book, language_id)
|
||||
book = self.db_cache[bible].get_book_by_book_ref_id(
|
||||
book_ref_id)
|
||||
new_reflist.append((book.name, item[1], item[2], item[3]))
|
||||
reflist = new_reflist
|
||||
log.debug(u'BibleManager.get_verses("reflist: %s")', reflist)
|
||||
en_reflist = []
|
||||
for item in reflist:
|
||||
if item:
|
||||
book = self.get_book_ref(item[0])
|
||||
en_reflist.append((book, item[1], item[2], item[3]))
|
||||
log.debug(u'en_reflist:%s', en_reflist)
|
||||
log.debug(u'BibleManager.get_verses("en_reflist: %s")', en_reflist)
|
||||
return self.db_cache[bible].get_verses(reflist, en_reflist)
|
||||
else:
|
||||
Receiver.send_message(u'openlp_information_message', {
|
||||
|
@ -482,7 +482,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||
self.search_results = self.parent.manager.get_verses(bible, versetext)
|
||||
if second_bible:
|
||||
self.second_search_results = self.parent.manager.get_verses(
|
||||
second_bible, versetext)
|
||||
second_bible, versetext, True)
|
||||
if self.advancedClearComboBox.currentIndex() == 0:
|
||||
self.listView.clear()
|
||||
if self.listView.count() != 0:
|
||||
@ -509,7 +509,7 @@ class BibleMediaItem(MediaManagerItem):
|
||||
self.search_results = self.parent.manager.get_verses(bible, text)
|
||||
if second_bible and self.search_results:
|
||||
self.second_search_results = self.parent.manager.get_verses(
|
||||
second_bible, text)
|
||||
second_bible, text, True)
|
||||
else:
|
||||
# We are doing a 'Text Search'.
|
||||
Receiver.send_message(u'cursor_busy')
|
||||
|
Loading…
Reference in New Issue
Block a user