diff --git a/expert/field.py b/expert/field.py index 7c50b60..5664c54 100644 --- a/expert/field.py +++ b/expert/field.py @@ -39,6 +39,25 @@ class TextField(Field): return row.parent.context.view.renderText(value, self.format) +class DecimalField(Field): + + format = '###,###,##0.##' + + def getDisplayValue(self, row): + value = self.getRawValue(row) + if not value: + return u'' + if not isinstance(value, float): + value = float(value) + nv = row.parent.context.view.nodeView + langInfo = nv and getattr(nv, 'languageInfo', None) or None + if langInfo: + locale = locales.getLocale(langInfo.language) + fmt = locale.numbers.getFormatter('decimal') + return fmt.format(value) + return '%.2f' % value + + class DateField(Field): format = ('date', 'short') diff --git a/organize/tracking/browser.py b/organize/tracking/browser.py index f5743ea..9f33af1 100644 --- a/organize/tracking/browser.py +++ b/organize/tracking/browser.py @@ -49,7 +49,7 @@ class BaseTrackView(TrackView): task = self.task if task is None: return self.metadata['taskId'] - return getattr(task, 'title', getName(task)) + return getattr(task, 'title', None) or getName(task) @Lazy def taskUrl(self):