[Erp5-report] r13295 - /erp5/trunk/products/ERP5Form/DurationField.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Thu Mar 8 18:54:49 CET 2007
Author: romain
Date: Thu Mar 8 18:54:47 2007
New Revision: 13295
URL: http://svn.erp5.org?rev=13295&view=rev
Log:
Change rendering of duration: it's better inline.
Modified:
erp5/trunk/products/ERP5Form/DurationField.py
Modified: erp5/trunk/products/ERP5Form/DurationField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/DurationField.py?rev=13295&r1=13294&r2=13295&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/DurationField.py (original)
+++ erp5/trunk/products/ERP5Form/DurationField.py Thu Mar 8 18:54:47 2007
@@ -41,7 +41,7 @@
HOUR_IN_SECOND = 3600
# DAY_IN_SECOND = 86400
-class DurationWidget(FormulatorPatch.FloatWidget):
+class DurationWidget(FormulatorPatch.IntegerWidget):
"""
Duration Widget is used to enter time duration.
It may be used in movement of Labour (in Task, Calendat Period, ...).
@@ -51,7 +51,7 @@
The field purpose is to display second quantity in hour, minute and second,
in order to make it more readable.
"""
- def render_htmlgrid(self, field, key, value, REQUEST):
+ def render_view(self, field, value):
sub_field_render_list = []
for title, sub_key, convertion in (('Hour', 'hour', HOUR_IN_SECOND),
('Minute', 'minute', MINUTE_IN_SECOND)):
@@ -59,27 +59,40 @@
sub_value = ''
else:
sub_value, value = divmod(value, convertion)
- sub_field_render_list.append((title, self.render_sub_field(
+ sub_field_render_list.append(str(sub_value))
+ # Render second
+ sub_field_render_list.append(str(value))
+ return ':'.join(sub_field_render_list)
+
+ def render(self, field, key, value, REQUEST):
+ sub_field_render_list = []
+ for title, sub_key, convertion in (('Hour', 'hour', HOUR_IN_SECOND),
+ ('Minute', 'minute', MINUTE_IN_SECOND)):
+ if value == '':
+ sub_value = ''
+ else:
+ sub_value, value = divmod(value, convertion)
+ sub_field_render_list.append(self.render_sub_field(
field, key,
- sub_value, REQUEST, sub_key)))
+ sub_value, REQUEST, sub_key))
# Render second
- sub_field_render_list.append(('Second', self.render_sub_field(
+ sub_field_render_list.append(self.render_sub_field(
field, key,
- value, REQUEST, 'second')))
- return sub_field_render_list
+ value, REQUEST, 'second'))
+ return ':'.join(sub_field_render_list)
def render_sub_field(self, field, key, value, REQUEST, keyword):
"""
Render dynamically a subfield
"""
- return FormulatorPatch.FloatWidgetInstance.render(
+ return FormulatorPatch.IntegerFieldWidgetInstance.render(
field,
field.generate_subfield_key(keyword,
key=key),
value,
REQUEST)
-class DurationValidator(Validator.FloatValidator):
+class DurationValidator(Validator.IntegerValidator):
"""
Duration Validator
"""
@@ -98,7 +111,7 @@
"""
Validates a subfield (as part of field validation).
"""
- sub_field_value = Validator.FloatValidatorInstance.validate(
+ sub_field_value = Validator.IntegerValidatorInstance.validate(
field,
field.generate_subfield_key(
sub_key,
@@ -112,17 +125,6 @@
second_value = sub_field_value * convertion
return second_value
- def render_htmlgrid(self, value=None, REQUEST=None, key=None):
- """
- render_htmlgrid returns a list of tuple (title, html render)
- We will use title generated by the widget.
- """
- key = self.generate_field_key(key=key)
- value = self._get_default(key, value, REQUEST)
- html = self.widget.render_htmlgrid(self, key, value, REQUEST)
- return html
-
-
DurationWidgetInstance = DurationWidget()
DurationFieldValidatorInstance = DurationValidator()
More information about the Erp5-report
mailing list