Edit detail for IssueTracker revision 9 of 44

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
Editor: simon
Time: 2009/04/11 15:54:39 GMT-7
Note: add clear report an issue link at top


        

<dtml-comment>


DTML not enabled

This page needs DTML; DTML should be enabled, and the page markup type should be set to 'HTML+DTML'. Or, you can delete this page and Zwiki will use a built-in version.

You should understand the security implications before enabling DTML on your site; see http://zwiki.org/Configuring .

You can enable DTML for just this page by setting a boolean property called allow_dtml to true on this page. You might then want to lock this page by going to the security tab and unchecking the "Zwiki:Edit pages" and "Zwiki:Add comments" permissions from non-manager users.


</dtml-comment> <dtml-call "RESPONSE.setHeader('Content-Type','text/html; charset=utf-8')"> <dtml-let

scrollto="'' #'#tracker'" issueCount=issueCount sort_order="REQUEST.get('sort_order','')" sort_on="tounicode(REQUEST.get('sort_on','lastEditTime'))" searchexpr="tounicode(REQUEST.get('textortitle',''))" category="_.map(tounicode,REQUEST.get('category',[]))" status="_.map(tounicode,REQUEST.get('status',[]))" severity="_.map(tounicode,REQUEST.get('severity',[]))" num="_.int(REQUEST.get('num',99999))" recentnum="30" recentlisting="'?sort_on=lastEditTime&sort_order=reverse&num=%s'%recentnum" >

<!-- issue search form ------------------------- --> <a name="tracker"></a>

<form action="&dtml-URL;" method="GET">
<table border="0" cellspacing="1" cellpadding="0" width="100%">
<tr>
<td valign="top">
<!-- CUSTOM TEXT -->
This is the ZWiki? bug database.
<!-- END OF CUSTOM TEXT -->
<dtml-translate domain=zwiki>Enter a search term, click the numbers to the right, </dtml-translate>
<a href="&dtml-filterUrl;"><dtml-translate domain=zwiki>filter issues</dtml-translate></a>, <a href="&dtml-issueBrowserUrl;"><dtml-translate domain=zwiki>browse open issues</dtml-translate></a>, or <b><a href="#addissue">report an issue</a></b>.

<br /> <b>

<input type="text" name="textortitle" size="20" maxlength="100"
value="&dtml-searchexpr;" class="formfield" style="font-weight:bold" accesskey="s" title="search issue pages"
/><input type="submit" value="<dtml-translate domain=zwiki>search issues</dtml-translate>"
style="font-weight:bold" title="search issue pages" />

</b>

<!-- CUSTOM TEXT -->
<p> See also: common KnownIssues?, Debian's <a href="http://bugs.debian.org/zope-zwiki">zope-zwiki bugs</a>, <a href="http://collector.zope.org/Zope">Zope bugs</a>, TrackerSearchTips?, and more about ZwikiTracker?.
<dtml-comment>
<p>
<table style="border: 3px red dotted; background-color:#ffdddd" align="center"><tr><td>
<b>
BUG DAY! HELPERS WELCOME - join <a href="irc://irc.freenode.net/#zwiki">#zwiki</a>, send <a href="DarcsRepos?">patches</a>, close <a href="&dtml-filterUrl;?sort_on=severity_index&titlesearch=&textsearch=&category%3Alist=general&category%3Alist=installation&category%3Alist=formatting+and+rendering&category%3Alist=skins+and+content&category%3Alist=i18n&category%3Alist=mail&category%3Alist=tracker&category%3Alist=documentation&severity%3Alist=critical&severity%3Alist=serious&severity%3Alist=normal&severity%3Alist=minor&status%3Alist=open&status%3Alist=pending">these</a> <br />

</b>

</td></tr></table>

</dtml-comment> <!-- END OF CUSTOM TEXT -->

</td> <td valign="top" class="">

<span style="font-size:100%;"> <table border="0" cellspacing="2" cellpadding="0"

