New templatetag for pagination
This commit is contained in:
		
							parent
							
								
									28269a3a93
								
							
						
					
					
						commit
						bf3cf6f217
					
				| 
						 | 
					@ -0,0 +1,28 @@
 | 
				
			||||||
 | 
					{% load i18n %}
 | 
				
			||||||
 | 
					{% load custom_gas_tags %}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					{% if page %}
 | 
				
			||||||
 | 
					<nav class="pagination">
 | 
				
			||||||
 | 
					    <ul>
 | 
				
			||||||
 | 
					        {% if page.has_previous %}
 | 
				
			||||||
 | 
					        <li>
 | 
				
			||||||
 | 
					            <a href="?{% url_replace request page=page.previous_page_number %}">{% trans "Previous" %}</a>
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
 | 
					        <li class="current">
 | 
				
			||||||
 | 
					            {% blocktrans with number=page.number total=page.paginator.num_pages %}
 | 
				
			||||||
 | 
					            Page {{ number }} of {{ total }}
 | 
				
			||||||
 | 
					            {% endblocktrans %}
 | 
				
			||||||
 | 
					        </li>
 | 
				
			||||||
 | 
					        {% if page.has_next %}
 | 
				
			||||||
 | 
					            <li><a href="?{% url_replace request page=page.next_page_number %}">{% trans "Next" %}</a></li>
 | 
				
			||||||
 | 
					        {% endif %}
 | 
				
			||||||
 | 
					    </ul>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    <p>
 | 
				
			||||||
 | 
					        {% blocktrans with start=page.start_index end=page.end_index total_objects=page.paginator.count %}
 | 
				
			||||||
 | 
					        From {{ start }} to {{ end }} of {{ total_objects }} total items.
 | 
				
			||||||
 | 
					        {% endblocktrans %}
 | 
				
			||||||
 | 
					    </p>
 | 
				
			||||||
 | 
					</nav>
 | 
				
			||||||
 | 
					{% endif %}
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
# -*- coding: utf-8  -*-
 | 
					 | 
				
			||||||
import datetime
 | 
					import datetime
 | 
				
			||||||
 | 
					import json
 | 
				
			||||||
 | 
					from urllib.parse import urlencode
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from django import template
 | 
					from django import template
 | 
				
			||||||
from django.utils.html import mark_safe
 | 
					from django.utils.html import mark_safe
 | 
				
			||||||
| 
						 | 
					@ -39,3 +40,23 @@ def display_boolean(value):
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        render = '<i class="fas fa-times"></i>'
 | 
					        render = '<i class="fas fa-times"></i>'
 | 
				
			||||||
    return mark_safe(render)
 | 
					    return mark_safe(render)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@register.simple_tag
 | 
				
			||||||
 | 
					def url_replace(request, **kwargs):
 | 
				
			||||||
 | 
					    query = request.GET.dict()
 | 
				
			||||||
 | 
					    query.update(kwargs)
 | 
				
			||||||
 | 
					    return urlencode(query)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@register.inclusion_tag("gas/tags/pagination.html")
 | 
				
			||||||
 | 
					def pagination(request, page):
 | 
				
			||||||
 | 
					    return {
 | 
				
			||||||
 | 
					        'request': request,
 | 
				
			||||||
 | 
					        'page': page,
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@register.filter
 | 
				
			||||||
 | 
					def to_json(data):
 | 
				
			||||||
 | 
					    return mark_safe(json.dumps(data))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue