Spaces:
Sleeping
Sleeping
| 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 |