[Python-checkins] r88888 - in tracker/instances: board/html/_generic.index.html board/html/_generic.item.html board/html/_generic.keywords_expr.html board/html/issue.search.html board/html/page.html board/html/style.css board/schema.py jobs/html/_generic.index.html jobs/html/_generic.item.html jobs/html/_generic.keywords_expr.html jobs/html/offer.search.html jobs/html/page.html jobs/html/style.css jython/html/_generic.index.html jython/html/_generic.item.html jython/html/_generic.keywords_expr.html jython/html/issue.search.html jython/html/page.html jython/html/style.css meta/html/_generic.index.html meta/html/_generic.item.html meta/html/issue.search.html meta/html/page.html meta/html/style.css security/html/_generic.index.html security/html/_generic.item.html security/html/_generic.keywords_expr.html security/html/issue.search.html security/html/page.html security/html/style.css security/schema.py setuptools/html/_generic.index.html setuptools/html/_generic.item.html setuptools/html/_generic.keywords_expr.html setuptools/html/issue.search.html setuptools/html/page.html setuptools/html/style.css

ezio.melotti python-checkins at python.org
Sun Aug 21 17:55:28 CEST 2011


Author: ezio.melotti
Date: Sun Aug 21 17:55:28 2011
New Revision: 88888

Log:
#411: Upgrade the other instances to 1.4.19.

Added:
   tracker/instances/board/html/_generic.keywords_expr.html
   tracker/instances/jobs/html/_generic.keywords_expr.html
   tracker/instances/jython/html/_generic.keywords_expr.html
   tracker/instances/security/html/_generic.keywords_expr.html
   tracker/instances/setuptools/html/_generic.keywords_expr.html
Modified:
   tracker/instances/board/html/_generic.index.html
   tracker/instances/board/html/_generic.item.html
   tracker/instances/board/html/issue.search.html
   tracker/instances/board/html/page.html
   tracker/instances/board/html/style.css
   tracker/instances/board/schema.py
   tracker/instances/jobs/html/_generic.index.html
   tracker/instances/jobs/html/_generic.item.html
   tracker/instances/jobs/html/offer.search.html
   tracker/instances/jobs/html/page.html
   tracker/instances/jobs/html/style.css
   tracker/instances/jython/html/_generic.index.html
   tracker/instances/jython/html/_generic.item.html
   tracker/instances/jython/html/issue.search.html
   tracker/instances/jython/html/page.html
   tracker/instances/jython/html/style.css
   tracker/instances/meta/html/_generic.index.html
   tracker/instances/meta/html/_generic.item.html
   tracker/instances/meta/html/issue.search.html
   tracker/instances/meta/html/page.html
   tracker/instances/meta/html/style.css
   tracker/instances/security/html/_generic.index.html
   tracker/instances/security/html/_generic.item.html
   tracker/instances/security/html/issue.search.html
   tracker/instances/security/html/page.html
   tracker/instances/security/html/style.css
   tracker/instances/security/schema.py
   tracker/instances/setuptools/html/_generic.index.html
   tracker/instances/setuptools/html/_generic.item.html
   tracker/instances/setuptools/html/issue.search.html
   tracker/instances/setuptools/html/page.html
   tracker/instances/setuptools/html/style.css

Modified: tracker/instances/board/html/_generic.index.html
==============================================================================
--- tracker/instances/board/html/_generic.index.html	(original)
+++ tracker/instances/board/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/board/html/_generic.item.html
==============================================================================
--- tracker/instances/board/html/_generic.item.html	(original)
+++ tracker/instances/board/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Added: tracker/instances/board/html/_generic.keywords_expr.html
==============================================================================
--- (empty file)
+++ tracker/instances/board/html/_generic.keywords_expr.html	Sun Aug 21 17:55:28 2011
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+  <link rel="stylesheet" type="text/css" href="@@file/style.css" />
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+  <title tal:content="string:Roundup Keywords Expression Editor"></title>
+ </head>
+ <body class="body"
+       tal:content="structure python:utils.keywords_expressions(request)">
+ </body>
+</html>

Modified: tracker/instances/board/html/issue.search.html
==============================================================================
--- tracker/instances/board/html/issue.search.html	(original)
+++ tracker/instances/board/html/issue.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/board/html/page.html
==============================================================================
--- tracker/instances/board/html/page.html	(original)
+++ tracker/instances/board/html/page.html	Sun Aug 21 17:55:28 2011
@@ -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&nbsp;your&nbsp;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")
 -->

Modified: tracker/instances/board/html/style.css
==============================================================================
--- tracker/instances/board/html/style.css	(original)
+++ tracker/instances/board/html/style.css	Sun Aug 21 17:55:28 2011
@@ -33,13 +33,6 @@
     #searchbox { display: none;}
 }
 
