]> git.p6c8.net - pcdenotes.git/blobdiff - notes/views.py
Created manager methods for getting a list of years or months
[pcdenotes.git] / notes / views.py
index 2c6eb5296f556c7d086acbb0853afa994495afa8..c6f2e26966407bb3f51b6d97367b3a19e174a42e 100644 (file)
@@ -1,6 +1,6 @@
 from django.shortcuts import render, get_object_or_404, redirect
 from django.core.paginator import Paginator
-from django.db.models.functions import ExtractYear
+from django.db.models.functions import ExtractYear, ExtractMonth
 
 from pcdenotes.settings import NOTES_PER_PAGE
 from .models import Note
@@ -10,7 +10,7 @@ from .models import Note
 def note_list(request):
     notes = Note.objects.all() if request.user.is_staff else Note.objects.filter(status=1)
 
-    notes_count = Note.objects.filter(status=1).count()
+    notes_count = notes.count()
     paginator = Paginator(notes, NOTES_PER_PAGE)
 
     page_number = 1
@@ -34,11 +34,13 @@ def note_detail(request, note_slug):
     return render(request, 'note_detail.html', {'note': note})
 
 def archive_main(request):
-    notes_years = Note.objects.filter(status=1).annotate(created_year=ExtractYear('created_at')).values_list('created_year', flat=True).distinct().order_by('created_year')
+    notes_years = Note.objects.years()
     return render(request, 'archive_main.html', {'years': notes_years})
 
 def archive_year(request, archive_year):
-    return render(request, 'archive_year.html', {'year': archive_year})
+    notes_months = Note.objects.months(archive_year)
+    return render(request, 'archive_year.html', {'year': archive_year, 'months': notes_months})
 
 def archive_month(request, archive_year, archive_month):
-    return render(request, 'archive_month.html', {'year': archive_year, 'month': archive_month})
\ No newline at end of file
+    notes = Note.objects.per_month(archive_year, archive_month)
+    return render(request, 'archive_month.html', {'year': archive_year, 'month': archive_month, 'notes': notes})
\ No newline at end of file

patrick-canterino.de