From b63b3b3b164c12fc6b5741f4d7d55fd067746540 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Mon, 9 Jul 2012 16:30:36 +0200 Subject: [PATCH] make sure query criteria is a number for a 'number' field --- composer/report/base.py | 3 +++ composer/report/field.py | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/composer/report/base.py b/composer/report/base.py index 712a22f..e591be2 100644 --- a/composer/report/base.py +++ b/composer/report/base.py @@ -162,6 +162,9 @@ class LeafQueryCriteria(BaseQueryCriteria, Element): if comparisonValue in (None, '',): return True value = self.field.getSelectValue(row) + if (self.field.fieldType == 'number' and + isinstance(comparisonValue, basestring)): + comparisonValue = int(comparisonValue) op = operators.get(self.operator) if op is None: op = getattr(standard_operators, self.operator, None) diff --git a/composer/report/field.py b/composer/report/field.py index ae689ac..03319d1 100644 --- a/composer/report/field.py +++ b/composer/report/field.py @@ -72,8 +72,8 @@ class Field(Component): return row.getRawValue(self.name) def getSelectValue(self, row): - return getattr(row, self.name, None) - #return self.getRawValue(row) # better let row control selection... + return getattr(row, self.name, None) # backwards compatibility + # return self.getRawValue(row) # overwrite with this in subclass def getValue(self, row): value = self.getRawValue(row)