-#searchbox { float: right;}
-
-div#body-title {
-  float: left;
-}
-
-
 div#searchbox 
 {
   float: right;
@@ -456,6 +449,17 @@
   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;

Modified: tracker/instances/board/schema.py
==============================================================================
--- tracker/instances/board/schema.py	(original)
+++ tracker/instances/board/schema.py	Sun Aug 21 17:55:28 2011
@@ -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).

Modified: tracker/instances/jobs/html/_generic.index.html
==============================================================================
--- tracker/instances/jobs/html/_generic.index.html	(original)
+++ tracker/instances/jobs/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/jobs/html/_generic.item.html
==============================================================================
--- tracker/instances/jobs/html/_generic.item.html	(original)
+++ tracker/instances/jobs/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Added: tracker/instances/jobs/html/_generic.keywords_expr.html
==============================================================================
--- (empty file)
+++ tracker/instances/jobs/html/_generic.keywords_expr.html	Sun Aug 21 17:55:28 2011
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+  <link rel="stylesheet" type="text/css" href="@@file/style.css" />
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+  <title tal:content="string:Roundup Keywords Expression Editor"></title>
+ </head>
+ <body class="body"
+       tal:content="structure python:utils.keywords_expressions(request)">
+ </body>
+</html>

Modified: tracker/instances/jobs/html/offer.search.html
==============================================================================
--- tracker/instances/jobs/html/offer.search.html	(original)
+++ tracker/instances/jobs/html/offer.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/jobs/html/page.html
==============================================================================
--- tracker/instances/jobs/html/page.html	(original)
+++ tracker/instances/jobs/html/page.html	Sun Aug 21 17:55:28 2011
@@ -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")
 -->

Modified: tracker/instances/jobs/html/style.css
==============================================================================
--- tracker/instances/jobs/html/style.css	(original)
+++ tracker/instances/jobs/html/style.css	Sun Aug 21 17:55:28 2011
@@ -33,13 +33,6 @@
     #searchbox { display: none;}
 }
 
-#searchbox { float: right;}
-
-div#body-title {
-  float: left;
-}
-
-
 div#searchbox 
 {
   float: right;
@@ -452,6 +445,17 @@
   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;

Modified: tracker/instances/jython/html/_generic.index.html
==============================================================================
--- tracker/instances/jython/html/_generic.index.html	(original)
+++ tracker/instances/jython/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/jython/html/_generic.item.html
==============================================================================
--- tracker/instances/jython/html/_generic.item.html	(original)
+++ tracker/instances/jython/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Added: tracker/instances/jython/html/_generic.keywords_expr.html
==============================================================================
--- (empty file)
+++ tracker/instances/jython/html/_generic.keywords_expr.html	Sun Aug 21 17:55:28 2011
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+  <link rel="stylesheet" type="text/css" href="@@file/style.css" />
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+  <title tal:content="string:Roundup Keywords Expression Editor"></title>
+ </head>
+ <body class="body"
+       tal:content="structure python:utils.keywords_expressions(request)">
+ </body>
+</html>

Modified: tracker/instances/jython/html/issue.search.html
==============================================================================
--- tracker/instances/jython/html/issue.search.html	(original)
+++ tracker/instances/jython/html/issue.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/jython/html/page.html
==============================================================================
--- tracker/instances/jython/html/page.html	(original)
+++ tracker/instances/jython/html/page.html	Sun Aug 21 17:55:28 2011
@@ -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")
 -->

Modified: tracker/instances/jython/html/style.css
==============================================================================
--- tracker/instances/jython/html/style.css	(original)
+++ tracker/instances/jython/html/style.css	Sun Aug 21 17:55:28 2011
@@ -33,13 +33,6 @@
     #searchbox { display: none;}
 }
 
-#searchbox { float: right;}
-
-div#body-title {
-  float: left;
-}
-
-
 div#searchbox 
 {
   float: right;
@@ -453,6 +446,17 @@
   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;

Modified: tracker/instances/meta/html/_generic.index.html
==============================================================================
--- tracker/instances/meta/html/_generic.index.html	(original)
+++ tracker/instances/meta/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/meta/html/_generic.item.html
==============================================================================
--- tracker/instances/meta/html/_generic.item.html	(original)
+++ tracker/instances/meta/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Modified: tracker/instances/meta/html/issue.search.html
==============================================================================
--- tracker/instances/meta/html/issue.search.html	(original)
+++ tracker/instances/meta/html/issue.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/meta/html/page.html
==============================================================================
--- tracker/instances/meta/html/page.html	(original)
+++ tracker/instances/meta/html/page.html	Sun Aug 21 17:55:28 2011
@@ -28,9 +28,6 @@
 <tr>
  <td class="page-header-left">&nbsp;</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")
 -->

Modified: tracker/instances/meta/html/style.css
==============================================================================
--- tracker/instances/meta/html/style.css	(original)
+++ tracker/instances/meta/html/style.css	Sun Aug 21 17:55:28 2011
@@ -50,14 +50,6 @@
   padding: 5px;
   border-bottom: 1px solid #444;
 }
