From e1694f210a0394f62f334bbd7b5cb12fc575006e Mon Sep 17 00:00:00 2001 From: Gust Date: Mon, 26 Oct 2015 17:39:24 -0200 Subject: [PATCH] Moved generic filters from search --- colab/accounts/filters.py | 24 ++++++++++++++++++++++++ colab/search/tests.py | 6 +----- colab/search/views.py | 41 +---------------------------------------- colab/super_archives/filters.py | 22 ++++++++++++++++++++++ 4 files changed, 48 insertions(+), 45 deletions(-) create mode 100644 colab/accounts/filters.py create mode 100644 colab/super_archives/filters.py diff --git a/colab/accounts/filters.py b/colab/accounts/filters.py new file mode 100644 index 0000000..6be6302 --- /dev/null +++ b/colab/accounts/filters.py @@ -0,0 +1,24 @@ +from django.utils.translation import ugettext as _ + + +def get_filters(request): + return { + 'user': { + 'name': _(u'User'), + 'icon': 'user', + 'fields': ( + ( + 'username', + _(u'Username'), + request.get('username'), + ), + ('name', _(u'Name'), request.get('name')), + ( + 'institution', + _(u'Institution'), + request.get('institution'), + ), + ('role', _(u'Role'), request.get('role')) + ), + }, + } diff --git a/colab/search/tests.py b/colab/search/tests.py index effb722..056f462 100644 --- a/colab/search/tests.py +++ b/colab/search/tests.py @@ -77,10 +77,6 @@ class SearchViewTest(TestCase): request = self.client.get('/search/?q=') - value = [ - ('plugin_name', 'PluginData', 'plugin_icon'), - ('user', u'User', 'user'), - ('thread', u'Discussion', 'envelope') - ] + value = [('plugin_name', 'PluginData', 'plugin_icon')] self.assertEqual(request.context['filters_options'], value) diff --git a/colab/search/views.py b/colab/search/views.py index 21254d0..decc3db 100644 --- a/colab/search/views.py +++ b/colab/search/views.py @@ -1,11 +1,9 @@ # -*- coding:utf-8 -*- from django.conf import settings -from django.utils.translation import ugettext as _ from haystack.views import SearchView from colab.plugins.utils import filters_importer -from colab.super_archives.models import MailingList class ColabSearchView(SearchView): @@ -15,43 +13,6 @@ class ColabSearchView(SearchView): self.request.LANGUAGE_CODE, (None, None) ) - types = { - 'thread': { - 'name': _(u'Discussion'), - 'icon': 'envelope', - 'fields': ( - ('author', _(u'Author'), self.request.GET.get('author')), - ( - 'list', - _(u'Mailinglist'), - self.request.GET.getlist('list'), - 'list', - [(v, v) for v in MailingList.objects.values_list( - 'name', flat=True)] - ), - ), - }, - } - - types['user'] = { - 'name': _(u'User'), - 'icon': 'user', - 'fields': ( - ( - 'username', - _(u'Username'), - self.request.GET.get('username'), - ), - ('name', _(u'Name'), self.request.GET.get('name')), - ( - 'institution', - _(u'Institution'), - self.request.GET.get('institution'), - ), - ('role', _(u'Role'), self.request.GET.get('role')) - ), - } - try: type_chosen = self.form.cleaned_data.get('type') except AttributeError: @@ -65,7 +26,7 @@ class ColabSearchView(SearchView): size_chosen = self.request.GET.get('size') used_by_chosen = self.request.GET.get('used_by') - types.update(filters_importer.import_plugin_filters(self.request)) + types = filters_importer.import_plugin_filters(self.request.GET) filters_options = [(k, v['name'], v['icon']) for (k, v) in types.iteritems()] diff --git a/colab/super_archives/filters.py b/colab/super_archives/filters.py new file mode 100644 index 0000000..3801780 --- /dev/null +++ b/colab/super_archives/filters.py @@ -0,0 +1,22 @@ +from django.utils.translation import ugettext as _ +from colab.super_archives.models import MailingList + + +def get_filters(request): + return { + 'thread': { + 'name': _(u'Discussion'), + 'icon': 'envelope', + 'fields': ( + ('author', _(u'Author'), request.get('author')), + ( + 'list', + _(u'Mailinglist'), + request.get('list'), + 'list', + [(v, v) for v in MailingList.objects.values_list( + 'name', flat=True)] + ), + ), + }, + } -- libgit2 0.21.2