############################################################################## # # Copyright (c) 2005 Zope Corporation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """Five-compatible version of DateDisplayWidget. This version omits reference to request.locale and uses standard date formatting function strftime. """ from zope.app.form.browser.widget import renderElement #from zope.app.i18n import ZopeMessageFactory as _ from zope.app.form.browser.textwidgets import DateDisplayWidget, escape class DateDisplayWidget(DateDisplayWidget): """Date display widget. The `cssClass` and `displayStyle` attributes may be set to control the formatting of the value. `displayStyle` must be one of 'full', 'long', 'medium', 'short', or None ('' is accepted an an alternative to None to support provision of a value from ZCML). """ def __call__(self): if self._renderedValueSet(): content = self._data else: content = self.context.default if content == self.context.missing_value: return "" # there should be format conversion dependent by locale # and self.displayStyle format = '%x' if self._category=='dateTime': format = '%x %X' content = content.strftime(format) return renderElement("span", contents=escape(content), cssClass=self.cssClass) class DatetimeDisplayWidget(DateDisplayWidget): """Datetime display widget. The `cssClass` and `displayStyle` attributes may be set to control the formatting of the value. `displayStyle` must be one of 'full', 'long', 'medium', 'short', or None ('' is accepted an an alternative to None to support provision of a value from ZCML). """ cssClass = "dateTime" _category = "dateTime"