mirror of
https://github.com/daniviga/django-ram.git
synced 2025-08-04 13:17:50 +02:00
Fix page range
This commit is contained in:
@@ -112,7 +112,7 @@
|
|||||||
<span class="page-link">Previous</span>
|
<span class="page-link">Previous</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for i in rolling_stock.paginator.get_elided_page_range %}
|
{% for i in page_range %}
|
||||||
{% if rolling_stock.number == i %}
|
{% if rolling_stock.number == i %}
|
||||||
<li class="page-item active">
|
<li class="page-item active">
|
||||||
<span class="page-link">{{ i }}</span></span>
|
<span class="page-link">{{ i }}</span></span>
|
||||||
|
@@ -70,7 +70,7 @@
|
|||||||
<span class="page-link">Previous</span>
|
<span class="page-link">Previous</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for i in consist.paginator.get_elided_page_range %}
|
{% for i in page_range %}
|
||||||
{% if consist.number == i %}
|
{% if consist.number == i %}
|
||||||
<li class="page-item active">
|
<li class="page-item active">
|
||||||
<span class="page-link">{{ i }}</span></span>
|
<span class="page-link">{{ i }}</span></span>
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
<span class="page-link">Previous</span>
|
<span class="page-link">Previous</span>
|
||||||
</li>
|
</li>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% for i in rolling_stock.paginator.get_elided_page_range %}
|
{% for i in page_range %}
|
||||||
{% if rolling_stock.number == i %}
|
{% if rolling_stock.number == i %}
|
||||||
<li class="page-item active">
|
<li class="page-item active">
|
||||||
<span class="page-link">{{ i }}</span></span>
|
<span class="page-link">{{ i }}</span></span>
|
||||||
|
@@ -15,10 +15,12 @@ from consist.models import Consist
|
|||||||
|
|
||||||
def order_by_fields():
|
def order_by_fields():
|
||||||
order_by = get_site_conf().items_ordering
|
order_by = get_site_conf().items_ordering
|
||||||
fields = ["rolling_class__type",
|
fields = [
|
||||||
|
"rolling_class__type",
|
||||||
"rolling_class__company",
|
"rolling_class__company",
|
||||||
"rolling_class__identifier",
|
"rolling_class__identifier",
|
||||||
"road_number_int"]
|
"road_number_int",
|
||||||
|
]
|
||||||
|
|
||||||
if order_by == "type":
|
if order_by == "type":
|
||||||
return (fields[0], fields[1], fields[2], fields[3])
|
return (fields[0], fields[1], fields[2], fields[3])
|
||||||
@@ -32,6 +34,7 @@ class GetHome(View):
|
|||||||
def get(self, request, page=1):
|
def get(self, request, page=1):
|
||||||
site_conf = get_site_conf()
|
site_conf = get_site_conf()
|
||||||
rolling_stock = RollingStock.objects.order_by(*order_by_fields())
|
rolling_stock = RollingStock.objects.order_by(*order_by_fields())
|
||||||
|
|
||||||
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
||||||
rolling_stock = paginator.get_page(page)
|
rolling_stock = paginator.get_page(page)
|
||||||
page_range = paginator.get_elided_page_range(rolling_stock.number)
|
page_range = paginator.get_elided_page_range(rolling_stock.number)
|
||||||
@@ -39,7 +42,7 @@ class GetHome(View):
|
|||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"home.html",
|
"home.html",
|
||||||
{"rolling_stock": rolling_stock, "page_range": page_range}
|
{"rolling_stock": rolling_stock, "page_range": page_range},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@@ -75,18 +78,21 @@ class GetHomeFiltered(View):
|
|||||||
query = Q(tags__slug__icontains=search)
|
query = Q(tags__slug__icontains=search)
|
||||||
else:
|
else:
|
||||||
raise Http404
|
raise Http404
|
||||||
rolling_stock = (
|
rolling_stock = RollingStock.objects.filter(query).order_by(
|
||||||
RollingStock.objects.filter(query).order_by(*order_by_fields())
|
*order_by_fields()
|
||||||
)
|
)
|
||||||
matches = len(rolling_stock)
|
matches = len(rolling_stock)
|
||||||
|
|
||||||
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
||||||
rolling_stock = paginator.get_page(page)
|
rolling_stock = paginator.get_page(page)
|
||||||
|
page_range = paginator.get_elided_page_range(rolling_stock.number)
|
||||||
|
|
||||||
return rolling_stock, matches
|
return rolling_stock, matches, page_range
|
||||||
|
|
||||||
def get(self, request, search, _filter=None, page=1):
|
def get(self, request, search, _filter=None, page=1):
|
||||||
rolling_stock, matches = self.run_search(
|
rolling_stock, matches, page_range = self.run_search(
|
||||||
request, search, _filter, page)
|
request, search, _filter, page
|
||||||
|
)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
@@ -96,6 +102,7 @@ class GetHomeFiltered(View):
|
|||||||
"filter": _filter,
|
"filter": _filter,
|
||||||
"matches": matches,
|
"matches": matches,
|
||||||
"rolling_stock": rolling_stock,
|
"rolling_stock": rolling_stock,
|
||||||
|
"page_range": page_range,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -103,8 +110,9 @@ class GetHomeFiltered(View):
|
|||||||
search = request.POST.get("search")
|
search = request.POST.get("search")
|
||||||
if not search:
|
if not search:
|
||||||
raise Http404
|
raise Http404
|
||||||
rolling_stock, matches = self.run_search(
|
rolling_stock, matches, page_range = self.run_search(
|
||||||
request, search, _filter, page)
|
request, search, _filter, page
|
||||||
|
)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
@@ -114,6 +122,7 @@ class GetHomeFiltered(View):
|
|||||||
"filter": _filter,
|
"filter": _filter,
|
||||||
"matches": matches,
|
"matches": matches,
|
||||||
"rolling_stock": rolling_stock,
|
"rolling_stock": rolling_stock,
|
||||||
|
"page_range": page_range,
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -126,15 +135,16 @@ class GetRollingStock(View):
|
|||||||
raise Http404
|
raise Http404
|
||||||
|
|
||||||
class_properties = (
|
class_properties = (
|
||||||
rolling_stock.rolling_class.property.all() if
|
rolling_stock.rolling_class.property.all()
|
||||||
request.user.is_authenticated else
|
if request.user.is_authenticated
|
||||||
rolling_stock.rolling_class.property.filter(
|
else rolling_stock.rolling_class.property.filter(
|
||||||
property__private=False)
|
property__private=False
|
||||||
|
)
|
||||||
)
|
)
|
||||||
rolling_stock_properties = (
|
rolling_stock_properties = (
|
||||||
rolling_stock.property.all() if
|
rolling_stock.property.all()
|
||||||
request.user.is_authenticated else
|
if request.user.is_authenticated
|
||||||
rolling_stock.property.filter(property__private=False)
|
else rolling_stock.property.filter(property__private=False)
|
||||||
)
|
)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
@@ -152,10 +162,16 @@ class Consists(View):
|
|||||||
def get(self, request, page=1):
|
def get(self, request, page=1):
|
||||||
site_conf = get_site_conf()
|
site_conf = get_site_conf()
|
||||||
consist = Consist.objects.all()
|
consist = Consist.objects.all()
|
||||||
|
|
||||||
paginator = Paginator(consist, site_conf.items_per_page)
|
paginator = Paginator(consist, site_conf.items_per_page)
|
||||||
consist = paginator.get_page(page)
|
consist = paginator.get_page(page)
|
||||||
|
page_range = paginator.get_elided_page_range(consist.number)
|
||||||
|
|
||||||
return render(request, "consists.html", {"consist": consist})
|
return render(
|
||||||
|
request,
|
||||||
|
"consists.html",
|
||||||
|
{"consist": consist, "page_range": page_range}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class GetConsist(View):
|
class GetConsist(View):
|
||||||
@@ -166,11 +182,17 @@ class GetConsist(View):
|
|||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
raise Http404
|
raise Http404
|
||||||
rolling_stock = consist.consist_item.all()
|
rolling_stock = consist.consist_item.all()
|
||||||
|
|
||||||
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
paginator = Paginator(rolling_stock, site_conf.items_per_page)
|
||||||
rolling_stock = paginator.get_page(page)
|
rolling_stock = paginator.get_page(page)
|
||||||
|
page_range = paginator.get_elided_page_range(rolling_stock.number)
|
||||||
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
"consist.html",
|
"consist.html",
|
||||||
{"consist": consist, "rolling_stock": rolling_stock},
|
{
|
||||||
|
"consist": consist,
|
||||||
|
"rolling_stock": rolling_stock,
|
||||||
|
"page_range": page_range
|
||||||
|
},
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user