diff --git a/apps/dynamic_search/forms.py b/apps/dynamic_search/forms.py index 82fc2f6c9d..272fca1687 100644 --- a/apps/dynamic_search/forms.py +++ b/apps/dynamic_search/forms.py @@ -1,19 +1,14 @@ +from __future__ import absolute_import + from django import forms from django.utils.translation import ugettext_lazy as _ -from dynamic_search.api import registered_search_dict +from haystack.forms import SearchForm + +from .api import registered_search_dict -class SearchForm(forms.Form): - q = forms.CharField(max_length=128, label=_(u'Search terms')) - source = forms.CharField( - max_length=32, - required=False, - widget=forms.widgets.HiddenInput() - ) - - -class AdvancedSearchForm(forms.Form): +class AdvancedSearchForm(SearchForm): def __init__(self, *args, **kwargs): super(AdvancedSearchForm, self).__init__(*args, **kwargs) @@ -23,3 +18,22 @@ class AdvancedSearchForm(forms.Form): label=field['title'], required=False ) + + def search(self): + if not self.is_valid(): + return self.no_query_found() + + #if not self.cleaned_data.get('q'): + # return self.no_query_found() + for field in self.fields: + print 'field', field + #sqs = self.searchqueryset.auto_query(self.cleaned_data['q']) + + if self.load_all: + sqs = sqs.load_all() + + return sqs + + def search(self): + sqs = super(ModelSearchForm, self).search() + return sqs.models(*self.get_models()) diff --git a/apps/dynamic_search/urls.py b/apps/dynamic_search/urls.py index 98660d6742..5c226e4838 100644 --- a/apps/dynamic_search/urls.py +++ b/apps/dynamic_search/urls.py @@ -3,10 +3,11 @@ from django.conf.urls.defaults import patterns, url from haystack.forms import SearchForm from .views import CustomSearchView +from .forms import AdvancedSearchForm urlpatterns = patterns('dynamic_search.views', url(r'^$', CustomSearchView(form_class=SearchForm), (), 'search'), - url(r'^advanced/$', 'search', {'advanced': True}, 'search_advanced'), + url(r'^advanced/$', CustomSearchView(form_class=AdvancedSearchForm), (), 'search_advanced'), url(r'^again/$', 'search_again', (), 'search_again'), url(r'^results/$', 'results', (), 'results'), )