-#searchbox {
-    float: right;
-}
-
-div#body-title {
-  float: left;
-}
-
 
 div#searchbox {
   float: right;
@@ -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 */

Modified: tracker/instances/security/html/_generic.index.html
==============================================================================
--- tracker/instances/security/html/_generic.index.html	(original)
+++ tracker/instances/security/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/security/html/_generic.item.html
==============================================================================
--- tracker/instances/security/html/_generic.item.html	(original)
+++ tracker/instances/security/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Added: tracker/instances/security/html/_generic.keywords_expr.html
==============================================================================
--- (empty file)
+++ tracker/instances/security/html/_generic.keywords_expr.html	Sun Aug 21 17:55:28 2011
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+  <link rel="stylesheet" type="text/css" href="@@file/style.css" />
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+  <title tal:content="string:Roundup Keywords Expression Editor"></title>
+ </head>
+ <body class="body"
+       tal:content="structure python:utils.keywords_expressions(request)">
+ </body>
+</html>

Modified: tracker/instances/security/html/issue.search.html
==============================================================================
--- tracker/instances/security/html/issue.search.html	(original)
+++ tracker/instances/security/html/issue.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/security/html/page.html
==============================================================================
--- tracker/instances/security/html/page.html	(original)
+++ tracker/instances/security/html/page.html	Sun Aug 21 17:55:28 2011
@@ -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&nbsp;your&nbsp;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")
 -->

Modified: tracker/instances/security/html/style.css
==============================================================================
--- tracker/instances/security/html/style.css	(original)
+++ tracker/instances/security/html/style.css	Sun Aug 21 17:55:28 2011
@@ -33,13 +33,6 @@
     #searchbox { display: none;}
 }
 
-#searchbox { float: right;}
-
-div#body-title {
-  float: left;
-}
-
-
 div#searchbox 
 {
   float: right;
@@ -456,6 +449,17 @@
   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;

Modified: tracker/instances/security/schema.py
==============================================================================
--- tracker/instances/security/schema.py	(original)
+++ tracker/instances/security/schema.py	Sun Aug 21 17:55:28 2011
@@ -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).

Modified: tracker/instances/setuptools/html/_generic.index.html
==============================================================================
--- tracker/instances/setuptools/html/_generic.index.html	(original)
+++ tracker/instances/setuptools/html/_generic.index.html	Sun Aug 21 17:55:28 2011
@@ -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"

Modified: tracker/instances/setuptools/html/_generic.item.html
==============================================================================
--- tracker/instances/setuptools/html/_generic.item.html	(original)
+++ tracker/instances/setuptools/html/_generic.item.html	Sun Aug 21 17:55:28 2011
@@ -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>
 

Added: tracker/instances/setuptools/html/_generic.keywords_expr.html
==============================================================================
--- (empty file)
+++ tracker/instances/setuptools/html/_generic.keywords_expr.html	Sun Aug 21 17:55:28 2011
@@ -0,0 +1,11 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html>
+ <head>
+  <link rel="stylesheet" type="text/css" href="@@file/style.css" />
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8;" />
+  <title tal:content="string:Roundup Keywords Expression Editor"></title>
+ </head>
+ <body class="body"
+       tal:content="structure python:utils.keywords_expressions(request)">
+ </body>
+</html>

Modified: tracker/instances/setuptools/html/issue.search.html
==============================================================================
--- tracker/instances/setuptools/html/issue.search.html	(original)
+++ tracker/instances/setuptools/html/issue.search.html	Sun Aug 21 17:55:28 2011
@@ -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>&nbsp;</td>
  <td>&nbsp;</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>

Modified: tracker/instances/setuptools/html/page.html
==============================================================================
--- tracker/instances/setuptools/html/page.html	(original)
+++ tracker/instances/setuptools/html/page.html	Sun Aug 21 17:55:28 2011
@@ -28,9 +28,6 @@
 <tr>
  <td class="page-header-left">&nbsp;</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")
 -->

Modified: tracker/instances/setuptools/html/style.css
==============================================================================
--- tracker/instances/setuptools/html/style.css	(original)
+++ tracker/instances/setuptools/html/style.css	Sun Aug 21 17:55:28 2011
@@ -50,14 +50,6 @@
   padding: 5px;
   border-bottom: 1px solid #444;
 }
-#searchbox {
-    float: right;
-}
-
-div#body-title {
-  float: left;
-}
-
 
 div#searchbox {
   float: right;
@@ -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 */


More information about the Python-checkins mailing list