<dtml-let bold="num==recentnum or not QUERY_STRING">
<tr>
<td align="right">
<dtml-var "bold and '<b>' or ''">
<a href="&dtml-URL;&dtml-recentlisting;&dtml-scrollto;" >&dtml-recentnum;</a>

<dtml-var "bold and '</b>' or ''">

</td> <td align="left" nowrap>

<dtml-var "bold and '<b>' or ''"> <dtml-translate domain=zwiki>recent</dtml-translate> <dtml-var "bold and '</b>' or ''">

</td>

</tr>

</dtml-let> <dtml-let bold="QUERY_STRING and not (status or severity or category or searchexpr or (num==recentnum))">

<tr>
<td align="right">
<dtml-var "bold and '<b>' or ''">
<a href="&dtml-URL;?sort_on=issueNumber&dtml-scrollto;" >&dtml-issueCount;</a>

<dtml-var "bold and '</b>' or ''">

</td> <td align="left" nowrap>

<dtml-var "bold and '<b>' or ''"> <dtml-translate domain=zwiki>all</dtml-translate> <dtml-var "bold and '</b>' or ''">

</td>

</tr>

</dtml-let>

</table> </span>

</td> <td valign="top" class="">

<span style="font-size:100%;"> <table border="0" cellspacing="2" cellpadding="0">

<dtml-in issue_statuses prefix=x>
<dtml-let bold="x_sequence_item in REQUEST.get('status',[])">
<tr>
<td align="right">

<dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?status:list=&dtml-x_sequence_item;&sort_on=severity_index&dtml-scrollto;"

><dtml-var "_.len(pages(isIssue=1,status=x_sequence_item))" ></a>

<dtml-var "bold and '</b>' or ''">

</td> <td align="left" nowrap>

<dtml-var "bold and '<b>' or ''"> &dtml-x_sequence_item; <dtml-var "bold and '</b>' or ''">

</td>

</tr>

</dtml-let>

</dtml-in>

</table> </span>

</td> <td valign="top" class="">

<span style="font-size:100%;"> <table border="0" cellspacing="2" cellpadding="0">

<dtml-in issue_severities prefix=x>
<dtml-let bold="x_sequence_item in REQUEST.get('severity',[])">
<tr>
<td align="right">

<dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?severity:list=&dtml-x_sequence_item;&sort_on=status_index&dtml-scrollto;"

><dtml-var "_.len(pages(isIssue=1,severity=x_sequence_item))" ></a>

<dtml-var "bold and '</b>' or ''">

</td> <td align="left" nowrap>

<dtml-var "bold and '<b>' or ''"> &dtml-x_sequence_item; <dtml-var "bold and '</b>' or ''">

</td>

</tr>

</dtml-let>

</dtml-in>

</table> </span>

</td>

<dtml-comment>takes up too much space!
<td valign="top" class="">

<span style="font-size:100%;"> <table border="0" cellspacing="2" cellpadding="0">

<dtml-in issue_categories prefix=x>
<dtml-let bold="x_sequence_item in REQUEST.get('category',[])">
<tr>
<td align="right">

<dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?category:list=&dtml.url_quote-sequence-item;&sort_on=status_index&dtml-scrollto;"

><dtml-var "_.len(pages(isIssue=1,category=_['sequence-item']?))" ></a>

<dtml-var "bold and '</b>' or ''">

</td> <td align="left" nowrap>

<dtml-var "bold and '<b>' or ''"> &dtml-sequence-item; <dtml-var "bold and '</b>' or ''">

</td>

</tr>

</dtml-let>

</dtml-in>

</table> </span>

</td>

</dtml-comment>
</tr>

</table>

</form> <p> <!-- issue search results ------------------------- --> <a name="issues"></a> <dtml-comment>dtml madness</dtml-comment> <dtml-comment>

Three cases: - if we have a search term, search for it in title, text and category

(a dumb way, concatenate three searches)
  • or, if we have a query string, search and sort according to those parameters
  • otherwise, show a default search (open issues by severity)

</dtml-comment> <dtml-comment>

