loops/expert/browser/report.pt

196 lines
6.8 KiB
XML
Executable file

<html i18n:domain="loops">
<div metal:define-macro="main">
<div tal:define="report item/reportInstance;
reportView nocall:item;
renderer item/resultsRenderer"
tal:attributes="class string:content-$level;">
<div metal:use-macro="item/report_macros/header" />
<tal:renderer condition="renderer">
<div metal:use-macro="renderer" />
</tal:renderer>
</div>
</div>
<div metal:define-macro="main_params">
<div tal:define="report item/reportInstance;
reportView nocall:item"
tal:attributes="class string:content-$level;">
<div metal:use-macro="item/report_macros/header" />
<tal:results condition="request/show_results|nothing">
<div metal:use-macro="item/resultsRenderer" />
</tal:results>
</div>
</div>
<div metal:define-macro="embedded_report">
<div tal:define="report item/reportInstance;
reportView nocall:item"
tal:attributes="class string:content-$level;">
<div metal:use-macro="item/report_macros/header" />
<div metal:use-macro="item/resultsRenderer" />
</div>
</div>
<div metal:define-macro="header">
<metal:block use-macro="view/concept_macros/concepttitle" />
<form method="get" name="report_data" class="report-meta">
<input type="hidden" name="show_results" value="True" />
<tal:hidden define="params item/dynamicParams">
<input type="hidden"
tal:repeat="name params"
tal:condition="nothing"
tal:attributes="name name;
value params/?name" />
<input type="hidden"
tal:define="viewName request/loops.viewName|nothing"
tal:condition="viewName"
tal:attributes="name string:loops.viewName;
value viewName" />
<input type="hidden"
tal:define="sortinfo request/sortinfo_results|nothing"
tal:condition="sortinfo"
tal:attributes="name string:sortinfo_results;
value sortinfo" />
<input type="hidden" name="report_name"
tal:define="reportName item/reportName"
tal:condition="reportName"
tal:attributes="value reportName" />
</tal:hidden>
<div metal:use-macro="item/report_macros/params" />
<div metal:define-macro="buttons">
<input type="submit" name="report_execute" value="Execute Report"
onclick="this.form.action = ''"
tal:attributes="value item/reportExecuteTitle|string:Execute Report"
tal:condition="item/queryFields"
i18n:attributes="value" />
<input type="submit" name="report_download"
tal:condition="item/reportDownload"
tal:attributes="value item/reportDownloadTitle;
onclick string:
this.form.action = '${item/reportDownload}'"
i18n:attributes="value" />
</div>
<br />
</form>
<tal:ignore condition="nothing">
<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>
</tal:ignore>
</div>
<metal:block define-macro="params">
<metal:block use-macro="item/report_macros/query" />
</metal:block>
<metal:block define-macro="query"
tal:define="criteria
item/reportInstance/queryCriteria/parts|nothing">
<table>
<tr>
<tal:column repeat="field item/queryFields">
<td style="padding-right: 5pt">
<tal:field define="fieldType field/fieldType;
name field/name;
crit python:criteria and criteria.get(name);
value crit/comparisonValue|nothing">
<b><span tal:content="field/title"
i18n:translate="" />:&nbsp;</b><br />
<metal:field use-macro="item/report_macros/?fieldType" />
</tal:field>
</td>
</tal:column>
</tr>
</table>
<br />
</metal:block>
<table metal:define-macro="field_group">
<tr tal:repeat="field field/subfields">
<tal:field define="fieldType field/fieldType;
name field/name;
crit python:criteria and criteria.get(name);
value crit/comparisonValue|nothing">
<td><b><span tal:content="field/title"
i18n:translate="" />:&nbsp;</b></td>
<td><metal:field use-macro="item/report_macros/?fieldType" /></td>
</tal:field>
</tr>
</table>
<metal:field define-macro="textline">
<input tal:attributes="name name;
value value" />
</metal:field>
<metal:field define-macro="number">
<input tal:attributes="name name;
value value" />
</metal:field>
<metal:field define-macro="date">
<input dojoType="dijit.form.DateTextBox" style="width: 8em"
constraints="{datePattern: 'd.M.y',
min: '1980-01-01', max: '2020-12-31'}"
tal:attributes="name name;
value value" />
</metal:field>
<metal:field define-macro="selection">
<select tal:attributes="name name">
<option />
<option tal:repeat="opt python:field.getVocabularyItems(
context=item.adapted, request=request)"
tal:attributes="value opt/token;
selected python:value == opt['token']"
tal:content="opt/title" />
</select>
</metal:field>
<div style="width: 170px"
metal:define-macro="relation"
tal:define="uid value/uid|nothing;
title value/longName|value/title|nothing;">
<div dojoType="dojox.data.QueryReadStore"
tal:attributes="url string:${field/storeUrl}&project=${item/adapted/uid};
jsId string:${name}_search_store" >
</div>
<input type="hidden" name="nodeUrl" id="nodeUrl"
tal:attributes="value item/view/nodeView/url" />
<div tal:attributes="id string:${name}_values">
<div>
<input dojoType="dijit.form.FilteringSelect"
autoComplete="False"
labelAttr="label"
searchDelay="400"
scrollOnFocus="false"
tal:attributes="store string:${name}_search_store;
name string:${name}_search;
id string:${name}_search;
onChange string:setEnhancedRelation('$name');" />
</div>
</div>
<script lang="javascript"
tal:condition="value"
tal:content="string:setEnhancedRelation('$name', '$uid', '$title');">
</script>
</div>
</html>