57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
from django.contrib.auth.models import User
|
|
from django.shortcuts import render
|
|
from django.utils import timezone
|
|
|
|
from collections import deque
|
|
|
|
from .forms import TaskForm
|
|
from .models import Task
|
|
|
|
|
|
def index(request):
|
|
current_user = request.user.id
|
|
current_action = False
|
|
|
|
if request.method == 'POST':
|
|
if 'btn_input' in request.POST:
|
|
form = TaskForm(request.POST)
|
|
|
|
if form.is_valid():
|
|
task = form.save(commit=False)
|
|
task.created_by = request.user
|
|
task.save()
|
|
|
|
elif 'btn_checkbox' in request.POST:
|
|
for task_id in request.POST.getlist('checkbox'):
|
|
task = Task.objects.get(id=task_id)
|
|
|
|
if not task.completed:
|
|
task.completed = True
|
|
task.completed_date = timezone.now().date()
|
|
task.save()
|
|
|
|
elif 'btn_user' in request.POST:
|
|
if request.POST['action'] == 'show_incompleted':
|
|
current_action = False
|
|
else:
|
|
current_action = True
|
|
|
|
if request.POST['user'] == 'all':
|
|
current_user = None
|
|
else:
|
|
current_user = int(request.POST['user'])
|
|
|
|
form = TaskForm()
|
|
tasks = deque(Task.taskmanager.get_tasks(user=current_user, completed=current_action))
|
|
users = User.objects.all()
|
|
|
|
context = {
|
|
"form": form,
|
|
"tasks": tasks,
|
|
"users": users,
|
|
"current_user": current_user,
|
|
"current_action": current_action,
|
|
}
|
|
|
|
return render(request, 'tasks/index.html', context)
|