Catalog() won't sort on title for some reason; dtml-in will but seems unreliable. Need to use dtml-in sort when combining multiple catalog results. Try both at once I guess. XXX try again ?

</dtml-comment> <dtml-let

sortonstart="_.string.find(QUERY_STRING,'sort_on')" sortonend="_.string.find(QUERY_STRING,'&',sortonstart)" sortonend="(sortonend != -1) and (sortonend+1) or _.len(QUERY_STRING)" query="(sortonstart == -1) and QUERY_STRING or (QUERY_STRING[:sortonstart]?+QUERY_STRING[sortonend:]?)" sortorderstart="_.string.find(query,'sort_order')" sortorderend="_.string.find(query,'&',sortorderstart)" sortorderend="(sortorderend != -1) and (sortorderend+1) or _.len(query)" amp="(sortorderstart == -1) and '*' or query[sortorderstart-1]?" sortorderstart="(amp == '&') and sortorderstart-1 or sortorderstart" query="(sortorderstart == -1) and query or (query[:sortorderstart]?+query[sortorderend:]?)" query="query and ('&'+query) or ''" order="(not (REQUEST.get('sort_order','') == 'reverse')) and '&sort_order=reverse' or '&sort_order=ascending' " issues=" (searchexpr and

(pages(isIssue=1, sort_on=sort_on, sort_limit=num, Title=searchexpr) +
pages(isIssue=1, sort_on=sort_on, sort_limit=num, category=searchexpr) + pages(isIssue=1, sort_on=sort_on, sort_limit=num, SearchableText?=searchexpr))[:num]?)

or (not searchexpr and QUERY_STRING and

pages(isIssue= 1,
sort_on= sort_on, sort_order=REQUEST.get('sort_order','ascending'), sort_limit=num, SearchableText?=REQUEST.get('textsearch',''), Title= REQUEST.get('titlesearch',''), category= REQUEST.get('category',''), severity= REQUEST.get('severity',''), status= REQUEST.get('status',''))[:num]?)

or (not searchexpr and not QUERY_STRING and

pages(isIssue=1, sort_on='lastEditTime', sort_order='reverse', sort_limit=num)[:recentnum]?)

System Message: SEVERE/4 (<string>, line 244)

Unexpected section title.

"
>
<table border=0 width="100%">
<tr>
<td align=left valign=top width="1%">
<dtml-let bold="sort_on=='issueNumber'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=issueNumber&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>#</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td> <td align=left valign=top>

<dtml-if "hasCatalogIndexesMetadata((['issueName'],[]))">
<dtml-let bold="sort_on=='issueName'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=issueName&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>name</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>
<dtml-else>
<span style="font-size:small; font-style:italic; color: gray">visit /setupTracker to sort by name</span>

</dtml-if>

</td> <td align=left valign=top width="1%">

<dtml-let bold="sort_on=='category_index'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=category_index&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>category</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td> <td align=left valign=top width="1%">

<dtml-let bold="sort_on=='severity_index'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=severity_index&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>severity</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td> <td align=left valign=top width="1%">

<dtml-let bold="sort_on=='status_index'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=status_index&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>status</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td> <td align=left valign=top width="1%">

<dtml-let bold="sort_on=='creation_time'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=creation_time&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>age</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td> <td align=left valign=top width="1%">

<dtml-let bold="sort_on=='lastEditTime'"> <dtml-var "bold and '<b>' or ''"> <a href="&dtml-URL;?sort_on=lastEditTime&dtml-query;&dtml-order;&dtml-scrollto;"><dtml-translate domain=zwiki>modified</dtml-translate></a> <dtml-var "bold and '</b>' or ''"> </dtml-let>

</td>

</tr> <dtml-in issues>

<dtml-try>
<dtml-let

linktitle="'' #getObject().linkTitle()" bold="0#(status in ('open','pending') and #severity not in ('wishlist',) and #page.ageInDays() > 60)" titleseparator="_.string.find(Title,' ')" issuenmbr="titleseparator != -1 and Title[:titleseparator]? or 'None'" issuenam="titleseparator != -1 and Title[titleseparator+1:]? or 'None'" >

