From d5bab7dc32d1f523061798092e6db1b57ae6c631 Mon Sep 17 00:00:00 2001 From: Helmut Merz Date: Wed, 30 Nov 2011 11:39:07 +0100 Subject: [PATCH] define new UrlField for showing a link e.g. on a title; minor fix in handling dynamic parameters --- expert/field.py | 9 +++++++++ expert/report.py | 7 ++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/expert/field.py b/expert/field.py index 0a9d002..ff46650 100644 --- a/expert/field.py +++ b/expert/field.py @@ -24,6 +24,15 @@ from cybertools.composer.report.field import Field from loops import util +class UrlField(Field): + + renderer = 'target' + + def getDisplayValue(self, row): + nv = row.parent.context.view.nodeView + return dict(title=self.getValue(row), url=nv.getUrlForTarget(row.context)) + + class TargetField(Field): renderer = 'target' diff --git a/expert/report.py b/expert/report.py index 89a8925..c89a2cd 100644 --- a/expert/report.py +++ b/expert/report.py @@ -94,9 +94,10 @@ class ReportInstance(BaseReport): crit = self.queryCriteria if crit is None: return [] - for k, v in dynaParams.items(): - if k in crit.parts.keys(): - crit.parts[k].value = v + if dynaParams is not None: + for k, v in dynaParams.items(): + if k in crit.parts.keys(): + crit.parts[k].value = v parts = Jeep(crit.parts) result = list(self.selectObjects(parts)) # may modify parts qc = CompoundQueryCriteria(parts)