<html xmlns:tal="http://xml.zope.org/namespaces/tal"
xmlns:metal="http://xml.zope.org/namespaces/metal"
metal:use-macro="here/main_template/macros/master">
<span tal:condition="nothing">
Template description: Batching view of the collector issues.
</span>
<body>
<div metal:fill-slot="header"
tal:define="global collector_header_present python: 1">
<div metal:use-macro="here/collector_macros/macros/collector_header">
COLLECTOR HEADER
</div>
</div>
<div metal:fill-slot="main">
<div tal:condition="not: collector_header_present|nothing">
<!-- Master template has no "header" macro... -->
<div metal:use-macro="here/collector_macros/macros/collector_header">
COLLECTOR HEADER
</div>
</div>
<!-- This is the desktop area -->
<div class="Desktop"
tal:define="Batch python:modules['ZTUtils'].Batch;
pysutil modules/Products.PythonScripts.standard;
strmod modules/string;
cap nocall: strmod/capitalize;
split nocall: strmod/split;
DateTime nocall: modules/DateTime/DateTime;
BATCHSIZE_STR request/batch_size
| here/batch_size
| python: 10;
BATCHSIZE python: int(BATCHSIZE_STR);
TITLELEN python: 110;
DESCRLEN python: 200;
b_start python: request.get('b_start', 0);
searching
python: (request.get('searching') != 'yep'
and (request.set('status',
['Pending', 'Accepted'])));
items here/collector_search;
batch python: Batch(items, BATCHSIZE, int(b_start), orphan=0);
prev batch/previous;
next batch/next|nothing;
last_batch python: max(int(here.length()) - BATCHSIZE, 1)">
<table class="FormLayout" cellspacing="0" border="0">
<tr bgcolor="#ccffcc">
<td colspan="3">
<div metal:use-macro="here/collector_macros/macros/issue_batch_nav">
ISSUE-BATCH NAVIGATION
</div>
</td>
</tr>
<tbody tal:repeat="itemnum python: range(len(batch))">
<tr bgcolor="ALTERNATING"
tal:attributes="bgcolor alternatingcolor"
tal:define="global item python: batch[itemnum];
itemurl item/getURL;
itemtype item/Type|nothing;
icon item/getIcon|item/icon|nothing;
odd repeat/itemnum/odd;
global alternatingcolor python:
['#ffffff', '#eeeeee'][odd]">
<td>
<a href=""
tal:attributes="href itemurl">
<img src="" alt="Issue" border="0"
tal:condition="icon"
tal:attributes="src icon">
<span tal:replace="itemtype"
tal:condition="not: icon"></span>
</a>
</td>
<td>
<a href="ITEMURL" tal:attributes="href itemurl">
<span tal:replace="item/id">ID</span>
</a>
</td>
<td>
<a href="ITEMURL" tal:attributes="href itemurl">
<b>
<span tal:condition="item/Title"
tal:replace="python:
item.Title[:TITLELEN]
+ (item.Title[TITLELEN:] and '...')">
TITLE
</span>
</b>
</a>
</td>
</tr>
<tr tal:attributes="bgcolor alternatingcolor"
tal:define="crdate item/created;
moddate item/modified;
global numcmts python: int(item.action_number)-1;
datesdiff python: ((moddate - crdate) * 86400) > 30">
<td> </td>
<td> </td>
<td>
From
<span tal:replace="item/submitter_id|nothing">SUBMITTER ID</span
><span tal:condition="numcmts">.</span>
<span tal:condition="not: item/submitter_id|nothing">
<em>???</em></span>
<span tal:replace="python: here.aCompact(crdate)">CREATEDATE
</span><span tal:condition="python: datesdiff"> ...
<span tal:replace="python: here.aCompact(moddate)">
MODDATE</span>
</span>
</td>
</tr>
<tr tal:attributes="bgcolor alternatingcolor"
tal:define="security python: item.security_related;
confidential python: split(item.status, '_')[-1]
== 'confidential';
plrlcmts python: (numcmts != 1) and 's' or ''">
<td> </td>
<td> </td>
<td NOWRAP>
<!-- The color indicates whether the item is security-related, and
parenthesizing indicates that a security-related item has not
yet reached a completed state, ie is still confidential. -->
<font color="SECURITY COLOR"
tal:attributes="color python:
(security and 'brown' or 'black')">
<em>
<span tal:content="python: (confidential and '(' or '')
+ cap(split(item.status,
'_')[0])
+ (confidential and ')' or '')">
STATUS</span>
</em>
</font>
<span tal:replace="python: '%s/%s'
% (item.topic, item.classification)">
TOPIC/CLASSIFICATION
</span>
<span tal:replace="item/importance">
Importance
</span>
<span tal:condition="numcmts">
<span tal:replace="numcmts">NUM COMMENTS</span>
followup<span tal:replace="plrlcmts">S?</span>
</span>
<span tal:condition="not: numcmts"
tal:replace="nothing">
</span><span tal:condition="item/assigned_to|nothing">,
Assigned:
<span tal:content="python: ', '.join(item.assigned_to)">
SUPPORTERS
</span>
</span>
</td>
</tr>
<tr tal:attributes="bgcolor alternatingcolor"
tal:condition="item/Description">
<td> </td>
<td> </td>
<td>
<font color="gray"
tal:content="python: item.Description[:DESCRLEN]
+ (item.Description[DESCRLEN:] and '...')">
DESCRIPTION</font>
</td>
</tr>
</tbody>
<tr bgcolor="#ccffcc"
tal:condition="batch">
<td colspan="3">
<div metal:use-macro="here/collector_macros/macros/issue_batch_nav">
ISSUE-BATCH NAVIGATION
</div>
</td>
</tr>
</table>
<form action="RETURNHERE" method="get"
tal:attributes="action python: here.absolute_url()
+ '/collector_contents'"
tal:define="uniquevals python:
here.get_internal_catalog().uniqueValuesFor;
ordered nocall: here/collector_ordered_traits">
<input type="hidden" name="searching" value="yep">
<table>
<tr>
<td align="center">
<input type="Submit" value="Search">
</td>
<td>
<input type="reset" value="Reset">
</td>
</tr>
<tr>
<td COLSPAN="3">
<strong>Any text:</strong>
<input type="text" name="SearchableText" size="40"
value="TEXT"
tal:attributes="value request/SearchableText|nothing">
</td>
<td align="right">
Show
<input type="text" name="batch_size:number:ignore_empty" size="5"
value="TEXT"
tal:attributes="value request/batch_size|python: 10">
issues per screen
</td>
</tr>
<tr>
<th align="center"> Status </th>
<th align="center"> Requester</th>
<th align="center"> Assigned </th>
<th align="center"> Security Related </th>
</tr>
<tr>
<td align="center">
<select name="status:list:ignore_empty" multiple size="SIZE"
tal:define="values here/collector_issue_trim_states"
tal:attributes="size python: min(max(len(values), 3), 5)">
<option value=""
tal:repeat="status values"
tal:attributes="value status;
selected python: status
in request.get('status', [])"
tal:content="status">
</option>
</select>
</td>
<td align="center">
<select name="Creator:list:ignore_empty" multiple size="SIZE"
tal:define="values python: uniquevals('Creator')"
tal:attributes="size python: min(max(len(values), 3),
5)">
<option value=""
tal:repeat="creator values"
tal:attributes="
value creator;
selected python: creator
in request.get('Creator', [])"
tal:content="creator">
</option>
</select>
</td>
<td align="center">
<select name="supporters:list:ignore_empty" multiple size="SIZE"
tal:define="values python:
ordered(uniquevals('assigned_to'),
here.supporters)"
tal:attributes="size python: min(max(len(values), 3),
5)">
<option value=""
tal:repeat="supporter values"
tal:attributes="
value supporter;
selected python: supporter
in request.get('supporters', [])"
tal:content="supporter">
</option>
</select>
</td>
<td align="center">
<select name="security_related:list:ignore_empty" size="3" multiple
tal:define="was python: request.get('security_related',
[])">
<option value="No"
tal:attributes="selected python: 'No' in was">
No </option>
<option value="Yes"
tal:attributes="selected python: 'Yes' in was">
Yes </option>
</select>
</td>
</tr>
<tr>
<th align="center"> Topic </th>
<th align="center"> Classification </th>
<th align="center"> Importance </th>
<th align="center"> Date Range </th>
</tr>
<tr>
<td align="center">
<select name="topics:list:ignore_empty" multiple size="SIZE"
tal:define="values python: ordered(uniquevals('topic'),
here.topics)"
tal:attributes="size python: min(max(len(values), 3), 5)">
<option value=""
tal:repeat="topic values"
tal:attributes="
value topic;
selected python: topic
in request.get('topics', [])"
tal:content="topic">
</option>
</select>
</td>
<td align="center">
<select name="classifications:list:ignore_empty" multiple size="SIZE"
tal:define="values python:
ordered(uniquevals('classification'),
here.classifications)"
tal:attributes="size python: min(max(len(values), 3),
5)">
<option value=""
tal:repeat="classification values"
tal:attributes="
value classification;
selected python: classification
in request.get('classifications',
[])"
tal:content="classification">
</option>
</select>
</td>
<td align="center">
<select name="importances:list:ignore_empty" multiple size="SIZE"
tal:define="values python:
ordered(uniquevals('importance'),
here.importances)"
tal:attributes="size python: min(max(len(values), 3),
5)">
<option value=""
tal:repeat="importance values"
tal:attributes="
value importance;
selected python: importance
in request.get('importances',
[])"
tal:content="importance">
</option>
</select>
</td>
<td align="center">
<input type="text" name="created:list:ignore_empty" size="28"
value="TEXT"
tal:attributes="value python: request.get('created',['1970/01/01 00:00:00 GMT',''])[0]">
<br><input type="text" name="created:list:ignore_empty" size="28"
value="TEXT"
tal:attributes="value python: request.get('created',['',here.ZopeTime()])[1]">
<input type="hidden" name="created_usage" value="range:min:max">
</td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>