diff --git a/expert/browser/report.pt b/expert/browser/report.pt index 15caa68..94c6966 100644 --- a/expert/browser/report.pt +++ b/expert/browser/report.pt @@ -3,7 +3,8 @@
@@ -20,7 +21,12 @@ i18n:attributes="value" />
-
+ +
+ + +
+
diff --git a/expert/browser/report.py b/expert/browser/report.py index b8e1216..c3e1456 100644 --- a/expert/browser/report.py +++ b/expert/browser/report.py @@ -45,6 +45,8 @@ class ReportView(ConceptView): """ A view for defining (editing) a report. """ + resultsRenderer = None # to be defined by subclass + @Lazy def report_macros(self): return self.controller.getTemplateMacros('report', report_template) @@ -57,6 +59,25 @@ class ReportView(ConceptView): def dynamicParams(self): return self.request.form + @Lazy + def report(self): + return self.adapted + + @Lazy + def reportInstance(self): + instance = component.getAdapter(self.report, IReportInstance, + name=self.report.reportType) + instance.view = self + return instance + + @Lazy + def queryFields(self): + ri = self.reportInstance + qf = ri.getAllQueryFields() + if ri.userSettings: + return [f for f in qf if f in ri.userSettings] + return qf + class ResultsView(NodeView): @@ -105,13 +126,6 @@ class ResultsView(NodeView): def report(self): return adapted(self.virtualTargetObject) - @Lazy - def reportInstance(self): - instance = component.getAdapter(self.report, IReportInstance, - name=self.report.reportType) - instance.view = self - return instance - #@Lazy def results(self): return self.reportInstance.getResults(self.params) @@ -221,11 +235,3 @@ class ReportConceptView(ResultsConceptView, ReportView): @Lazy def macro(self): return self.report_macros['main'] - - @Lazy - def queryFields(self): - ri = self.reportInstance - qf = ri.getAllQueryFields() - if ri.userSettings: - return [f for f in qf if f in ri.userSettings] - return qf