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> |