add relation field for displaying relation attributes in reports

This commit is contained in:
Helmut Merz 2012-01-22 11:58:39 +01:00
parent 0654140f51
commit 7cb4fb6110

View file

@ -41,30 +41,37 @@ class UrlField(Field):
renderer = 'target'
def getDisplayValue(self, row):
nv = row.parent.context.view.nodeView
if row.context is None: # probably a totals row
return dict(title=u'', url=u'')
nv = row.parent.context.view.nodeView
return dict(title=self.getValue(row),
url=nv.getUrlForTarget(baseObject(row.context)))
class TargetField(Field):
class RelationField(Field):
renderer = 'target'
def getValue(self, row):
return self.getRawValue(row)
def getDisplayValue(self, row):
value = self.getValue(row)
if value is None:
return dict(title=u'', url=u'')
nv = row.parent.context.view.nodeView
return dict(title=value.title,
url=nv.getUrlForTarget(baseObject(value)))
class TargetField(RelationField):
def getValue(self, row):
value = self.getRawValue(row)
if value is None:
return None
return util.getObjectForUid(value)
def getDisplayValue(self, row):
value = self.getValue(row)
if value is None:
return dict(title=u'', url=u'')
view = row.parent.context.view
return dict(title=value.title, url=view.getUrlForTarget(value))
# sub-report stuff