From 821c8bc06bd26b81272917444c6d6e361068bd78 Mon Sep 17 00:00:00 2001 From: Scot Hacker Date: Sun, 24 Mar 2019 23:22:26 -0700 Subject: [PATCH] Prevent crash during task re-ordering if task deleted during re-order --- todo/views/reorder_tasks.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/todo/views/reorder_tasks.py b/todo/views/reorder_tasks.py index 843a086..04e2c1b 100644 --- a/todo/views/reorder_tasks.py +++ b/todo/views/reorder_tasks.py @@ -20,10 +20,15 @@ def reorder_tasks(request) -> HttpResponse: # Re-prioritize each task in list i = 1 for id in newtasklist: - task = Task.objects.get(pk=id) - task.priority = i - task.save() - i += 1 + try: + task = Task.objects.get(pk=id) + task.priority = i + task.save() + i += 1 + except Task.DoesNotExist: + # Can occur if task is deleted behind the scenes during re-ordering. + # Not easy to remove it from the UI without page refresh, but prevent crash. + pass # All views must return an httpresponse of some kind ... without this we get # error 500s in the log even though things look peachy in the browser.