[Checkins]
SVN: zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/d
Another bugfix: if the value wasn't specified,
we used to get a traceback
Marius Gedminas
marius at pov.lt
Thu Nov 16 15:00:55 EST 2006
Log message for revision 71147:
Another bugfix: if the value wasn't specified, we used to get a traceback
instead of a proper "input is missing" form error. The fix is modeled on
zope.app.form.browser.textwidgets.DateI18nWidget._toFormValue.
The reason for the bug is an unfortunate decision of
SimpleInputWidget._getCurrentValueFormInput() to return a raw string when
getInputValue fails. This causes crashes in SimpleInputWidget._getFormValue,
because that raw string is passed to _toFormValue, which expects a datetime
object.
Changed:
U zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/datetimewidget.py
U zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/demo/README.txt
-=-
Modified: zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/datetimewidget.py
===================================================================
--- zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/datetimewidget.py 2006-11-16 19:49:06 UTC (rev 71146)
+++ zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/datetimewidget.py 2006-11-16 20:00:54 UTC (rev 71147)
@@ -319,8 +319,11 @@
def _toFormValue(self, value):
if value == self.context.missing_value:
return self._missing
- value = localizeDateTime(value, self.request)
- return value.strftime(self._format)
+ if value:
+ value = localizeDateTime(value, self.request)
+ return value.strftime(self._format)
+ else:
+ return u''
class DatetimeWidget(DatetimeBase, textwidgets.DatetimeWidget):
Modified: zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/demo/README.txt
===================================================================
--- zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/demo/README.txt 2006-11-16 19:49:06 UTC (rev 71146)
+++ zc.datetimewidget/branches/gintas-dateranges/src/zc/datetimewidget/demo/README.txt 2006-11-16 20:00:54 UTC (rev 71147)
@@ -33,3 +33,12 @@
>>> browser.getControl('End Datetime').value = '2006-11-16T19:46:00Z'
>>> browser.getControl('Change').click()
+If we do not fill them in, we get missing value errors
+
+ >>> browser.getControl('Start Date').value = ''
+ >>> browser.getControl('Start Datetime').value = ''
+ >>> browser.getControl('More dates').value = ''
+ >>> browser.getControl('Change').click()
+ >>> 'Required input is missing' in browser.contents
+ True
+
More information about the Checkins
mailing list