# -*- coding: utf-8 -*- from django import forms from django.utils.translation import ugettext_lazy as _ from theme.models import Theme from haystack.query import SearchQuerySet class AdminSearchForm(forms.Form): search_name = forms.CharField(required=False, max_length=50) class ThemeSearch(forms.Form): event = forms.MultipleChoiceField(required=False,widget=forms.CheckboxSelectMultiple, choices=[(0, _(u'выставки')), (1, _(u'конференции')), (2, _(u'семинары')), (3, _(u'вебинары'))]) theme = forms.ModelMultipleChoiceField(required=False, queryset=Theme.objects.all(), widget=forms.CheckboxSelectMultiple) class AbstractSearch(forms.Form): q = forms.CharField(label=_(u'Поиск'), required=False) w = forms.CharField(label=_(u'Где'), required=False) model = None def search(self): if not self.is_valid(): return [] q = self.cleaned_data.get('q') w = self.cleaned_data.get('w') if not q and not w: return [] sqs = SearchQuerySet().models(self.model) if q: sqs = sqs.auto_query(q) if w: sqs = sqs.filter(where__contains=w) return sqs #sqs = SearchQuerySet().models(self.model).auto_query(self.cleaned_data.get('q')) #return sqs from place_exposition.models import PlaceExposition from place_exposition.models import EXPOSITION_TYPE class SearchPlaceExpositionForm(AbstractSearch): model = PlaceExposition type = forms.ChoiceField(choices=EXPOSITION_TYPE, required=False)