Task_Pro / tasks /views.py
ihtesham0345's picture
Initial clean deploy to Hugging Face
7ebc393
Raw
History Blame Contribute Delete
2.45 kB
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