<tr bgcolor="&dtml-issueColour;">
<td align=left valign=top>

<dtml-comment> <dtml-var "wikilink('['+Title+']?')"> </dtml-comment> <dtml-var "bold and '<b>' or ''" ><a href="&dtml-wiki_url;/&dtml-id;"

title="<dtml-var "'' #page.linkTitle()">">&dtml-issuenmbr;</a>

<dtml-var "bold and '</b>' or ''">

</td> <td align=left valign=top>

<dtml-comment> <dtml-var "wikilink('['+Title+']?')"> </dtml-comment> <dtml-var "bold and '<b>' or ''" ><a href="&dtml-wiki_url;/&dtml-id;"

title="<dtml-var "'' #page.linkTitle()">">&dtml-issuenam;</a>

<dtml-var "bold and '</b>' or ''">

</td> <td align=left valign=top nowrap><dtml-var category></td> <td align=left valign=top nowrap><dtml-var severity></td> <td align=left valign=top nowrap>

<dtml-var "bold and '<b>' or ''"> <dtml-var status> <dtml-var "bold and '</b>' or ''">

</td> <td align=left valign=top nowrap>

<dtml-var "bold and '<b>' or ''"> <dtml-let

creation_time="_.getattr(_['sequence-item']?,'creation_time','')" creation="_.DateTime?(_.getattr(_['sequence-item']?,'creation_time','') or 1007105000)" current="_.DateTime?(ZopeTime?().strftime('%Y/%m/%d %H:%M:%S'))" elapsed="current-creation" hourfactor="0.041666666666666664" minutefactor="0.00069444444444444447" secondsfactor="1.1574074074074073e-05" days="_.int(_.math.floor(elapsed))" weeks="days / 7" months="days / 30" years="days / 365" hours="_.int(_.math.floor((elapsed-days)/hourfactor))" minutes="_.int(_.math.floor((elapsed-days-hourfactor*hours)/minutefactor))" seconds="_.int(_.round((elapsed-days-hourfactor*hours-minutefactor*minutes)/secondsfactor))" >

<dtml-unless creation_time>></dtml-unless> <dtml-if years>

<dtml-var years> year<dtml-var "years > 1 and 's' or ''">
<dtml-elif months>
<dtml-var months> month<dtml-var "months > 1 and 's' or ''">
<dtml-elif weeks>
<dtml-var weeks> week<dtml-var "weeks > 1 and 's' or ''">
<dtml-elif days>
<dtml-var days> day<dtml-var "days > 1 and 's' or ''">
<dtml-elif hours>
<dtml-var hours> hour<dtml-var "hours > 1 and 's' or ''">
<dtml-elif minutes>
<dtml-var minutes> minute<dtml-var "minutes > 1 and 's' or ''">
<dtml-else>
<dtml-var seconds> second<dtml-var "seconds > 1 and 's' or ''">

</dtml-if>

</dtml-let> <dtml-var "bold and '</b>' or ''">

</td> <td align=left valign=top nowrap>

<dtml-comment>
could call lastEditInterval but would have to wake up objects

</dtml-comment> <dtml-let

elapsed="ZopeTime?() - lastEditTime" hourfactor="0.041666666666666664" minutefactor="0.00069444444444444447" secondsfactor="1.1574074074074073e-05" days="_.int(_.math.floor(elapsed))" weeks="days / 7" months="days / 30" years="days / 365" hours="_.int(_.math.floor((elapsed-days)/hourfactor))" minutes="_.int(_.math.floor((elapsed-days-hourfactor*hours)/minutefactor))" seconds="_.int(_.round((elapsed-days-hourfactor*hours-minutefactor*minutes)/secondsfactor))" >

