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('',
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()
else:
qs = self.form.default_filter()
self.form.recalculate_choices()
if kwargs.get('noform', True):
self.form.recalculate_choices()
# import pdb; pdb.set_trace()
return qs
@ -48,8 +49,12 @@ class FilterListView(ContextMixin, FormMixin, ListView):
data = {
'success': True,
'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)
# usual get
return super(FilterListView, self).get(request, *args, **kwargs)

@ -2,44 +2,47 @@
{% load template_filters %}
{% 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-body">
{% 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 %}
<a class="pg-prev disabled" href="#">{% trans 'Предыдущая' %}</a>
<a class="pg-prev disabled" href="#">{% trans 'Предыдущая' %}</a>
{% endif %}
<ul>
{% 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 %}
<li>...</li>
{% endif %}
{% endif %}
{% 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 %}
<li><b>{{ page_obj.number }}</b></li>
{% 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 %}
{% if page_obj.paginator.num_pages|subtract:page_obj.number > 1 %}
{% if page_obj.paginator.num_pages|subtract:page_obj.number > 2 %}
<li>...</li>
{% 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 %}
</ul>
{% 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 %}
<a class="pg-next disabled" href="#">{% trans 'Следующая' %}</a>
{% endif %}
</div>
</div>
{% endif %}

Loading…
Cancel
Save