feat: basic pagination
This commit is contained in:
		@@ -22,6 +22,57 @@
 | 
			
		||||
        </div>
 | 
			
		||||
    </div>
 | 
			
		||||
    <div class="block">
 | 
			
		||||
        {% include "fellchensammlung/lists/list-animal-shelters.html" %}
 | 
			
		||||
        {% with rescue_organizations=rescue_organizations_to_list %}
 | 
			
		||||
            {% include "fellchensammlung/lists/list-animal-shelters.html" %}
 | 
			
		||||
        {% endwith %}
 | 
			
		||||
    </div>
 | 
			
		||||
    <nav class="pagination" role="navigation" aria-label="pagination">
 | 
			
		||||
 | 
			
		||||
        {% if rescue_organizations_to_list.has_previous %}
 | 
			
		||||
            <a class="pagination-previous" href="?page=1">« first</a>
 | 
			
		||||
            <a href="?page={{ rescue_organizations_to_list.previous_page_number }}">previous</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        {% if rescue_organizations_to_list.has_next %}
 | 
			
		||||
            <a class="pagination-next" href="?page={{ rescue_organizations_to_list.next_page_number }}">next</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
        <ul class="pagination-list">
 | 
			
		||||
            {% if rescue_organizations_to_list.has_previous %}
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="?page={{ rescue_organizations_to_list.previous_page_number }}"
 | 
			
		||||
                       class="pagination-link"
 | 
			
		||||
                       aria-label="Goto page {{ rescue_organizations_to_list.previous_page_number }}">
 | 
			
		||||
                        {{ rescue_organizations_to_list.previous_page_number }}
 | 
			
		||||
                    </a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <span class="pagination-ellipsis">…</span>
 | 
			
		||||
                </li>
 | 
			
		||||
            {% endif %}
 | 
			
		||||
            <li>
 | 
			
		||||
                <a
 | 
			
		||||
                        class="pagination-link is-current"
 | 
			
		||||
                        aria-label="Page {{ rescue_organizations_to_list.number }}"
 | 
			
		||||
                        aria-current="page"
 | 
			
		||||
                >{{ rescue_organizations_to_list.number }}</a
 | 
			
		||||
                >
 | 
			
		||||
            </li>
 | 
			
		||||
            {% if rescue_organizations_to_list.has_next %}
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="?page={{ rescue_organizations_to_list.next_page_number }}"
 | 
			
		||||
                       class="pagination-link"
 | 
			
		||||
                       aria-label="Goto page {{ rescue_organizations_to_list.next_page_number }}">{{ rescue_organizations_to_list.next_page_number }}</a>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <span class="pagination-ellipsis">…</span>
 | 
			
		||||
                </li>
 | 
			
		||||
                <li>
 | 
			
		||||
                    <a href="?page={{ rescue_organizations_to_list.paginator.num_pages }}"
 | 
			
		||||
                       class="pagination-link"
 | 
			
		||||
                       aria-label="Goto page {{ rescue_organizations_to_list.paginator.num_pages }}">
 | 
			
		||||
                        {{ rescue_organizations_to_list.paginator.num_pages }}
 | 
			
		||||
                    </a>
 | 
			
		||||
                </li>
 | 
			
		||||
            {% endif %}
 | 
			
		||||
        </ul>
 | 
			
		||||
    </nav>
 | 
			
		||||
{% endblock %}
 | 
			
		||||
 
 | 
			
		||||
@@ -2,6 +2,7 @@ import logging
 | 
			
		||||
from datetime import timedelta
 | 
			
		||||
 | 
			
		||||
from django.contrib.auth.views import redirect_to_login
 | 
			
		||||
from django.core.paginator import Paginator
 | 
			
		||||
from django.http import HttpResponseRedirect, JsonResponse, HttpResponse
 | 
			
		||||
from django.http.response import HttpResponseForbidden
 | 
			
		||||
from django.shortcuts import render, redirect, get_object_or_404
 | 
			
		||||
@@ -693,7 +694,11 @@ def external_site_warning(request, template_name='fellchensammlung/external-site
 | 
			
		||||
 | 
			
		||||
def list_rescue_organizations(request, template='fellchensammlung/animal-shelters.html'):
 | 
			
		||||
    rescue_organizations = RescueOrganization.objects.all()
 | 
			
		||||
    context = {"rescue_organizations": rescue_organizations,
 | 
			
		||||
    paginator = Paginator(rescue_organizations, 25)
 | 
			
		||||
 | 
			
		||||
    page_number = request.GET.get("page")
 | 
			
		||||
    rescue_organizations_to_list = paginator.get_page(page_number)
 | 
			
		||||
    context = {"rescue_organizations_to_list": rescue_organizations_to_list,
 | 
			
		||||
               "show_rescue_orgs": True}
 | 
			
		||||
    return render(request, template, context=context)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user