remotes/origin/1203
Nazar Kotyuk 12 years ago
parent 6f112404b1
commit 3d5e89b48b
  1. 1
      company/views.py
  2. 2
      conference/search_indexes.py
  3. 2
      exposition/search_indexes.py
  4. 3
      exposition/urls.py
  5. 39
      exposition/views.py
  6. 28
      functions/search_forms.py
  7. 7
      place_exposition/search_indexes.py
  8. 2
      seminar/search_indexes.py
  9. 2
      webinar/search_indexes.py

@ -21,7 +21,6 @@ class CompanySearchView(ListView):
if form.is_valid():
return form.search()
else:
asdsa
return EmptySearchQuerySet()
else:
return EmptySearchQuerySet()

@ -2,7 +2,7 @@ from haystack import indexes
from models import Conference
class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
class ConferenceIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
where = indexes.MultiValueField()
def prepare_where(self, obj):

@ -2,7 +2,7 @@ from haystack import indexes
from models import Exposition
class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
class ExpositionIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
where = indexes.MultiValueField()
def prepare_where(self, obj):

@ -1,9 +1,10 @@
# -*- coding: utf-8 -*-
from django.conf.urls import patterns, include, url
from views import ExpositionView, ExpositionVisitors, ExpositionMembers, ExpositionStatistic, ExpositionPrice,\
ExpositionProgramme
ExpositionProgramme, ExpositionSearchView
urlpatterns = patterns('',
url(r'expositions/search/', ExpositionSearchView.as_view()),
url(r'expositions/(?P<params>.*)/(?P<page>\d+)/$', ExpositionView.as_view()),
url(r'expositions/(?P<page>\d+)/$', ExpositionView.as_view()),
#

@ -9,13 +9,52 @@ from models import Exposition
from accounts.models import User
from functions.custom_views import ExpoListView, ExpoMixin, EventDetail
from django.views.generic import ListView, DetailView
from haystack.query import EmptySearchQuerySet
from functions.search_forms import ExpositionSearchForm
#
import json
from django.utils.translation import ugettext as _
class ExpositionSearchView(ListView):
paginate_by = 2
template_name = 'exposition/search.html'
search_form = ExpositionSearchForm
model = Exposition
def get_queryset(self):
if self.request.GET:
form = self.search_form(self.request.GET)
if form.is_valid():
return form.search()
else:
return EmptySearchQuerySet()
else:
return EmptySearchQuerySet()
def get_context_data(self, **kwargs):
context = super(ExpositionSearchView, self).get_context_data(**kwargs)
context['search_form'] = ExpositionSearchForm(self.request.GET)
queries = self.request.GET.copy()
if queries.has_key('page'):
del queries['page']
context['queries'] = queries
context['search_action'] = '/expositions/search/'
return context
class ExpositionView(ExpoListView):
model = Exposition
template_name = 'event_catalog.html'
search_form = ExpositionSearchForm
def get_context_data(self, **kwargs):
context = super(ExpositionView, self).get_context_data(**kwargs)
context['search_action'] = '/expositions/search/'
return context
class ExpositionVisitors(ExpositionView):
model = Exposition

@ -75,6 +75,34 @@ class CompanySearchForm(AbstactSearchForm):
return sqs
class ExpositionSearchForm(forms.Form):
q = forms.CharField(label=_(u'Поиск'), required=False)
w = forms.CharField(label=_(u'Где'), required=False)
# fr = forms.DateField(required=False)
# to = forms.DateField(required=False)
def search(self):
if not self.is_valid():
return EmptySearchQuerySet()
q = self.cleaned_data.get('q')
w = self.cleaned_data.get('w')
if not q and not w:
return EmptySearchQuerySet()
sqs = SearchQuerySet().models(Exposition)
if q:
sqs = sqs.auto_query(q)
if w:
sqs = sqs.filter(where__contains=w)
return sqs
class EventSearchForm(forms.Form):
q = forms.CharField(label=_(u'Поиск'), required=False)
w = forms.CharField(label=_(u'Где'), required=False)

@ -5,9 +5,9 @@ from models import PlaceExposition
class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
where = indexes.MultiValueField()
country = indexes.CharField(model_attr='country', null=True)
city = indexes.CharField(model_attr='city', null=True)
#country = indexes.CharField(model_attr='country', null=True)
#city = indexes.CharField(model_attr='city', null=True)
"""
def prepare_country(self, obj):
if obj.country:
return '%s'%obj.country.id
@ -17,6 +17,7 @@ class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
if obj.city:
return '%s'%obj.country.city
return ''
"""
def prepare_where(self, obj):
country = [tr.name for tr in obj.country.translations.all()]

@ -2,7 +2,7 @@ from haystack import indexes
from models import Seminar
class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
class SeminarIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
where = indexes.MultiValueField()
def prepare_where(self, obj):

@ -2,7 +2,7 @@ from haystack import indexes
from models import Webinar
class PlaceExpositionIndex(indexes.SearchIndex, indexes.Indexable):
class WebinarIndex(indexes.SearchIndex, indexes.Indexable):
text = indexes.CharField(document=True, use_template=True)
where = indexes.MultiValueField()
def prepare_where(self, obj):

Loading…
Cancel
Save