Ezio Melotti <ezio.melo...@gmail.com> added the comment:
I applied the update to Roundup 1.4.19 in r88872, to the python-dev instance in
r88876/7, and updated the other instances to Roundup 1.4.8. The attached patch
contains the 1.4.19 updates for the other instances as well. It might be
necessary to apply the r88877 fix[0] to them as well.
FWIW I can't tests this instances on my machine. Also I didn't include the
python-dev-spambayes-integration instance in the update. Is it used? Does it
need to be updated?
The updated instances are: board, jobs, jython, meta, security, setuptools.
_______________________________________________________
PSF Meta Tracker <metatrac...@psf.upfronthosting.co.za>
<http://psf.upfronthosting.co.za/roundup/meta/issue411>
_______________________________________________________
Index: setuptools/html/style.css
===================================================================
--- setuptools/html/style.css (revision 88877)
+++ setuptools/html/style.css (working copy)
@@ -50,15 +50,7 @@
padding: 5px;
border-bottom: 1px solid #444;
}
-#searchbox {
- float: right;
-}
-div#body-title {
- float: left;
-}
-
-
div#searchbox {
float: right;
padding-top: 1em;
@@ -421,6 +413,7 @@
font-weight: bold;
text-align: left;
}
+
input[type="text"]:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus,
@@ -429,6 +422,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
/* vim: sts=2 sw=2 et
*/
/* SHA: 7243da9b4e481a0b95a5367b45baaaa45fab8998 */
Index: setuptools/html/page.html
===================================================================
--- setuptools/html/page.html (revision 88877)
+++ setuptools/html/page.html (working copy)
@@ -28,9 +28,6 @@
<tr>
<td class="page-header-left"> </td>
<td class="page-header-top">
- <div id="body-title">
- <h2><span metal:define-slot="body_title">body title</span></h2>
- </div>
<div id="searchbox">
<form method="GET" action="issue">
<input type="hidden" name="@columns"
@@ -43,7 +40,10 @@
<input type="submit" id="submit" name="submit" value="Search"
i18n:attributes="value" />
</form>
- </div>
+ </div>
+ <div id="body-title">
+ <h2><span metal:define-slot="body_title">body title</span></h2>
+ </div>
</td>
</tr>
@@ -164,7 +164,7 @@
</p>
<p class="userblock">
<b i18n:translate="">Help</b><br>
- <a href="http://roundup.sourceforge.net/doc-1.0/"
+ <a href="http://www.roundup-tracker.org"
i18n:translate="">Roundup docs</a>
</p>
</td>
@@ -231,7 +231,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name">
- <span tal:replace="structure python:db.issue.classhelp(columns,
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
@@ -247,6 +247,22 @@
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
+
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: setuptools/html/_generic.index.html
===================================================================
--- setuptools/html/_generic.index.html (revision 88877)
+++ setuptools/html/_generic.index.html (working copy)
@@ -39,7 +39,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: setuptools/html/issue.search.html
===================================================================
--- setuptools/html/issue.search.html (revision 88877)
+++ setuptools/html/issue.search.html (working copy)
@@ -12,10 +12,10 @@
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -23,6 +23,7 @@
sort_input templates/page/macros/sort_input;
group_input templates/page/macros/group_input;
search_select templates/page/macros/search_select;
+ search_select_keywords templates/page/macros/search_select_keywords;
search_select_translated templates/page/macros/search_select_translated;
search_multiselect templates/page/macros/search_multiselect;">
@@ -54,7 +55,7 @@
db_klass string:keyword;
db_content string:name;">
<th i18n:translate="">Keyword:</th>
- <td metal:use-macro="search_select">
+ <td metal:use-macro="search_select_keywords">
<option metal:fill-slot="extra_options" value="-1" i18n:translate=""
tal:attributes="selected python:value == '-1'">not
selected</option>
</td>
@@ -167,8 +168,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""></td>
- <td><input type="radio" name="@group" value=""></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''"></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''"></td>
</tr>
<tr>
Index: setuptools/html/_generic.item.html
===================================================================
--- setuptools/html/_generic.item.html (revision 88877)
+++ setuptools/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
Index: meta/html/style.css
===================================================================
--- meta/html/style.css (revision 88878)
+++ meta/html/style.css (working copy)
@@ -50,15 +50,7 @@
padding: 5px;
border-bottom: 1px solid #444;
}
-#searchbox {
- float: right;
-}
-div#body-title {
- float: left;
-}
-
-
div#searchbox {
float: right;
padding-top: 1em;
@@ -431,6 +423,7 @@
font-weight: bold;
text-align: left;
}
+
input[type="text"]:focus,
input[type="checkbox"]:focus,
input[type="radio"]:focus,
@@ -440,6 +433,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
/* vim: sts=2 sw=2 et
*/
/* SHA: 7243da9b4e481a0b95a5367b45baaaa45fab8998 */
Index: meta/html/page.html
===================================================================
--- meta/html/page.html (revision 88878)
+++ meta/html/page.html (working copy)
@@ -28,9 +28,6 @@
<tr>
<td class="page-header-left"> </td>
<td class="page-header-top">
- <div id="body-title">
- <h2><span metal:define-slot="body_title">body title</span></h2>
- </div>
<div id="searchbox">
<form method="GET" action="issue">
<input type="hidden" name="@columns"
@@ -41,7 +38,10 @@
<input id="search-text" name="@search_text" size="10"/>
<input type="submit" id="submit" name="submit" value="Search"
i18n:attributes="value" />
</form>
- </div>
+ </div>
+ <div id="body-title">
+ <h2><span metal:define-slot="body_title">body title</span></h2>
+ </div>
</td>
</tr>
@@ -162,7 +162,7 @@
</p>
<p class="userblock">
<b i18n:translate="">Help</b><br>
- <a href="http://roundup.sourceforge.net/doc-1.0/"
+ <a href="http://www.roundup-tracker.org"
i18n:translate="">Roundup docs</a>
</p>
</td>
@@ -229,7 +229,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name">
- <span tal:replace="structure python:db.issue.classhelp(columns,
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
@@ -245,6 +245,22 @@
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
+
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: meta/html/_generic.index.html
===================================================================
--- meta/html/_generic.index.html (revision 88878)
+++ meta/html/_generic.index.html (working copy)
@@ -39,7 +39,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: meta/html/issue.search.html
===================================================================
--- meta/html/issue.search.html (revision 88878)
+++ meta/html/issue.search.html (working copy)
@@ -7,15 +7,15 @@
<form method="GET" name="itemSynopsis"
tal:attributes="action request/classname">
-
+
<table class="form" tal:define="
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -164,8 +164,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""></td>
- <td><input type="radio" name="@group" value=""></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''"></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''"></td>
</tr>
<tr>
Index: meta/html/_generic.item.html
===================================================================
--- meta/html/_generic.item.html (revision 88878)
+++ meta/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
Index: board/html/style.css
===================================================================
--- board/html/style.css (revision 88877)
+++ board/html/style.css (working copy)
@@ -33,13 +33,6 @@
#searchbox { display: none;}
}
-#searchbox { float: right;}
-
-div#body-title {
- float: left;
-}
-
-
div#searchbox
{
float: right;
@@ -456,7 +449,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
#demowarning {
position: absolute;
top: 10px;
Index: board/html/page.html
===================================================================
--- board/html/page.html (revision 88877)
+++ board/html/page.html (working copy)
@@ -130,7 +130,7 @@
</li>
<li>
<a href="user?@template=register"
- tal:condition="python:request.user.hasPermission('Create', 'user')"
+ tal:condition="python:request.user.hasPermission('Register', 'user')"
i18n:translate="">Register</a>
</li>
<li><a href="user?@template=forgotten"
i18n:translate="">Lost your login?</a>
@@ -283,7 +283,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name"/>
- <span tal:replace="structure python:db.issue.classhelp(columns,
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
@@ -299,6 +299,22 @@
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
+
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: board/html/_generic.index.html
===================================================================
--- board/html/_generic.index.html (revision 88877)
+++ board/html/_generic.index.html (working copy)
@@ -37,7 +37,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: board/html/issue.search.html
===================================================================
--- board/html/issue.search.html (revision 88877)
+++ board/html/issue.search.html (working copy)
@@ -12,10 +12,10 @@
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -23,6 +23,7 @@
sort_input templates/page/macros/sort_input;
group_input templates/page/macros/group_input;
search_select templates/page/macros/search_select;
+ search_select_keywords templates/page/macros/search_select_keywords;
search_select_translated templates/page/macros/search_select_translated;
search_multiselect templates/page/macros/search_multiselect;">
@@ -191,7 +192,7 @@
db_klass string:keyword;
db_content string:name;">
<th i18n:translate="">Keyword:</th>
- <td metal:use-macro="search_select_translated">
+ <td metal:use-macro="search_select_keywords">
<option metal:fill-slot="extra_options" value="-1" i18n:translate=""
tal:attributes="selected python:value == '-1'">not set</option>
</td>
@@ -244,8 +245,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""/></td>
- <td><input type="radio" name="@group" value=""/></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''" /></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''" /></td>
</tr>
<tr>
Index: board/html/_generic.item.html
===================================================================
--- board/html/_generic.item.html (revision 88877)
+++ board/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
Index: board/schema.py
===================================================================
--- board/schema.py (revision 88877)
+++ board/schema.py (working copy)
@@ -80,6 +80,8 @@
roles=String(), # comma-separated string of Role names
timezone=String())
user.setkey("username")
+db.security.addPermission(name='Register', klass='user',
+ description='User is allowed to register new user')
# FileClass automatically gets this property in addition to the Class ones:
# content = String() [saved to disk in <tracker home>/db/files/]
@@ -287,6 +289,9 @@
description="User is allowed to view their own and public queries")
for r in 'User', 'Board', 'Coordinator':
db.security.addPermissionToRole(r, p)
+p = db.security.addPermission(name='Search', klass='query')
+for r in 'User', 'Board', 'Coordinator':
+ db.security.addPermissionToRole(r, p)
p = db.security.addPermission(name='Edit', klass='query', check=edit_query,
description="User is allowed to edit their queries")
for r in 'User', 'Board', 'Coordinator':
@@ -315,7 +320,7 @@
# Assign the appropriate permissions to the anonymous user's Anonymous
# Role. Choices here are:
# - Allow anonymous users to register
-#db.security.addPermissionToRole('Anonymous', 'Create', 'user')
+#db.security.addPermissionToRole('Anonymous', 'Register', 'user')
# Allow anonymous users access to view issues (and the related, linked
# information).
Index: security/html/style.css
===================================================================
--- security/html/style.css (revision 88877)
+++ security/html/style.css (working copy)
@@ -33,13 +33,6 @@
#searchbox { display: none;}
}
-#searchbox { float: right;}
-
-div#body-title {
- float: left;
-}
-
-
div#searchbox
{
float: right;
@@ -456,7 +449,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
#demowarning {
position: absolute;
top: 10px;
Index: security/html/page.html
===================================================================
--- security/html/page.html (revision 88877)
+++ security/html/page.html (working copy)
@@ -130,7 +130,7 @@
</li>
<li>
<a href="user?@template=register"
- tal:condition="python:request.user.hasPermission('Create', 'user')"
+ tal:condition="python:request.user.hasPermission('Register', 'user')"
i18n:translate="">Register</a>
</li>
<li><a href="user?@template=forgotten"
i18n:translate="">Lost your login?</a>
@@ -283,7 +283,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name"/>
- <span tal:replace="structure python:db.issue.classhelp(columns,
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
@@ -299,6 +299,22 @@
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
+
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: security/html/_generic.index.html
===================================================================
--- security/html/_generic.index.html (revision 88877)
+++ security/html/_generic.index.html (working copy)
@@ -37,7 +37,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: security/html/issue.search.html
===================================================================
--- security/html/issue.search.html (revision 88877)
+++ security/html/issue.search.html (working copy)
@@ -12,10 +12,10 @@
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -23,6 +23,7 @@
sort_input templates/page/macros/sort_input;
group_input templates/page/macros/group_input;
search_select templates/page/macros/search_select;
+ search_select_keywords templates/page/macros/search_select_keywords;
search_select_translated templates/page/macros/search_select_translated;
search_multiselect templates/page/macros/search_multiselect;">
@@ -191,7 +192,7 @@
db_klass string:keyword;
db_content string:name;">
<th i18n:translate="">Keyword:</th>
- <td metal:use-macro="search_select_translated">
+ <td metal:use-macro="search_select_keywords">
<option metal:fill-slot="extra_options" value="-1" i18n:translate=""
tal:attributes="selected python:value == '-1'">not set</option>
</td>
@@ -244,8 +245,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""/></td>
- <td><input type="radio" name="@group" value=""/></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''" /></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''" /></td>
</tr>
<tr>
Index: security/html/_generic.item.html
===================================================================
--- security/html/_generic.item.html (revision 88877)
+++ security/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
Index: security/schema.py
===================================================================
--- security/schema.py (revision 88877)
+++ security/schema.py (working copy)
@@ -87,6 +87,8 @@
roles=String(), # comma-separated string of Role names
timezone=String())
user.setkey("username")
+db.security.addPermission(name='Register', klass='user',
+ description='User is allowed to register new user')
# FileClass automatically gets this property in addition to the Class ones:
# content = String() [saved to disk in <tracker home>/db/files/]
@@ -299,6 +301,9 @@
description="User is allowed to view their own and public queries")
for r in 'User', 'Developer', 'Coordinator':
db.security.addPermissionToRole(r, p)
+p = db.security.addPermission(name='Search', klass='query')
+for r in 'User', 'Developer', 'Coordinator':
+ db.security.addPermissionToRole(r, p)
p = db.security.addPermission(name='Edit', klass='query', check=edit_query,
description="User is allowed to edit their queries")
for r in 'User', 'Developer', 'Coordinator':
@@ -327,7 +332,7 @@
# Assign the appropriate permissions to the anonymous user's Anonymous
# Role. Choices here are:
# - Allow anonymous users to register
-#db.security.addPermissionToRole('Anonymous', 'Create', 'user')
+#db.security.addPermissionToRole('Anonymous', 'Register', 'user')
# Allow anonymous users access to view issues (and the related, linked
# information).
Index: jython/html/style.css
===================================================================
--- jython/html/style.css (revision 88877)
+++ jython/html/style.css (working copy)
@@ -33,13 +33,6 @@
#searchbox { display: none;}
}
-#searchbox { float: right;}
-
-div#body-title {
- float: left;
-}
-
-
div#searchbox
{
float: right;
@@ -453,7 +446,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
#demowarning {
position: absolute;
top: 10px;
Index: jython/html/page.html
===================================================================
--- jython/html/page.html (revision 88877)
+++ jython/html/page.html (working copy)
@@ -349,7 +349,7 @@
string (eg. "id,title" or "id,name,description") as well as name
-->
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name; id name" />
- <span tal:replace="structure python:db.issue.classhelp(columns,
property=name)" />
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
<td metal:define-macro="search_select">
<select tal:attributes="name name; id name"
@@ -363,6 +363,21 @@
tal:content="python:s[db_content]"></option>
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: jython/html/_generic.index.html
===================================================================
--- jython/html/_generic.index.html (revision 88877)
+++ jython/html/_generic.index.html (working copy)
@@ -37,7 +37,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: jython/html/issue.search.html
===================================================================
--- jython/html/issue.search.html (revision 88877)
+++ jython/html/issue.search.html (working copy)
@@ -12,10 +12,10 @@
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'priority';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -23,6 +23,7 @@
sort_input templates/page/macros/sort_input;
group_input templates/page/macros/group_input;
search_select templates/page/macros/search_select;
+ search_select_keywords templates/page/macros/search_select_keywords;
search_select_translated templates/page/macros/search_select_translated;
search_multiselect templates/page/macros/search_multiselect;">
@@ -191,9 +192,9 @@
db_klass string:keyword;
db_content string:name;">
<th i18n:translate="">Keyword:</th>
- <td metal:use-macro="search_select_translated">
+ <td metal:use-macro="search_select_keywords">
<option metal:fill-slot="extra_options" value="-1" i18n:translate=""
- tal:attributes="selected python:value == '-1'">not set</option>
+ tal:attributes="selected python:value == '-1'">not
selected</option>
</td>
<td metal:use-macro="column_input"></td>
<td metal:use-macro="sort_input"></td>
@@ -244,8 +245,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""/></td>
- <td><input type="radio" name="@group" value=""/></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''" /></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''" /></td>
</tr>
<tr>
Index: jython/html/_generic.item.html
===================================================================
--- jython/html/_generic.item.html (revision 88877)
+++ jython/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
Index: jobs/html/style.css
===================================================================
--- jobs/html/style.css (revision 88877)
+++ jobs/html/style.css (working copy)
@@ -33,13 +33,6 @@
#searchbox { display: none;}
}
-#searchbox { float: right;}
-
-div#body-title {
- float: left;
-}
-
-
div#searchbox
{
float: right;
@@ -452,7 +445,18 @@
background-color: #ffffc0;
}
+.calendar_display {
+ text-align: center;
+}
+.calendar_display td {
+ padding: 1px 4px 1px 4px;
+}
+
+.calendar_display .today {
+ background-color: #afafaf;
+}
+
#demowarning {
position: absolute;
top: 10px;
Index: jobs/html/page.html
===================================================================
--- jobs/html/page.html (revision 88877)
+++ jobs/html/page.html (working copy)
@@ -272,7 +272,7 @@
<input tal:attributes="value python:request.form.getvalue(name) or nothing;
name name;
id name"/>
- <span tal:replace="structure python:db.offer.classhelp(columns,
+ <span tal:replace="structure python:db[db_klass].classhelp(columns,
property=name)" />
</td>
@@ -288,6 +288,22 @@
</select>
</td>
+<td metal:define-macro="search_select_keywords">
+ <div tal:attributes="id python:'''keywords_%s'''%name">
+ <select tal:attributes="name name; id name"
+ tal:define="value python:request.form.getvalue(name)">
+ <option value="" i18n:translate="">don't care</option>
+ <metal:slot define-slot="extra_options" />
+ <option value="" i18n:translate=""
disabled="disabled">------------</option>
+ <option tal:repeat="s python:db[db_klass].list()"
+ tal:attributes="value s/id; selected python:value == s.id"
+ tal:content="python:s[db_content]"></option>
+ </select>
+ <a class="classhelp"
+ tal:attributes="href
python:'''javascript:help_window('issue?@template=keywords_expr&property=%s&form=itemSynopsis',
350, 200)'''%name">(expr)</a>
+ </div>
+</td>
+
<!-- like search_select, but translates the further values.
Could extend it (METAL 1.1 attribute "extend-macro")
-->
Index: jobs/html/_generic.index.html
===================================================================
--- jobs/html/_generic.index.html (revision 88877)
+++ jobs/html/_generic.index.html (working copy)
@@ -37,7 +37,8 @@
<p class="form-help">
Remove entries by deleting their line. Add new entries by appending
- them to the table - put an X in the id column.
+ them to the table - put an X in the id column. If you wish to restore a
+ removed item and you know its id then just put that id in the id column.
</p>
</tal:block>
<form onSubmit="return submit_once()" method="POST"
Index: jobs/html/offer.search.html
===================================================================
--- jobs/html/offer.search.html (revision 88877)
+++ jobs/html/offer.search.html (working copy)
@@ -12,10 +12,10 @@
cols python:request.columns or 'id activity title status
assignedto'.split();
sort_on python:request.sort and request.sort[0] or nothing;
sort_desc python:sort_on and sort_on[0] == '-';
- sort_on python:(sort_on and sort_on[1]) or 'activity';
+ sort_on python:(sort_on and sort_on[1]) or (not request.nodeid and
'activity') or '';
group_on python:request.group and request.group[0] or nothing;
group_desc python:group_on and group_on[0] == '-';
- group_on python:(group_on and group_on[1]) or 'status';
+ group_on python:(group_on and group_on[1]) or (not request.nodeid and
'priority') or '';
search_input templates/page/macros/search_input;
search_date templates/page/macros/search_date;
@@ -156,8 +156,8 @@
<th i18n:translate="">No Sort or group:</th>
<td> </td>
<td> </td>
- <td><input type="radio" name="@sort" value=""/></td>
- <td><input type="radio" name="@group" value=""/></td>
+ <td><input type="radio" name="@sort" value="" tal:attributes="checked
python:sort_on == ''" /></td>
+ <td><input type="radio" name="@group" value="" tal:attributes="checked
python:group_on == ''" /></td>
</tr>
<tr>
Index: jobs/html/_generic.item.html
===================================================================
--- jobs/html/_generic.item.html (revision 88877)
+++ jobs/html/_generic.item.html (working copy)
@@ -44,7 +44,12 @@
</form>
-<tal:block tal:condition="context/id" tal:replace="structure context/history"
/>
+<tal:block tal:condition="context/id"
+ tal:define="limit python:[10,
None][request.form.has_key('show_all_history')]"
+ tal:replace="structure python:context.history(limit=limit)" />
+<p tal:condition="not:exists:request/form/show_all_history"
i18n:translate="">Showing 10 items.
+<a tal:attributes="href
string:${context/_classname}${context/id}?show_all_history=yes">Show all
history</a>
+(warning: this could be VERY long)</p>
</div>
_______________________________________________
Tracker-discuss mailing list
Tracker-discuss@python.org
http://mail.python.org/mailman/listinfo/tracker-discuss