Commit 379fe756028528554510b3d0a760463daed8eb97
1 parent
1414c269
Exists in
master
and in
39 other branches
Keeping value on filter inputs
Showing
2 changed files
with
75 additions
and
14 deletions
Show diff stats
src/search/views.py
@@ -12,33 +12,94 @@ class ColabSearchView(SearchView): | @@ -12,33 +12,94 @@ class ColabSearchView(SearchView): | ||
12 | 'wiki': { | 12 | 'wiki': { |
13 | 'icon': 'file', | 13 | 'icon': 'file', |
14 | 'name': _(u'Wiki'), | 14 | 'name': _(u'Wiki'), |
15 | - 'fields': {'author': _(u'Author')}, | 15 | + 'fields': ( |
16 | + ('author', _(u'Author'), self.request.GET.get('author')), | ||
17 | + ), | ||
16 | }, | 18 | }, |
17 | 'thread': { | 19 | 'thread': { |
18 | 'icon': 'thread', | 20 | 'icon': 'thread', |
19 | 'name': _(u'Discussion'), | 21 | 'name': _(u'Discussion'), |
20 | - 'fields': {'author': _(u'Author'), 'list': _(u'Mailinglist')}, | 22 | + 'fields': ( |
23 | + ('author', _(u'Author'), self.request.GET.get('author')), | ||
24 | + ( | ||
25 | + 'list', | ||
26 | + _(u'Mailinglist'), | ||
27 | + self.request.GET.getlist('list') | ||
28 | + ), | ||
29 | + ), | ||
21 | }, | 30 | }, |
22 | 'ticket': { | 31 | 'ticket': { |
23 | 'icon': 'ticket', | 32 | 'icon': 'ticket', |
24 | 'name': _(u'Ticket'), | 33 | 'name': _(u'Ticket'), |
25 | - 'fields': { | ||
26 | - 'milestone': _(u'Milestone'), 'priority': _(u'Priority'), | ||
27 | - 'component': _(u'Component'), 'severity': _(u'Severity'), | ||
28 | - 'reporter': _(u'Reporter'), 'author': _(u'Author'), | ||
29 | - 'tag': _(u'Status'), 'keywords': _(u'Keywords'), | ||
30 | - 'collaborators': _(u'Collaborators'), | ||
31 | - }, | 34 | + 'fields': ( |
35 | + ( | ||
36 | + 'milestone', | ||
37 | + _(u'Milestone'), | ||
38 | + self.request.GET.get('milestone') | ||
39 | + ), | ||
40 | + ( | ||
41 | + 'priority', | ||
42 | + _(u'Priority'), | ||
43 | + self.request.GET.get('priority') | ||
44 | + ), | ||
45 | + ( | ||
46 | + 'component', | ||
47 | + _(u'Component'), | ||
48 | + self.request.GET.get('component') | ||
49 | + ), | ||
50 | + ( | ||
51 | + 'severity', | ||
52 | + _(u'Severity'), | ||
53 | + self.request.GET.get('severity') | ||
54 | + ), | ||
55 | + ( | ||
56 | + 'reporter', | ||
57 | + _(u'Reporter'), | ||
58 | + self.request.GET.get('reporter') | ||
59 | + ), | ||
60 | + ('author', _(u'Author'), self.request.GET.get('author')), | ||
61 | + ('tag', _(u'Status'), self.request.GET.get('tag')), | ||
62 | + ( | ||
63 | + 'keywords', | ||
64 | + _(u'Keywords'), | ||
65 | + self.request.GET.get('keywords'), | ||
66 | + ), | ||
67 | + ( | ||
68 | + 'collaborators', | ||
69 | + _(u'Collaborators'), | ||
70 | + self.request.GET.get('collaborators') | ||
71 | + ), | ||
72 | + ), | ||
32 | }, | 73 | }, |
33 | 'changeset': { | 74 | 'changeset': { |
34 | 'icon': 'changeset', | 75 | 'icon': 'changeset', |
35 | 'name': _(u'Changeset'), | 76 | 'name': _(u'Changeset'), |
36 | - 'fields': {'author': _(u'Author'), 'repository_name': _(u'Repository')}, | 77 | + 'fields': ( |
78 | + ('author', _(u'Author'), self.request.GET.get('author')), | ||
79 | + ( | ||
80 | + 'repository_name', | ||
81 | + _(u'Repository'), | ||
82 | + self.request.GET.get('repository_name'), | ||
83 | + ), | ||
84 | + ) | ||
37 | }, | 85 | }, |
38 | 'user': { | 86 | 'user': { |
39 | 'icon': 'user', | 87 | 'icon': 'user', |
40 | 'name': _(u'User'), | 88 | 'name': _(u'User'), |
41 | - 'fields': {'username': _(u'Username'), 'name': _(u'Name'), 'institution': _(u'Institution'), 'role': _(u'Role')}, | 89 | + 'fields': ( |
90 | + ( | ||
91 | + 'username', | ||
92 | + _(u'Username'), | ||
93 | + self.request.GET.get('username'), | ||
94 | + ), | ||
95 | + ('name', _(u'Name'), self.request.GET.get('name')), | ||
96 | + ( | ||
97 | + 'institution', | ||
98 | + _(u'Institution'), | ||
99 | + self.request.GET.get('institution'), | ||
100 | + ), | ||
101 | + ('role', _(u'Role'), self.request.GET.get('role')) | ||
102 | + ), | ||
42 | }, | 103 | }, |
43 | } | 104 | } |
44 | 105 |
src/templates/search/search.html
@@ -32,18 +32,18 @@ | @@ -32,18 +32,18 @@ | ||
32 | <input type="hidden" name="q" value="{{ request.GET.q }}" /> | 32 | <input type="hidden" name="q" value="{{ request.GET.q }}" /> |
33 | <input type="hidden" name="type" value="{{ type_chosen }}" /> | 33 | <input type="hidden" name="type" value="{{ type_chosen }}" /> |
34 | 34 | ||
35 | - {% for field_lookup, field_display in filters.fields.items %} | 35 | + {% for field_lookup, field_display, field_value in filters.fields %} |
36 | <div class="form-group"> | 36 | <div class="form-group"> |
37 | <label for="{{ field_lookup }}">{{ field_display }}</label> | 37 | <label for="{{ field_lookup }}">{{ field_display }}</label> |
38 | {% ifequal field_lookup "list" %} | 38 | {% ifequal field_lookup "list" %} |
39 | <select name="{{ field_lookup }}" class="form-control" multiple> | 39 | <select name="{{ field_lookup }}" class="form-control" multiple> |
40 | {% for value, option in form.fields.list.choices %} | 40 | {% for value, option in form.fields.list.choices %} |
41 | - <option value="{{ value }}">{{ option }}</option> | 41 | + <option value="{{ value }}" {% if value in field_value %}selected{% endif %}>{{ option }}</option> |
42 | {% endfor %} | 42 | {% endfor %} |
43 | </select> | 43 | </select> |
44 | {% else %} | 44 | {% else %} |
45 | <div class="input-group"> | 45 | <div class="input-group"> |
46 | - <input type="text" class="form-control" placeholder="{{ field_display }}" name="{{ field_lookup }}" value=""> | 46 | + <input type="text" class="form-control" placeholder="{{ field_display }}" name="{{ field_lookup }}" {% if field_value %}value="{{ field_value }}"{% endif %}> |
47 | </div> | 47 | </div> |
48 | {% endifequal %} | 48 | {% endifequal %} |
49 | </div> | 49 | </div> |