| CODENOTIFIER | HelpYou are not signed inSign in |
Project: Trac
Revision: 7508
Author: rblank
Date: 01 Sep 2008 20:42:27
Diff at Trac: http://trac.edgewall.org/changeset/7508
Changes:Merged [7507] from 0.11-stable.
Files:| ... | ...@@ -31,7 +31,8 @@ | |
| 31 | 31 | ${wiki_to_html(context(report_resource), description)} |
| 32 | 32 | </div> |
| 33 | 33 | |
| 34 | <form id="query" method="post" action="${href.query()}"> | |
| 34 | <form id="query" method="post" action="${href.query()}" | |
| 35 | py:with="field_names = sorted(fields.iterkeys(), key=lambda name: labels[name].lower())"> | |
| 35 | 36 | <fieldset id="filters"> |
| 36 | 37 | <input py:if="'id' in query.constraints" type="hidden" name="id" value="${query.constraints['id']}" /> |
| 37 | 38 | <legend class="foldable">Filters</legend> |
| ... | ...@@ -39,7 +40,7 @@ | |
| 39 | 40 | <tbody> |
| 40 | 41 | <tr style="height: 1px"><td colspan="4"></td></tr> |
| 41 | 42 | </tbody> |
| 42 | <py:for each="field_name, field in fields.items()"> | |
| 43 | <py:for each="field_name in field_names" py:with="field = fields[field_name]"> | |
| 43 | 44 | <py:for each="constraint_name, constraint in constraints.items()"> |
| 44 | 45 | <tbody py:if="field_name == constraint_name" |
| 45 | 46 | py:with="multiline = field.type in ('select', 'text')"> |
| ... | ...@@ -113,7 +114,7 @@ | |
| 113 | 114 | <label for="add_filter">Add filter</label> |
| 114 | 115 | <select name="add_filter" id="add_filter"> |
| 115 | 116 | <option></option> |
| 116 | <option py:for="field_name, field in fields.items()" | |
| 117 | <option py:for="field_name in field_names" py:with="field = fields[field_name]" | |
| 117 | 118 | value="$field_name" |
| 118 | 119 | disabled="${(field.type == 'radio' and |
| 119 | 120 | field_name in constraints and |
| ... | ...@@ -147,10 +148,11 @@ | |
| 147 | 148 | <label for="group">Group results by</label> |
| 148 | 149 | <select name="group" id="group"> |
| 149 | 150 | <option></option> |
| 150 | <option py:for="field_name, field in fields.items()" | |
| 151 | py:if="field.type in ('select', 'radio') or field_name in ('owner', 'reporter')" | |
| 152 | selected="${field_name == query.group or None}" | |
| 153 | value="${field_name}">${field.label}</option> | |
| 151 | <py:for each="field_name in field_names" py:with="field = fields[field_name]"> | |
| 152 | <option py:if="field.type in ('select', 'radio') or field_name in ('owner', 'reporter')" | |
| 153 | selected="${field_name == query.group or None}" | |
| 154 | value="${field_name}">${field.label}</option> | |
| 155 | </py:for> | |
| 154 | 156 | </select> |
| 155 | 157 | <input type="checkbox" name="groupdesc" id="groupdesc" |
| 156 | 158 | checked="${query.groupdesc or None}" /> |
| ... | ...@@ -909,7 +909,11 @@ | |
| 909 | 909 | data['all_columns'] = query.get_all_columns() |
| 910 | 910 | # Don't allow the user to remove the id column |
| 911 | 911 | data['all_columns'].remove('id') |
| 912 | data['all_textareas'] = query.get_all_textareas() | |
| 912 | def field_key(name): | |
| 913 | return data['labels'][name].lower() | |
| 914 | data['all_columns'].sort(key=field_key) | |
| 915 | data['all_textareas'] = sorted(query.get_all_textareas(), | |
| 916 | key=field_key) | |
| 913 | 917 | |
| 914 | 918 | add_stylesheet(req, 'common/css/report.css') |
| 915 | 919 | add_script(req, 'common/js/query.js') |