From b5f98e8b4d3b67bccbcfdb838be91a3817711819 Mon Sep 17 00:00:00 2001
From: Alissa Cheng <cheng@astron.nl>
Date: Wed, 17 Jan 2024 15:57:30 +0100
Subject: [PATCH] replace django-bootstrap-pagination

---
 .gitignore                                    |  6 ++++-
 atdb/requirements/base.txt                    |  4 +--
 .../templates/taskdatabase/pagination.html    | 26 ++++++++++++-------
 3 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/.gitignore b/.gitignore
index e31bafe3..c78f1afc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
-/atdb/logs/
\ No newline at end of file
+/atdb/logs/
+**/venv/
+**/.idea/
+**/__pycache__/
+*.sql
diff --git a/atdb/requirements/base.txt b/atdb/requirements/base.txt
index ce0ff6a8..3e5d02fb 100644
--- a/atdb/requirements/base.txt
+++ b/atdb/requirements/base.txt
@@ -1,5 +1,5 @@
 astronauth==0.3.3
-Django==4.1.3
+Django==5
 django-allauth==0.57.0  # note allauth only supports Django >= 3.2
 django-bootstrap-pagination==1.7.1
 django-bootstrap3==23.6
@@ -8,7 +8,7 @@ django-extensions==3.1.0
 django-filter==2.3.0
 #django-silk==5.0.3
 django-tables2==2.3.4
-djangorestframework==3.12.2
+djangorestframework==3.14
 fontawesome-free==5.15.2
 oauthlib==3.2.2
 psycopg2-binary==2.9.3
diff --git a/atdb/taskdatabase/templates/taskdatabase/pagination.html b/atdb/taskdatabase/templates/taskdatabase/pagination.html
index b2c90efa..81f38915 100644
--- a/atdb/taskdatabase/templates/taskdatabase/pagination.html
+++ b/atdb/taskdatabase/templates/taskdatabase/pagination.html
@@ -1,9 +1,11 @@
-{% if my_tasks %}
+    <div class="btn-group" role="group" aria-label="Item pagination" style="margin-bottom: 1rem">
 
-    {% if my_tasks.has_other_pages %}
-    <div class="btn-group" role="group" aria-label="Item pagination">
         {% if my_tasks.has_previous %}
-            <a href="?page={{ my_tasks.previous_page_number }}" class="btn btn-outline-primary">&laquo;</a>
+            <a href="?page=1" class="btn btn-outline-primary">First</a>
+            <a href="?page={{ my_tasks.previous_page_number }}" class="btn btn-outline-primary">Prev</a>
+        {% else %}
+            <button class="btn btn-outline-primary" disabled>First</button>
+            <button class="btn btn-outline-primary" disabled>Prev</button>
         {% endif %}
 
         {% for page_number in my_tasks.paginator.page_range %}
@@ -11,7 +13,11 @@
                 <button class="btn btn-outline-primary active">
                     <span>{{ page_number }} <span class="sr-only">(current)</span></span>
                 </button>
-            {% else %}
+            {% elif my_tasks.number < 5 and page_number < 10 or my_tasks.number > my_tasks.paginator.num_pages|add:"-5" and page_number > my_tasks.paginator.num_pages|add:"-9" %}
+                <a href="?page={{ page_number }}" class="btn btn-outline-primary">
+                    {{ page_number }}
+                </a>
+            {% elif page_number < my_tasks.number and page_number > my_tasks.number|add:"-5" or page_number > my_tasks.number and page_number < my_tasks.number|add:5 %}
                 <a href="?page={{ page_number }}" class="btn btn-outline-primary">
                     {{ page_number }}
                 </a>
@@ -19,10 +25,10 @@
         {% endfor %}
 
         {% if my_tasks.has_next %}
-            <a href="?page={{ my_tasks.next_page_number }}" class="btn btn-outline-primary">&raquo;</a>
+            <a href="?page={{ my_tasks.next_page_number }}" class="btn btn-outline-primary">Next</a>
+            <a href="?page={{ my_tasks.paginator.num_pages }}" class="btn btn-outline-primary">Last</a>
+        {% else %}
+            <button class="btn btn-outline-primary" disabled>Next</button>
+            <button class="btn btn-outline-primary" disabled>Last</button>
         {% endif %}
     </div>
-    {% endif %}
-{% else %}
-    <p>No items found.</p>
-{% endif %}
\ No newline at end of file
-- 
GitLab