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. Field definitions for reports.
""" """
from zope.i18n.locales import locales
from cybertools.composer.report.field import Field from cybertools.composer.report.field import Field
from cybertools.composer.report.result import ResultSet from cybertools.composer.report.result import ResultSet
from loops.common import baseObject from loops.common import baseObject
@ -36,6 +38,24 @@ class TextField(Field):
return row.parent.context.view.renderText(value, self.format) 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): class UrlField(Field):
renderer = 'target' renderer = 'target'