<dtml-if years>
<dtml-var years> year<dtml-var "years > 1 and 's' or ''">
<dtml-elif months>
<dtml-var months> month<dtml-var "months > 1 and 's' or ''">
<dtml-elif weeks>
<dtml-var weeks> week<dtml-var "weeks > 1 and 's' or ''">
<dtml-elif days>
<dtml-var days> day<dtml-var "days > 1 and 's' or ''">
<dtml-elif hours>
<dtml-var hours> hour<dtml-var "hours > 1 and 's' or ''">
<dtml-elif minutes>
<dtml-var minutes> minute<dtml-var "minutes > 1 and 's' or ''">
<dtml-else>
<dtml-var seconds> second<dtml-var "seconds > 1 and 's' or ''">

</dtml-if>

</dtml-let>

</td>

</tr>

</dtml-let>

<dtml-except>
<tr>
<td colspan=6>
&dtml-Title; gave an error, bad catalog entry ?

</td>

</tr>

</dtml-try> <dtml-if sequence-end>

<tr>
<td colspan=6>

<b><dtml-var sequence-number></b> <dtml-comment>

issue<dtml-var "_['sequence-number']? != 1 and 's' or ''"> listed

</dtml-comment>

</td>

</tr>

</dtml-if>

<dtml-else>
<tr>
<td colspan=6>&nbsp;</td>

</tr>

</dtml-in>

</table>

</dtml-let> <p> <!-- add issue form ------------------------- --> <a name="addissue"></a> <form action="&dtml-URL;" method="POST">

<b><dtml-translate domain=zwiki>Add a new issue:</dtml-translate></b> <br /><br /> <table border="0" cellspacing="1" cellpadding="0" width="60%">

<tr valign="middle">
<td align="right">
<dtml-translate domain=zwiki>Name:</dtml-translate>

</td> <td>

<b>
<input
type="text" name="newtitle" value="<dtml-var newtitle missing html_quote>" class="formfield" size="40" maxlength="200" style="font-weight:bold;width:100%;" />

</b>

</td>

<tr valign="middle">
<td align="right">
<dtml-translate domain=zwiki>Category:</dtml-translate>

</td> <td nowrap>

<select name="newcategory" class="formfield">

<dtml-in issue_categories> <option <dtml-var "_['sequence-item']? == 'general' and 'SELECTED' or ''">>

&dtml-sequence-item;

</option> </dtml-in>

</select> &nbsp;<dtml-translate domain=zwiki>Severity:</dtml-translate><select

name="newseverity" class="formfield"> <dtml-in issue_severities> <option <dtml-var "_['sequence-item']? == 'normal' and 'SELECTED' or ''">>

&dtml-sequence-item;

</option> </dtml-in>

</select> &nbsp;<dtml-translate domain=zwiki>Status:</dtml-translate><select

name="newstatus" class="formfield"> <dtml-in issue_statuses> <option <dtml-var "_['sequence-item']? == 'open' and 'SELECTED' or ''">>

&dtml-sequence-item;

</option> </dtml-in>

</select>

</td>

</tr> <tr valign="top">

<td align="right">
<dtml-translate domain=zwiki>Details:</dtml-translate>

</td> <td>

<textarea name="newtext" wrap="virtual" rows="5" cols="40"
class="formfield" style="width:100%"></textarea>

</td>

</tr> <tr>

<td>
&nbsp;

</td> <td><b><input

name="submit" type="submit" value="<dtml-translate domain=zwiki>add issue</dtml-translate>" style="font-weight:bold"></b>

</td>

</tr>

</table> <input type="hidden" name="submitted" value="1" />

</form>

<!-- add issue form handler ------------------------- --> <dtml-if "REQUEST.get('submitted',0) and REQUEST.get('newtitle',0)">

<dtml-let

newtitle="_.getattr(REQUEST,'newtitle','')" newtext="_.getattr(REQUEST,'newtext','')" newcategory="_.getattr(REQUEST,'newcategory','zwiki: general')" newseverity="_.getattr(REQUEST,'newseverity','normal')" newstatus="_.getattr(REQUEST,'newstatus','open')" >

<dtml-call "createNextIssue(
newtitle,newtext,newcategory,newseverity,newstatus,REQUEST=REQUEST) # reloads the tracker page">

</dtml-let>

</dtml-if>

</dtml-let>