X-Git-Url: https://git.p6c8.net/pcdenotes.git/blobdiff_plain/0f4e8b8769f4e9d58350b5d81cf931f61f03a33a..96213c617d77f89ec12e8e6349b60dd6c5bbef1d:/notes/views.py?ds=sidebyside diff --git a/notes/views.py b/notes/views.py index a0a82bc..18946bf 100644 --- a/notes/views.py +++ b/notes/views.py @@ -1,5 +1,6 @@ -from django.shortcuts import render, get_object_or_404 +from django.shortcuts import render, get_object_or_404, redirect from django.core.paginator import Paginator +from django.db.models.functions import ExtractYear from pcdenotes.settings import NOTES_PER_PAGE from .models import Note @@ -7,7 +8,8 @@ from .models import Note # Create your views here. def note_list(request): - notes = Note.objects.filter(status=1) + notes = Note.objects.all() if request.user.is_staff else Note.objects.filter(status=1) + notes_count = Note.objects.filter(status=1).count() paginator = Paginator(notes, NOTES_PER_PAGE) @@ -17,11 +19,26 @@ def note_list(request): page_number = int(request.GET.get('page')) except: pass + + page_count = paginator.num_pages 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}) + return render(request, 'note_list.html', {'notes_page': notes_page, 'notes_count': notes_count, 'pages': paginator, 'page_number': page_number, 'page_count': page_count}) + +def note_redirect(request): + return redirect('notes:note_list', permanent=True) def note_detail(request, note_slug): - note = get_object_or_404(Note, slug=note_slug, status=1) - return render(request, 'note_detail.html', {'note': note}) \ No newline at end of file + 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}) + +def archive_main(request): + notes_years = Note.objects.all().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): + return render(request, 'archive_year.html', {'year': archive_year}) + +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