Fix digits attributes in form view

- view attribute override field attribute
- set default value to (16, 2) everywhere
- rename display parameters of ProgressBar
This commit is contained in:
Cédric Krier committed 2010-04-18 20:12:49 +02:00
1 parent 94605f943a
commit 4de1d6a03d
3 files changed
+11 -10

No files matched your search

+2 -2
View File
@@ -180,7 +180,7 @@ class FloatField(CharField):
internal = record.value.get(self.name)
prev_modified = record.modified
self.set(record, value)
digits = record.expr_eval(self.attrs.get('digits', (12, 2)))
digits = record.expr_eval(self.attrs.get('digits', (16, 2)))
if abs(float(internal or 0.0) - float(record.value[self.name] or 0.0)) \
>= (10.0**(-int(digits[1]))):
if not self.get_state_attrs(record).get('readonly', False):
@@ -201,7 +201,7 @@ class NumericField(CharField):
internal = record.value.get(self.name)
prev_modified = record.modified
self.set(record, value)
digits = record.expr_eval(self.attrs.get('digits', (12, 2)))
digits = record.expr_eval(self.attrs.get('digits', (16, 2)))
if abs((internal or Decimal('0.0')) - \
(record.value[self.name] or Decimal('0.0'))) \
>= Decimal(str(10.0**(-int(digits[1])))):
@@ -24,6 +24,8 @@ class Float(Integer):
if not field:
self.entry.set_text('')
return False
self.digits = self.attrs.get('digits', field.attrs.get('digits',
(16, 2)))
if isinstance(self.digits, str):
digits = record.expr_eval(self.digits)
else:
@@ -17,23 +17,22 @@ class ProgressBar(WidgetInterface):
def __init__(self, field_name, model_name, window, attrs=None):
super(ProgressBar, self).__init__(field_name, model_name, window,
parent, attrs=attrs)
self.digits = attrs.get('digits', (16, 2))
self.widget = gtk.ProgressBar()
orientation = self.orientations.get(attrs.get('orientation',
'left_to_right'), gtk.PROGRESS_LEFT_TO_RIGHT)
self.widget.set_orientation(orientation)
def display(self, model, model_field):
super(ProgressBar, self).display(model, model_field)
if not model_field:
def display(self, record, field):
super(ProgressBar, self).display(record, field)
if not field:
self.widget.set_text('')
self.widget.set_fraction(0.0)
return False
value = float(model_field.get(model) or 0.0)
value = float(field.get(record) or 0.0)
digits = self.attrs.get('digits', field.attrs.get('digits',
(16, 2)))
if isinstance(self.digits, str):
digits = self.record.expr_eval(self.digits)
else:
digits = self.digits
digits = record.expr_eval(self.digits)
self.widget.set_text(locale.format('%.' + str(digits[1]) + 'f',
value, True))
self.widget.set_fraction(value / 100.0)