Commit 379fe756028528554510b3d0a760463daed8eb97

Authored by Luan
1 parent 1414c269

Keeping value on filter inputs

src/search/views.py
... ... @@ -12,33 +12,94 @@ class ColabSearchView(SearchView):
12 12 'wiki': {
13 13 'icon': 'file',
14 14 'name': _(u'Wiki'),
15   - 'fields': {'author': _(u'Author')},
  15 + 'fields': (
  16 + ('author', _(u'Author'), self.request.GET.get('author')),
  17 + ),
16 18 },
17 19 'thread': {
18 20 'icon': 'thread',
19 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 31 'ticket': {
23 32 'icon': 'ticket',
24 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 74 'changeset': {
34 75 'icon': 'changeset',
35 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 86 'user': {
39 87 'icon': 'user',
40 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 32 <input type="hidden" name="q" value="{{ request.GET.q }}" />
33 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 36 <div class="form-group">
37 37 <label for="{{ field_lookup }}">{{ field_display }}</label>
38 38 {% ifequal field_lookup "list" %}
39 39 <select name="{{ field_lookup }}" class="form-control" multiple>
40 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 42 {% endfor %}
43 43 </select>
44 44 {% else %}
45 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 47 </div>
48 48 {% endifequal %}
49 49 </div>
... ...