add date field for reporting

This commit is contained in:
Helmut Merz 2012-02-10 07:52:18 +01:00
parent 8feec5dc34
commit 86da0990e1

View file

@ -20,6 +20,8 @@
Field definitions for reports.
"""
from zope.i18n.locales import locales
from cybertools.composer.report.field import Field
from cybertools.composer.report.result import ResultSet
from loops.common import baseObject
@ -36,6 +38,24 @@ class TextField(Field):
return row.parent.context.view.renderText(value, self.format)
class DateField(Field):
format = ('date', 'short')
def getDisplayValue(self, row):
value = self.getRawValue(row)
if not value:
return u''
nv = row.parent.context.view.nodeView
langInfo = nv and getattr(nv, 'languageInfo', None) or None
if langInfo:
locale = locales.getLocale(langInfo.language)
fmt = locale.dates.getFormatter(*self.format)
return fmt.format(value)
else:
return value.isoformat()[:10]
class UrlField(Field):
renderer = 'target'