смена сортировки фильтров при выбранной тематики или тега

remotes/origin/tests
Slava Kyrachevsky 9 years ago
parent a330b278af
commit a6165166f4
  1. 28
      README.md
  2. 11
      apps/events/forms.py
  3. 15
      apps/events/views.py
  4. 11
      templates/client/base_catalog.html
  5. 2
      templates/client/includes/events/filter_form.html

@ -1,14 +1,6 @@
Expomap project
#mysql
sudo apt-get install mysql-server mysql-client libmysqlclient-dev mysql-workbench
#memcached
sudo apt-get install libmemcached-dev
# south
pip install south -U
### proj/local.py EXAMPLE
```python
# -*- coding: utf-8 -*-
@ -67,20 +59,6 @@ DEBUG_TOOLBAR_PANELS = [
]
```
#
```sh
python manage.py syncdb --settins=proj.local
python manage.py migrate settings 0001 --fake --settins=proj.local
python manage.py migrate settings --settins=proj.local
```
#
```sh
python manage.py migrate accounts 0001 --fake
python manage.py migrate accounts
python manage.py migrate company 0001 --fake
python manage.py migrate company
```
# solr setup
```sh
@ -98,10 +76,4 @@ bin/solr start -p 8983
Если возникает ошибка Solr: [Reason: Error 404 Not Found] - http://stackoverflow.com/a/30633740
#
```sh
python manage.py migrate expobanner 0001 --fake
python manage.py migrate expobanner
```
Каталог support хранит конфиги для продакшн сервера

@ -244,8 +244,7 @@ class FilterForm(forms.Form):
price = FilterTypedMultipleChoiceField(
label=_(u'Стоимость'), coerce=int,
choices=PRICE,
required=False, widget=FilterCheckboxSelectMultiple(),
# help_text=_(u'За 1 м<sub>2</sub> необорудованной площади')
required=False, widget=FilterCheckboxSelectMultiple()
)
price_eur = FilterTypedMultipleChoiceField(
label=_(u'Стоимость'), coerce=int,
@ -281,6 +280,12 @@ class FilterForm(forms.Form):
self.fill_default_choices_from_cache()
self.fields['month'].choices = self.month_choices()
if self.data.get('tag') or self.data.get('theme'):
self.fields.keyOrder.remove('country')
self.fields.keyOrder.insert(1, 'country')
self.fields.keyOrder.remove('city')
self.fields.keyOrder.insert(2, 'city')
@property
def is_exposition(self):
types = self.cleaned_data.get('event_type', [])
@ -312,7 +317,7 @@ class FilterForm(forms.Form):
month = datetime.today().month
if cls._month != month or cls._month_choices is None:
year = datetime.today().year
depth = 7 # на сколько сколько месяцев вперед делать выборку (включая текущий)
depth = 7 # на сколько сколько месяцев вперед делать выборку (включая текущий)
monthes = dict([(v.get('value'), {'abr': k, 'name': v.get('name')}) for k, v in settings.MONTHES.iteritems()])
choices = []
for month_num in xrange(month, month + depth):

@ -1,18 +1,13 @@
# -*- coding: utf-8 -*-
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse, reverse_lazy
from django.core.urlresolvers import reverse_lazy
from django.db.models import Q
from django.http import Http404
from django.http import HttpResponseForbidden
from django.http import HttpResponseNotFound
from django.http import HttpResponsePermanentRedirect
from django.views.generic.edit import FormMixin, FormView
from django.conf import settings
from django.template.loader import render_to_string
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from haystack.query import SearchQuerySet
from emencia.django.newsletter.forms import ContactForm
from emencia.django.newsletter.models import Contact
@ -31,7 +26,7 @@ class FilterListView_(ContextMixin, FormMixin, ListView):
initial_ctx = {'filtering': True}
form_class = FilterForm
paginate_by = settings.CLIENT_PAGINATION
template_name = 'events/filter_listview.html'
template_name = 'client/events/filter_listview.html'
_ajax_results_template_name = 'events/filter_listview_ajax.html'
_ajax_form_template_name = 'includes/events/filter_form.html'
@ -43,13 +38,10 @@ class FilterListView_(ContextMixin, FormMixin, ListView):
def get_queryset(self):
if self.form.is_valid():
qs = self.form.filter()
# import pdb; pdb.set_trace()
else:
qs = self.form.default_filter()
if self.kwargs.get('with_form', True):
self.form.recalculate_choices()
# print(self.form.data, self.form.cleaned_data, self.form.get_date_begin_periods())
# import pdb; pdb.set_trace()
return qs
def get(self, request, *args, **kwargs):
@ -86,6 +78,7 @@ class FilterListView_(ContextMixin, FormMixin, ListView):
return context
class FilterListView(ReverseOrderMixin, FilterListView_):
pass
@ -191,4 +184,4 @@ def event_visit(request, event_type, id):
else:
args['not_authorized'] = True
args['success'] = True
return JsonResponse(args)
return JsonResponse(args)

@ -1,10 +1,7 @@
{% extends 'client/blank.html' %}
{% load static %}
{% load i18n %}
{% load static i18n %}
{% load template_filters %}
{% block main_part %}
<section class="layout main-part">
<div class="layout-wrap">
@ -14,16 +11,14 @@
<hr/>
{% include 'client/includes/feedback.html' %}
<hr />
{% comment %}
{% endcomment %}
{# {% include 'client/includes/online_consult.html' %} #}
{% if filtering == True %}
{% if filtering %}
<div id="filter_form_wraper">
{% include 'client/includes/events/filter_form.html' %}
</div>
{% elif can_filter == True %}
{% elif can_filter %}
<div id="filter_form_wraper">
<a href="{% url 'events:main' %}" id="get_filters" data-formurl="{% url 'events:form' %}" data-resultsurl="{% url 'events:results' %}">ВЫБРАТЬ ПО КРИТЕРИЯМ:</a>
</div>

@ -11,7 +11,6 @@
</div>
<div class="filters">
{# {% csrf_token %} #}
{% for hidden in form.hidden_fields %}
{{ hidden }}
{% endfor %}
@ -30,7 +29,6 @@
{% endfor %}
<a href="#" class="filter_period_trigger" id="filter_period_trigger">{{ form.get_dates }}</a>
{# <button type="submit">{% trans "Применить" %}</button> #}
</div>
{% include 'client/popups/filter_period.html' %}

Loading…
Cancel
Save