========
Datetime
========
Let's setup all required adapters using zcml. This makes sure we test
the real configuration. Let's render the widgets in different
modes and try to extract the value form an request.
>>> import datetime
>>> import z3c.form
>>> import zope.schema
12 o'clock
----------
Test widgets 12 o'clock PM. (12h (noon) is 12 PM wenn using AM/PM, 24h/0h is
12 AM).
>>> field = zope.schema.Datetime(default=datetime.datetime(2007, 4, 1, 12))
>>> widget = self.setupWidget(field)
>>> widget.update()
>>> widget.extract() is z3c.form.interfaces.NOVALUE
True
INPUT_MODE
''''''''''
Render without AM/PM support:
>>> widget.ampm = False
>>> widget.mode == z3c.form.interfaces.INPUT_MODE
True
>>> print widget.render()
/
/
:
>>> widget.request = self.testrequest(
... form={'bar-day': '1',
... 'bar-month': '4',
... 'bar-year': '2007',
... 'bar-hour': '12',
... 'bar-min': '00',
... 'bar-empty-marker': '1',
... }
... )
>>> widget.extract()
('2007', '4', '1', '12', '00')
Render with AM/PM support:
>>> widget.ampm = True
>>> print widget.render()
/
/
:
>>> widget.request = self.testrequest(
... form={'bar-day': '1',
... 'bar-month': '4',
... 'bar-year': '2007',
... 'bar-hour': '12',
... 'bar-min': '00',
... 'bar-ampm': 'PM',
... 'bar-empty-marker': '1',
... }
... )
>>> widget.extract()
('2007', '4', '1', '12', '00')
DISPLAY_MODE
''''''''''''
>>> widget.mode = z3c.form.interfaces.DISPLAY_MODE
>>> print widget.render()
4/1/07 12:00 PM
HIDDEN_MODE
'''''''''''
>>> widget.mode = z3c.form.interfaces.HIDDEN_MODE
>>> print widget.render()
>>> widget.request = self.testrequest(form={'bar': '4/1/07 12:00 PM'})
>>> widget.extract()
('2007', '4', '1', '12', '0')
13 o'clock
----------
Same as above, but with at 13h / 1 PM.
INPUT_MODE
''''''''''
>>> field = zope.schema.Datetime(default=datetime.datetime(2007, 4, 1, 13))
>>> widget = self.setupWidget(field)
>>> widget.ampm = True
>>> widget.update()
>>> widget.extract() is z3c.form.interfaces.NOVALUE
True
>>> print widget.render()
/
/
:
>>> widget.request = self.testrequest(
... form={'bar-day': '1',
... 'bar-month': '4',
... 'bar-year': '2007',
... 'bar-hour': '01',
... 'bar-min': '00',
... 'bar-ampm': 'PM',
... 'bar-empty-marker': '1',
... }
... )
>>> widget.extract()
('2007', '4', '1', '13', '00')
>>> print widget.show_jquerytools_dateinput_js()