summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-02 14:55:37 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-02 14:55:37 +0200
commit20a963495efeb3df19f19e3c1f15902adf823a6d (patch)
tree7f3ab146bac53f9ac02675331f8116f2d8500a5f
parentb3fe436d1bd499da970fbaf80ec3dc151dc80f79 (diff)
downloadIshtar-20a963495efeb3df19f19e3c1f15902adf823a6d.tar.bz2
Ishtar-20a963495efeb3df19f19e3c1f15902adf823a6d.zip
✨ add pagination to old imports page
-rw-r--r--ishtar_common/static/media/styles.css5
-rw-r--r--ishtar_common/templates/ishtar/import_list.html11
-rw-r--r--ishtar_common/views.py14
3 files changed, 30 insertions, 0 deletions
diff --git a/ishtar_common/static/media/styles.css b/ishtar_common/static/media/styles.css
index 837f5d752..20318b9bb 100644
--- a/ishtar_common/static/media/styles.css
+++ b/ishtar_common/static/media/styles.css
@@ -156,6 +156,11 @@ table.dataTable tbody th, table.dataTable tbody td {
background: none;
border: 1px solid transparent;
}
+
+.dataTables_wrapper .dataTables_paginate .paginate_button.disabled .page-link {
+ background-color: #dee2e6;
+}
+
.dataTables_scrollBody:hover{
cursor: pointer;
}
diff --git a/ishtar_common/templates/ishtar/import_list.html b/ishtar_common/templates/ishtar/import_list.html
index ec5e714de..ca3edef4b 100644
--- a/ishtar_common/templates/ishtar/import_list.html
+++ b/ishtar_common/templates/ishtar/import_list.html
@@ -27,6 +27,17 @@
<i class="fa fa-plus"></i> {% trans 'import (group)' %}
</a>{% endif %}
</div>{% endif %}
+
+{% if current_page %}
+<div class='dataTables_wrapper'>
+ <div class='dataTables_paginate'><ul>
+ {% for page_n in page_range %}<li class="paginate_button page-item{% if page_n == '...' or page_n == current_page %} disabled{% endif %}">
+ <a href="{% if page_n == '...' or page_n == current_page %}#{% else %}?page={{page_n}}{% endif %}" tabindex="0" class="page-link">{{page_n}}</a>
+ </li>{% endfor %}
+ </ul></div>
+</div>
+{% endif %}
+
<div id="import-container">
{% include "ishtar/import_table.html" %}
</div>
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 6a25fd904..f35881575 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -1644,6 +1644,8 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView):
model = models.Import
page_name = _("Current imports")
current_url = "current_imports"
+ pagination = False
+ page_step = 20
def _queryset_filter(self, query):
return query.exclude(state="AC")
@@ -1668,6 +1670,14 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView):
)
imprt.action_list = imprt.get_actions(can_edit=can_edit, can_delete=can_delete)
imports.append(imprt)
+ self.imports_len = len(imports)
+ self.current_page = 0
+ if self.imports_len > self.page_step and self.pagination:
+ self.current_page = int(self.request.GET.get("page", 1))
+ self.page_number = int((self.imports_len - 1) / self.page_step) + 1
+ min_page = (self.current_page - 1) * self.page_step
+ max_page = (self.current_page * self.page_step)
+ imports = imports[min_page:max_page]
return imports
def post(self, request, *args, **kwargs):
@@ -1743,6 +1753,9 @@ class ImportListView(IshtarMixin, LoginRequiredMixin, ListView):
def get_context_data(self, **kwargs):
dct = super().get_context_data(**kwargs)
+ if self.imports_len > self.page_step and self.pagination:
+ dct["current_page"] = self.current_page
+ dct["page_range"] = (n + 1 for n in range(self.page_number))
add_import_perm = self.request.user.ishtaruser.has_right("add_import", session=self.request.session)
import_type_table = models.ImporterType.objects.filter(available=True, is_import=True, type='tab')
import_type_gis = models.ImporterType.objects.filter(available=True, is_import=True, type='gis')
@@ -2173,6 +2186,7 @@ class ImportListTableView(ImportListView):
class ImportOldListView(ImportListView):
page_name = _("Old imports")
current_url = "old_imports"
+ pagination = True
def _queryset_filter(self, query):
return query.filter(state="AC")