From 4de1d6a03d4e2757dccf8011356db4fd6db1820d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Sun, 18 Apr 2010 20:12:49 +0200 Subject: [PATCH] Fix digits attributes in form view - view attribute override field attribute - set default value to (16, 2) everywhere - rename display parameters of ProgressBar --- tryton/gui/window/view_form/model/field.py | 4 ++-- .../gui/window/view_form/view/form_gtk/float.py | 2 ++ .../window/view_form/view/form_gtk/progressbar.py | 15 +++++++-------- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/tryton/gui/window/view_form/model/field.py b/tryton/gui/window/view_form/model/field.py index d8efcbc4c5..66363dc9d7 100644 --- a/tryton/gui/window/view_form/model/field.py +++ b/tryton/gui/window/view_form/model/field.py @@ -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])))): diff --git a/tryton/gui/window/view_form/view/form_gtk/float.py b/tryton/gui/window/view_form/view/form_gtk/float.py index e1cd862253..74003c1f46 100644 --- a/tryton/gui/window/view_form/view/form_gtk/float.py +++ b/tryton/gui/window/view_form/view/form_gtk/float.py @@ -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: diff --git a/tryton/gui/window/view_form/view/form_gtk/progressbar.py b/tryton/gui/window/view_form/view/form_gtk/progressbar.py index de33a93725..5fdfa1cc80 100644 --- a/tryton/gui/window/view_form/view/form_gtk/progressbar.py +++ b/tryton/gui/window/view_form/view/form_gtk/progressbar.py @@ -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)