X-Git-Url: https://git.p6c8.net/pcdenotes.git/blobdiff_plain/71736b7bbf3c025b7dc5f85fce395b1b0591265b..a12da90786a0ac1ee2fc9f1863b313ba64fc6093:/notes/views.py diff --git a/notes/views.py b/notes/views.py index bd2fd82..d2c8bb0 100644 --- a/notes/views.py +++ b/notes/views.py @@ -1,5 +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, ExtractMonth from pcdenotes.settings import NOTES_PER_PAGE from .models import Note @@ -30,4 +31,16 @@ def note_redirect(request): def note_detail(request, note_slug): note = get_object_or_404(Note, slug=note_slug) if request.user.is_staff else get_object_or_404(Note, slug=note_slug, status=1) - return render(request, 'note_detail.html', {'note': note}) \ No newline at end of file + 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') + return render(request, 'archive_main.html', {'years': notes_years}) + +def archive_year(request, archive_year): + notes_months = Note.objects.filter(status=1, created_at__year=archive_year).annotate(created_month=ExtractMonth('created_at')).values_list('created_month', flat=True).distinct().order_by('created_month') + return render(request, 'archive_year.html', {'year': archive_year, 'months': notes_months}) + +def archive_month(request, archive_year, archive_month): + notes = Note.objects.filter(status=1, created_at__year=archive_year, created_at__month=archive_month) + return render(request, 'archive_month.html', {'year': archive_year, 'month': archive_month, 'notes': notes}) \ No newline at end of file