From c03bc3579c61a42a06576aaf8fcd939713506601 Mon Sep 17 00:00:00 2001 From: Scot Hacker Date: Sat, 24 Mar 2018 16:30:43 -0700 Subject: [PATCH] Enable Mark Done from task_detail --- todo/utils.py | 8 +++++--- todo/views.py | 6 +++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/todo/utils.py b/todo/utils.py index 342e426..c46dc01 100644 --- a/todo/utils.py +++ b/todo/utils.py @@ -8,8 +8,7 @@ from django.core.mail import send_mail from django.http import HttpResponse from django.template.loader import render_to_string - -from todo.models import Item, TaskList, Comment +from todo.models import Item, Comment def check_user_allowed(user: User) -> HttpResponse: @@ -25,7 +24,10 @@ def check_user_allowed(user: User) -> HttpResponse: def toggle_done(request, items): - # Check for items in the mark_done POST array. If present, change status to complete. + """Check for items in the mark_done POST array. If present, change status to complete. + Takes a list of task IDs. No return value. + """ + for item in items: i = Item.objects.get(id=item) old_state = "completed" if i.completed else "incomplete" diff --git a/todo/views.py b/todo/views.py index a79e437..0a50e00 100644 --- a/todo/views.py +++ b/todo/views.py @@ -194,11 +194,15 @@ def task_detail(request, task_id: int) -> HttpResponse: if form.is_valid(): form.save() messages.success(request, "The task has been edited.") - return redirect('todo:list_detail', list_id=task.task_list.id, list_slug=task.task_list.slug) else: form = AddEditItemForm(request.user, instance=task, initial={'task_list': task.task_list}) + # Mark complete + if request.POST.get('toggle_done'): + toggle_done(request, [task.id, ]) + return redirect('todo:task_detail', task_id=task.id,) + if task.due_date: thedate = task.due_date else: