allow viewing report 'as such' (without results, but children)

This commit is contained in:
Helmut Merz 2015-03-21 10:42:25 +01:00
parent 4c449d5dc4
commit ef61a836a4
2 changed files with 29 additions and 17 deletions

View file

@ -3,7 +3,8 @@
<div metal:define-macro="main">
<div tal:define="report item/reportInstance;
reportView nocall:item"
reportView nocall:item;
renderer item/resultsRenderer"
tal:attributes="class string:content-$level;">
<metal:block use-macro="view/concept_macros/concepttitle" />
<form method="post" name="report_data">
@ -20,7 +21,12 @@
i18n:attributes="value" />
</div>
</form>
<div metal:use-macro="item/resultsRenderer" />
<tal:list condition="renderer">
<div metal:use-macro="renderer" />
</tal:list>
<tal:list condition="not:renderer">
<div metal:use-macro="view/concept_macros/conceptchildren" />
</tal:list>
</div>
</div>

View file

@ -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