]> git.p6c8.net - pcdenotes.git/commitdiff
Added pagination
authorPatrick Canterino <patrick@patrick-canterino.de>
Sun, 23 Jan 2022 20:01:20 +0000 (21:01 +0100)
committerPatrick Canterino <patrick@patrick-canterino.de>
Sun, 23 Jan 2022 20:03:01 +0000 (21:03 +0100)
notes/templates/note_list.html
notes/views.py
pcdenotes/settings.py

index e996fb251595e36ffdd3185e62022096d6183424..bf278e16c38033b481f74afa057099d282ae7693 100644 (file)
@@ -4,7 +4,7 @@
 {% block title %}Notes{% endblock %}
 
 {% block content %}
-  {% for note in notes %}
+  {% for note in notes_page %}
   <article class="container mt-5">
     <h2>{{ note.title }}</h2>
     <p>ID: {{ note.id }}</p>
   <p>No notes</p>
   {% endfor %}
 
+  <ul class="pagination">
+    {% for page in pages %}
+      {% ifnotequal page.number page_number %}
+        <li class="page-item"><a href="?page={{ page.number }}" class="page-link">{{ page.number }}</a></li>
+      {% else %}
+        <li class="page-item active"><span class="page-link">{{ page.number }}</span></li>
+      {% endifnotequal %}
+    {% endfor %}
+  </ul>
+
   <p>Number of notes: {{ notes_count }}</p>
 {% endblock %}
\ No newline at end of file
index 4ebc94beb888faab4263a9b3686cc7be494d263e..a0a82bc7c68c2673feea3d174b7ae359063dadb3 100644 (file)
@@ -1,4 +1,7 @@
 from django.shortcuts import render, get_object_or_404
+from django.core.paginator import Paginator
+
+from pcdenotes.settings import NOTES_PER_PAGE
 from .models import Note
 
 # Create your views here.
@@ -6,7 +9,18 @@ from .models import Note
 def note_list(request):
     notes = Note.objects.filter(status=1)
     notes_count = Note.objects.filter(status=1).count()
-    return render(request, 'note_list.html', {'notes': notes, 'notes_count': notes_count})
+    paginator = Paginator(notes, NOTES_PER_PAGE)
+
+    page_number = 1
+
+    try:
+        page_number = int(request.GET.get('page'))
+    except:
+        pass
+    
+    notes_page = paginator.get_page(page_number)
+
+    return render(request, 'note_list.html', {'notes_page': notes_page, 'notes_count': notes_count, 'pages': paginator, 'page_number': page_number})
 
 def note_detail(request, note_slug):
     note = get_object_or_404(Note, slug=note_slug, status=1)
index 5e82661fadc6233b1705e8bdacf0ad4c2f47ba08..1d455a7f3b5c07bb7b41825c2458ffbe70548f96 100644 (file)
@@ -142,4 +142,6 @@ MARKDOWNIFY = {
         #"STRIP": False,
         "BLEACH": False
     }
-}
\ No newline at end of file
+}
+
+NOTES_PER_PAGE = 5
\ No newline at end of file

patrick-canterino.de