[POS-commit] r5353 - in stoqlib/trunk/stoqlib: gui/base
Johan Dahlin
jdahlin at async.com.br
Fri Nov 17 12:46:51 BRST 2006
Author: jdahlin
Date: Fri Nov 17 12:46:50 2006
New Revision: 5353
Removed:
stoqlib/trunk/stoqlib/common.py
Modified:
stoqlib/trunk/stoqlib/gui/base/search.py
Log:
Get rid of common.py
Modified: stoqlib/trunk/stoqlib/gui/base/search.py
==============================================================================
--- stoqlib/trunk/stoqlib/gui/base/search.py (original)
+++ stoqlib/trunk/stoqlib/gui/base/search.py Fri Nov 17 12:46:50 2006
@@ -38,7 +38,6 @@
from sqlobject.sqlbuilder import LIKE, AND, func, OR
from sqlobject.col import SOUnicodeCol, SOIntCol, SODateTimeCol, SODateCol
-from stoqlib.common import is_integer, is_float
from stoqlib.database.database import rollback_and_begin
from stoqlib.database.columns import AbstractDecimalCol, SOPriceCol
from stoqlib.gui.base.columns import FacetColumn, ForeignKeyColumn
@@ -344,17 +343,15 @@
q = LIKE(func.UPPER(table_field), search_str)
query.append(q)
- @argcheck(str, list)
+ @argcheck(float, list)
def _set_query_float(self, search_str, query):
- search_str = float(search_str)
for field_name, table_type in self.decimal_fields:
table_field = getattr(table_type.q, field_name)
q = table_field == search_str
query.append(q)
- @argcheck(str, list)
+ @argcheck(int, list)
def _set_query_int(self, search_str, query):
- search_str = int(search_str)
for field_name, table_type in self.int_fields:
table_field = getattr(table_type.q, field_name)
q = table_field == search_str
@@ -393,10 +390,20 @@
"""
query = []
if search_str:
- if is_integer(search_str):
- self._set_query_int(search_str, query)
- elif is_float(search_str):
- self._set_query_float(search_str, query)
+ # Do the try/except separated from the set_query_* calls to avoid
+ # catch too ValueError:s inside the function calls
+ try:
+ value = int(search_str)
+ except ValueError:
+ try:
+ value = float(search_str)
+ except ValueError:
+ value = search_str
+
+ if isinstance(value, int):
+ self._set_query_int(value, query)
+ elif isinstance(value, float):
+ self._set_query_float(value, query)
else:
# Instead of checking for another type, perform later a
# query for string fields and for any search string.
More information about the POS-commit
mailing list