# HG changeset patch # User ymh # Date 1495201140 -7200 # Node ID 4e81c14180260845626766bb6837658d34ae447c # Parent 3fd34eef65167e9ea7eadf0e20e970ed49c5b6ea remove unnecessary return + use space instead of tabs diff -r 3fd34eef6516 -r 4e81c1418026 src/iconolab/search_indexes/forms.py --- a/src/iconolab/search_indexes/forms.py Thu May 18 12:21:06 2017 +0200 +++ b/src/iconolab/search_indexes/forms.py Fri May 19 15:39:00 2017 +0200 @@ -7,46 +7,46 @@ class IconolabSearchForm(SearchForm): - model_type = forms.ChoiceField(required=False, choices=(("images","Images"), ("annotations","Annotations")) ) - - def __init__(self, *args, **kwargs): - self.collection_name = kwargs.pop("collection_name") - if self.collection_name and Collection.objects.filter(name=self.collection_name).exists(): - self.collection = Collection.objects.get(name=self.collection_name) - selected_model_type = kwargs.pop("model_type", None) + model_type = forms.ChoiceField(required=False, choices=(("images","Images"), ("annotations","Annotations")) ) + + def __init__(self, *args, **kwargs): + self.collection_name = kwargs.pop("collection_name") + if self.collection_name and Collection.objects.filter(name=self.collection_name).exists(): + self.collection = Collection.objects.get(name=self.collection_name) + selected_model_type = kwargs.pop("model_type", None) - if selected_model_type is not None: - data = kwargs.get("data", None) - if data: - data = data.copy() - data["model_type"] = selected_model_type - kwargs['data'] = data + if selected_model_type is not None: + data = kwargs.get("data", None) + if data: + data = data.copy() + data["model_type"] = selected_model_type + kwargs['data'] = data + + super(IconolabSearchForm, self).__init__(*args, **kwargs) - super(IconolabSearchForm, self).__init__(*args, **kwargs) - - def no_query_found(self): - # load all - selected_type = self.cleaned_data.get("model_type") - qs = self.get_model_type_queryset(self.searchqueryset, selected_type).load_all() - return qs + def no_query_found(self): + # load all + selected_type = self.cleaned_data.get("model_type") + qs = self.get_model_type_queryset(self.searchqueryset, selected_type).load_all() + return qs + + def get_model_type_queryset(self, qs, model_type): + + if model_type == 'images': + qs = qs.models(Item).load_all_queryset(Item, Item.objects.select_related('collection', 'metadatas')) + if model_type == 'annotations': + qs = qs.models(Annotation).load_all_queryset(Annotation, Annotation.objects.select_related('image', 'image__item', 'image__item__collection', 'stats', 'current_revision', 'author')) - def get_model_type_queryset(self, qs, model_type): - - if model_type == 'images': - qs = qs.models(Item).load_all_queryset(Item, Item.objects.select_related('collection', 'metadatas')) - if model_type == 'annotations': - qs = qs.models(Annotation).load_all_queryset(Annotation, Annotation.objects.select_related('image', 'image__item', 'image__item__collection', 'stats', 'current_revision', 'author')) - - if self.collection_name is not None: - qs = qs.filter(collection = self.collection_name) + if self.collection_name is not None: + qs = qs.filter(collection = self.collection_name) + + return qs - return qs - - def search(self): - selected_type = self.cleaned_data.get("model_type") - qs = super(IconolabSearchForm, self).search() - if qs.count() == 0: - return qs - else: - qs = self.get_model_type_queryset(qs, selected_type).load_all() - return qs \ No newline at end of file + def search(self): + selected_type = self.cleaned_data.get("model_type") + qs = super(IconolabSearchForm, self).search() + if qs.count() == 0: + return qs + else: + qs = self.get_model_type_queryset(qs, selected_type).load_all() + return qs diff -r 3fd34eef6516 -r 4e81c1418026 src/iconolab/search_indexes/views.py --- a/src/iconolab/search_indexes/views.py Thu May 18 12:21:06 2017 +0200 +++ b/src/iconolab/search_indexes/views.py Fri May 19 15:39:00 2017 +0200 @@ -8,88 +8,86 @@ #override Search and Related QuerySet here class IconolabSearchView(SearchView): - form_class = IconolabSearchForm - queryset = RelatedSearchQuerySet() - template_name = "search/default_search.html" - load_all = True + form_class = IconolabSearchForm + queryset = RelatedSearchQuerySet() + template_name = "search/default_search.html" + load_all = True - templates_map = { - "images": "search/image_search.html", - "annotations": "search/annotation_search.html" - } + templates_map = { + "images": "search/image_search.html", + "annotations": "search/annotation_search.html" + } - def complete_url(self, url): - query = self.request.GET.get("q", None) - page = self.request.GET.get("page", None) + def complete_url(self, url): + query = self.request.GET.get("q", None) + page = self.request.GET.get("page", None) - queryargs = [] - query_string = "" + queryargs = [] + query_string = "" - if query is not None: - queryargs.append("q=" + query) - - if page is not None: - queryargs.append("page=" + page) + if query is not None: + queryargs.append("q=" + query) + + if page is not None: + queryargs.append("page=" + page) - if len(queryargs): - query_string = "&".join(queryargs) - url += "?" + query_string + if len(queryargs): + query_string = "&".join(queryargs) + url += "?" + query_string - return url + return url - def get(self, request, *args, **kwargs): + def get(self, request, *args, **kwargs): - self.model_type = request.GET.get('model_type', None) - self.paginate_by = request.GET.get('perpage', 10) - collection_name = self.kwargs.get('collection_name', None) + self.model_type = request.GET.get('model_type', None) + self.paginate_by = request.GET.get('perpage', 10) + collection_name = self.kwargs.get('collection_name', None) - if self.model_type is not None: - if collection_name is None: - #redirect to all_model_type - redirect_url = reverse('search_indexes:model_search', kwargs={'model_type': self.model_type}) - return redirect(self.complete_url(redirect_url)) - else: - redirect_url = reverse('search_indexes:collection_with_model_search', kwargs={'collection_name': collection_name, 'model_type':self.model_type}) - return redirect(self.complete_url(redirect_url)) - else: - has_error, redirectView = self.check_kwargs(**kwargs) - if has_error: - return redirectView(request) - return super(IconolabSearchView, self).get(request, *args, **kwargs) + if self.model_type is not None: + if collection_name is None: + #redirect to all_model_type + redirect_url = reverse('search_indexes:model_search', kwargs={'model_type': self.model_type}) + return redirect(self.complete_url(redirect_url)) + else: + redirect_url = reverse('search_indexes:collection_with_model_search', kwargs={'collection_name': collection_name, 'model_type':self.model_type}) + return redirect(self.complete_url(redirect_url)) + else: + has_error, redirectView = self.check_kwargs(**kwargs) + if has_error: + return redirectView(request) + return super(IconolabSearchView, self).get(request, *args, **kwargs) - def check_kwargs(self, **kwargs): - result = (False, None) - try: - collection_name = kwargs.get('collection_name', None) - if collection_name is None: - return result - collection = Collection.objects.get(name=kwargs.get('collection_name')) - except Collection.DoesNotExist: - result = (True, RedirectView.as_view(url=reverse('404error'))) - finally: - return result + def check_kwargs(self, **kwargs): + result = (False, None) + try: + collection_name = kwargs.get('collection_name', None) + if collection_name is None: + return result + collection = Collection.objects.get(name=kwargs.get('collection_name')) + except Collection.DoesNotExist: + result = (True, RedirectView.as_view(url=reverse('404error'))) + finally: + return result - def get_queryset(self): - qs = super(IconolabSearchView, self).get_queryset() - return IconolabSearchView.queryset - return qs + def get_queryset(self): + return IconolabSearchView.queryset - def get_form_kwargs(self): - kwargs = super(IconolabSearchView, self).get_form_kwargs() - kwargs['collection_name'] = self.kwargs.get('collection_name', None) - kwargs['model_type'] = self.kwargs.get('model_type', None) - return kwargs + def get_form_kwargs(self): + kwargs = super(IconolabSearchView, self).get_form_kwargs() + kwargs['collection_name'] = self.kwargs.get('collection_name', None) + kwargs['model_type'] = self.kwargs.get('model_type', None) + return kwargs - def get_template_names(self): - try : - model_type = self.kwargs.get('model_type', None) - template = IconolabSearchView.templates_map[model_type] - except KeyError: - template = IconolabSearchView.template_name - finally: - return [template] + def get_template_names(self): + try : + model_type = self.kwargs.get('model_type', None) + template = IconolabSearchView.templates_map[model_type] + except KeyError: + template = IconolabSearchView.template_name + finally: + return [template] - def get_context_data(self, *args, **kwargs): - context = super(IconolabSearchView, self).get_context_data(*args, **kwargs) - context['collection_name'] = self.kwargs.get('collection_name', '') - return context \ No newline at end of file + def get_context_data(self, *args, **kwargs): + context = super(IconolabSearchView, self).get_context_data(*args, **kwargs) + context['collection_name'] = self.kwargs.get('collection_name', '') + return context