X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=bluechips%2Fmodel%2Ftypes.py;h=d4454813bd7e5463fc513518359b755b53abd25f;hb=ac41cefa3569ceca9ebee894d2c333360b4158fc;hp=30c2ce31e93127e5ea88ad3444819e6a0cad2e32;hpb=e9671e5adfe5f1c5366c34cd9df98f77b115f7d8;p=bluechips.git diff --git a/bluechips/model/types.py b/bluechips/model/types.py index 30c2ce3..d445481 100644 --- a/bluechips/model/types.py +++ b/bluechips/model/types.py @@ -14,7 +14,9 @@ class Currency(object): __metaclass__ = SmartSubclass(int) __old_values__ = WeakValueDictionary() def __new__(cls, value): - if isinstance(value, str): + if value is None: + value = 0 + elif isinstance(value, str): value = int(float(value) * 100) else: value = int(value) @@ -73,7 +75,7 @@ class Currency(object): """ Get to the formatted string without the dollar sign """ - return str(self)[1:] + return str(self).replace('$', '') def __repr__(self): return '%s("%s")' % (self.__class__.__name__, str(self)) @@ -81,7 +83,7 @@ class Currency(object): sign = '-' if self.value < 0 else '' cents = abs(self.value) % 100 dollars = (abs(self.value) - cents) / 100 - return '$%s%s.%.02d' % (sign, dollars, cents) + return '%s$%s.%.02d' % (sign, dollars, cents) class DBCurrency(sa.types.TypeDecorator): """ @@ -97,3 +99,4 @@ class DBCurrency(sa.types.TypeDecorator): def convert_result_value(self, value, engine): return Currency(value) + process_result_value = convert_result_value