1461, фильтры

сделал отдельный линк для аяксового пагинатора, возвращает только результаты (без пересчета формы)
remotes/origin/stage5
Alexander Burdeiny 10 years ago
parent 8003fbb01f
commit 83c2870319
  1. 1
      events/urls.py
  2. 9
      events/views.py
  3. 19
      templates/client/includes/events/paginator.html

@ -6,4 +6,5 @@ from .views import FilterListView
urlpatterns = patterns('', urlpatterns = patterns('',
url(r'^$', FilterListView.as_view(), name='main'), url(r'^$', FilterListView.as_view(), name='main'),
url(r'^results/$', FilterListView.as_view(), name='results'),
) )

@ -34,7 +34,8 @@ class FilterListView(ContextMixin, FormMixin, ListView):
qs = self.form.filter() qs = self.form.filter()
else: else:
qs = self.form.default_filter() qs = self.form.default_filter()
self.form.recalculate_choices() if kwargs.get('noform', True):
self.form.recalculate_choices()
# import pdb; pdb.set_trace() # import pdb; pdb.set_trace()
return qs return qs
@ -48,8 +49,12 @@ class FilterListView(ContextMixin, FormMixin, ListView):
data = { data = {
'success': True, 'success': True,
'results': render_to_string(self._ajax_results_template_name, ctx), 'results': render_to_string(self._ajax_results_template_name, ctx),
'form': render_to_string(self._ajax_form_template_name, ctx),
} }
if kwargs.get('noform', True):
data.update({
'form': render_to_string(self._ajax_form_template_name, ctx),
})
return JsonResponse(data) return JsonResponse(data)
# usual get # usual get
return super(FilterListView, self).get(request, *args, **kwargs) return super(FilterListView, self).get(request, *args, **kwargs)

@ -2,44 +2,47 @@
{% load template_filters %} {% load template_filters %}
{% if page_obj.paginator.num_pages > 1 %} {% if page_obj.paginator.num_pages > 1 %}
<div class="pagination clearfix"> {% url 'events:results' as results_url %}
<div class="pagination clearfix ajax-paginator">
<div class="pg-info"> {% trans 'Показано' %} {{ page_obj.start_index }} - {{ page_obj.end_index }} <i>({% trans 'всего' %} {{ page_obj.paginator.count }} {% trans 'позиций' %})</i></div> <div class="pg-info"> {% trans 'Показано' %} {{ page_obj.start_index }} - {{ page_obj.end_index }} <i>({% trans 'всего' %} {{ page_obj.paginator.count }} {% trans 'позиций' %})</i></div>
<div class="pg-body"> <div class="pg-body">
{% if page_obj.has_previous %} {% if page_obj.has_previous %}
<a class="pg-prev" href="?page={{ page_obj.previous_page_number }}&{{ GETparams }}">{% trans 'Предыдущая' %}</a> <a class="pg-prev" href="{{ results_url }}?page={{ page_obj.previous_page_number }}&{{ GETparams }}">{% trans 'Предыдущая' %}</a>
{% else %} {% else %}
<a class="pg-prev disabled" href="#">{% trans 'Предыдущая' %}</a> <a class="pg-prev disabled" href="#">{% trans 'Предыдущая' %}</a>
{% endif %} {% endif %}
<ul> <ul>
{% if page_obj.number > 2 %} {% if page_obj.number > 2 %}
<li><a href="?page={{ 1 }}&{{ GETparams }} ">{{ 1 }}</a></li> <li><a href="{{ results_url }}?page={{ 1 }}&{{ GETparams }} ">{{ 1 }}</a></li>
{% if page_obj.number > 3 %} {% if page_obj.number > 3 %}
<li>...</li> <li>...</li>
{% endif %} {% endif %}
{% endif %} {% endif %}
{% if page_obj.has_previous %} {% if page_obj.has_previous %}
<li><a href="?page={{ page_obj.previous_page_number }}&{{ GETparams }}">{{ page_obj.previous_page_number }}</a></li> <li><a href="{{ results_url }}?page={{ page_obj.previous_page_number }}&{{ GETparams }}">{{ page_obj.previous_page_number }}</a></li>
{% endif %} {% endif %}
<li><b>{{ page_obj.number }}</b></li> <li><b>{{ page_obj.number }}</b></li>
{% if page_obj.has_next %} {% if page_obj.has_next %}
<li><a href="?page={{ page_obj.next_page_number }}&{{ GETparams }}">{{ page_obj.next_page_number }}</a></li> <li><a href="{{ results_url }}?page={{ page_obj.next_page_number }}&{{ GETparams }}">{{ page_obj.next_page_number }}</a></li>
{% endif %} {% endif %}
{% if page_obj.paginator.num_pages|subtract:page_obj.number > 1 %} {% if page_obj.paginator.num_pages|subtract:page_obj.number > 1 %}
{% if page_obj.paginator.num_pages|subtract:page_obj.number > 2 %} {% if page_obj.paginator.num_pages|subtract:page_obj.number > 2 %}
<li>...</li> <li>...</li>
{% endif %} {% endif %}
<li><a href="?page={{ page_obj.paginator.num_pages }}&{{ GETparams }}">{{ page_obj.paginator.num_pages }}</a></li> <li><a href="{{ results_url }}?page={{ page_obj.paginator.num_pages }}&{{ GETparams }}">{{ page_obj.paginator.num_pages }}</a></li>
{% endif %} {% endif %}
</ul> </ul>
{% if page_obj.has_next %} {% if page_obj.has_next %}
<a class="pg-next" href="?page={{ page_obj.next_page_number }}&{{ GETparams }}">{% trans 'Следующая' %}</a> <a class="pg-next" href="{{ results_url }}?page={{ page_obj.next_page_number }}&{{ GETparams }}">{% trans 'Следующая' %}</a>
{% else %} {% else %}
<a class="pg-next disabled" href="#">{% trans 'Следующая' %}</a> <a class="pg-next disabled" href="#">{% trans 'Следующая' %}</a>
{% endif %} {% endif %}
</div> </div>
</div> </div>
{% endif %} {% endif %}

Loading…
Cancel
Save