add date field with locale-dependent output formatting
This commit is contained in:
parent
d3ac5bc8bc
commit
4db06cd046
1 changed files with 20 additions and 0 deletions
|
@ -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'
|
||||
|
|
Loading…
Add table
Reference in a new issue