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