new report field RelationField

This commit is contained in:
Helmut Merz 2012-01-20 13:30:16 +01:00
parent 335c52e3cb
commit 2426e580ff

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