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.
|
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'
|
||||||
|
|
Loading…
Add table
Reference in a new issue