← Back to team overview

openlp-core team mailing list archive

[Bug 1290246] [NEW] Traceback when search of non existing bible book

 

Public bug reported:

Hello,

Using lp:openlp/2.0  revno 2190. This report is from the support system, but I verified it.
http://support.openlp.org/scp/tickets.php?id=2258

1) Import a bible (for example Afrikaans Byble)
2) Search "Römer 1" using the quick search.

NOTE: The only case this does not happen is when the "Default Bible
Language" is set to "Application Language" and the application language
matches with the input string (here "Römer" is the German book name for
"Romans".

IDEA for trunk: We might want to reconsider our default settings. When I
use German as application language I might want to use German book names
as well as the book names the bible is written in. E. g. when I have an
English Bible study I want to be able to search for "Römer 1" as well as
for "Romans 1". Maybe we should rather guess? I mean I never found a
bible book name in language A which matches to another book name in
another language which were not the same book in the bible. (In other
words, in case the book names match, then the name will mean the same
book.)

EXPECTED:
No Crash.


--- Exception Traceback ---
Traceback (most recent call last):
  File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/mediaitem.py", line 773, in onQuickSearchButton
    self.search_results = self.plugin.manager.get_verses(bible, text)
  File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/manager.py", line 333, in get_verses
    return self.db_cache[bible].get_verses(reflist, show_error)
  File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/db.py", line 436, in get_verses
    db_book = self.get_book_by_book_ref_id(book_id)
  File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/db.py", line 344, in get_book_by_book_ref_id
    return self.get_object_filtered(Book, Book.book_reference_id.like(id))
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
    return self.operate(like_op, other, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 171, in operate
    return op(self.comparator, *other, **kwargs)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
    return a.like(b, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
    return self.operate(like_op, other, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/properties.py", line 251, in operate
    return op(self.__clause_element__(), *other, **kwargs)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
    return a.like(b, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
    return self.operate(like_op, other, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 627, in operate
    return op(self.comparator, *other, **kwargs)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
    return a.like(b, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
    return self.operate(like_op, other, escape=escape)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/default_comparator.py", line 33, in operate
    return o[0](self, self.expr, op, *(other + o[1:]), **kwargs)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/default_comparator.py", line 94, in _boolean_compare
    "Only '=', '!=', 'is_()', 'isnot()' operators can "
ArgumentError: Only '=', '!=', 'is_()', 'isnot()' operators can be used with None/True/False

--- System information ---
Plattform: Linux-3.13.5-1-ARCH-x86_64-with-glibc2.2.5

--- Library Versions ---
Python: 2.7.6
Qt4: 4.8.5
Phonon: 4.7.1
PyQt4: 4.10.3
QtWebkit: 537.21
SQLAlchemy: 0.9.3
SQLAlchemy Migrate: 0.7.2
BeautifulSoup: 3.2.1
lxml: 3.3.1
Chardet: 2.2.1
PyEnchant: 1.6.5
PySQLite: 1.0.1
Mako: 0.9.1
pyUNO bridge: -

** Affects: openlp
     Importance: Undecided
         Status: Confirmed

** Affects: openlp/2.0
     Importance: Undecided
         Status: Confirmed

** Affects: openlp/trunk
     Importance: Undecided
         Status: Confirmed


** Tags: support-system

** Also affects: openlp/2.0
   Importance: Undecided
       Status: New

** Changed in: openlp/2.0
    Milestone: None => 2.0.5

** Changed in: openlp/2.0
       Status: New => Confirmed

** Tags added: support-system

** Also affects: openlp/trunk
   Importance: Undecided
       Status: New

** Changed in: openlp/trunk
       Status: New => Confirmed

-- 
You received this bug notification because you are a member of OpenLP
Core, which is subscribed to OpenLP.
https://bugs.launchpad.net/bugs/1290246

Title:
  Traceback when search of non existing bible book

Status in OpenLP - Worship Presentation Software:
  Confirmed
Status in OpenLP 2.0 series:
  Confirmed
Status in OpenLP trunk series:
  Confirmed

Bug description:
  Hello,

  Using lp:openlp/2.0  revno 2190. This report is from the support system, but I verified it.
  http://support.openlp.org/scp/tickets.php?id=2258

  1) Import a bible (for example Afrikaans Byble)
  2) Search "Römer 1" using the quick search.

  NOTE: The only case this does not happen is when the "Default Bible
  Language" is set to "Application Language" and the application
  language matches with the input string (here "Römer" is the German
  book name for "Romans".

  IDEA for trunk: We might want to reconsider our default settings. When
  I use German as application language I might want to use German book
  names as well as the book names the bible is written in. E. g. when I
  have an English Bible study I want to be able to search for "Römer 1"
  as well as for "Romans 1". Maybe we should rather guess? I mean I
  never found a bible book name in language A which matches to another
  book name in another language which were not the same book in the
  bible. (In other words, in case the book names match, then the name
  will mean the same book.)

  EXPECTED:
  No Crash.

  
  --- Exception Traceback ---
  Traceback (most recent call last):
    File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/mediaitem.py", line 773, in onQuickSearchButton
      self.search_results = self.plugin.manager.get_verses(bible, text)
    File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/manager.py", line 333, in get_verses
      return self.db_cache[bible].get_verses(reflist, show_error)
    File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/db.py", line 436, in get_verses
      db_book = self.get_book_by_book_ref_id(book_id)
    File "/home/andreas/Projects/2.0-OpenLP/2.0/openlp/plugins/bibles/lib/db.py", line 344, in get_book_by_book_ref_id
      return self.get_object_filtered(Book, Book.book_reference_id.like(id))
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
      return self.operate(like_op, other, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/attributes.py", line 171, in operate
      return op(self.comparator, *other, **kwargs)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
      return a.like(b, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
      return self.operate(like_op, other, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/properties.py", line 251, in operate
      return op(self.__clause_element__(), *other, **kwargs)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
      return a.like(b, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
      return self.operate(like_op, other, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 627, in operate
      return op(self.comparator, *other, **kwargs)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 695, in like_op
      return a.like(b, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/operators.py", line 387, in like
      return self.operate(like_op, other, escape=escape)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/default_comparator.py", line 33, in operate
      return o[0](self, self.expr, op, *(other + o[1:]), **kwargs)
    File "/usr/lib/python2.7/site-packages/sqlalchemy/sql/default_comparator.py", line 94, in _boolean_compare
      "Only '=', '!=', 'is_()', 'isnot()' operators can "
  ArgumentError: Only '=', '!=', 'is_()', 'isnot()' operators can be used with None/True/False

  --- System information ---
  Plattform: Linux-3.13.5-1-ARCH-x86_64-with-glibc2.2.5

  --- Library Versions ---
  Python: 2.7.6
  Qt4: 4.8.5
  Phonon: 4.7.1
  PyQt4: 4.10.3
  QtWebkit: 537.21
  SQLAlchemy: 0.9.3
  SQLAlchemy Migrate: 0.7.2
  BeautifulSoup: 3.2.1
  lxml: 3.3.1
  Chardet: 2.2.1
  PyEnchant: 1.6.5
  PySQLite: 1.0.1
  Mako: 0.9.1
  pyUNO bridge: -

To manage notifications about this bug go to:
https://bugs.launchpad.net/openlp/+bug/1290246/+subscriptions


Follow ups

References