Spaces:
Sleeping
Sleeping
File size: 2,454 Bytes
7ebc393 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 | from django.shortcuts import render, redirect
from django.utils import timezone
from .models import Task
from .forms import TaskForm
from django.contrib.auth import logout
# A quick helper function to grab the pending count for the header
def get_global_context():
return {
'pending_count': Task.objects.filter(completed=False).count()
}
def index(request):
pending_tasks = Task.objects.filter(completed=False).order_by('-created_at')
completed_tasks = Task.objects.filter(completed=True).order_by('-completed_at')
form = TaskForm()
if request.method == 'POST':
form = TaskForm(request.POST)
if form.is_valid():
form.save()
return redirect('/')
context = {'pending_tasks': pending_tasks, 'completed_tasks': completed_tasks, 'form': form}
context.update(get_global_context()) # Add the bell count!
return render(request, 'tasks/list.html', context)
def updateTask(request, pk):
task = Task.objects.get(id=pk)
form = TaskForm(instance=task)
if request.method == 'POST':
form = TaskForm(request.POST, instance=task)
if form.is_valid():
form.save()
return redirect('/')
context = {'form': form}
context.update(get_global_context())
return render(request, 'tasks/update_task.html', context)
def deleteTask(request, pk):
item = Task.objects.get(id=pk)
if request.method == 'POST':
item.delete()
return redirect('/')
context = {'item': item}
context.update(get_global_context())
return render(request, 'tasks/delete_task.html', context)
def completeTask(request, pk):
task = Task.objects.get(id=pk)
task.completed = True
task.completed_at = timezone.now()
task.save()
return redirect('/')
def undoTask(request, pk):
task = Task.objects.get(id=pk)
task.completed = False
task.completed_at = None
task.save()
return redirect('/')
# --- Static Pages ---
def privacyPolicy(request):
context = get_global_context()
return render(request, 'tasks/privacy.html', context)
def termsOfService(request):
context = get_global_context()
return render(request, 'tasks/terms.html', context)
def support(request):
context = get_global_context()
return render(request, 'tasks/support.html', context)
def logoutUser(request):
logout(request)
return redirect('/') # Or redirect to a login page if you have one |