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