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:
1 parent
94605f943a
commit
4de1d6a03d
3 files changed
+11
-10
No files matched your search
@@ -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)
|
||||
|
||||
Reference in new issue
Block a user