From 548eac6923971c42018bcd5996d8cfbe71521924 Mon Sep 17 00:00:00 2001 From: Krishnan Shankar Date: Wed, 8 Jan 2025 03:46:12 -0500 Subject: [PATCH] Hotfix: Fix invalid query when killing submissions This fixes the below production error: ``` File ".../tin/tin/apps/submissions/views.py", line 106, in kill_view submission = get_object_or_404(submissions_editable, id=submission_id) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ".../site-packages/django/shortcuts.py", line 85, in get_object_or_404 return queryset.get(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File ".../site-packages/django/db/models/query.py", line 640, in get raise self.model.MultipleObjectsReturned( tin.apps.submissions.models.Submission.MultipleObjectsReturned: get() returned more than one Submission -- it returned 5! ``` One solution would have been to append a `.distinct()` to the query, but instead it was replaced by `filter_visible()` for consistency. --- tin/apps/submissions/views.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tin/apps/submissions/views.py b/tin/apps/submissions/views.py index 206f266d..6bbb673c 100644 --- a/tin/apps/submissions/views.py +++ b/tin/apps/submissions/views.py @@ -2,7 +2,7 @@ import psutil from django import http -from django.db.models import F, Q +from django.db.models import F from django.shortcuts import get_object_or_404, redirect, render from django.utils import timezone from django.utils.http import url_has_allowed_host_and_scheme @@ -99,10 +99,9 @@ def kill_view(request, submission_id): request: The request submission_id: An instance of the :class:`.Submission` model """ - submissions_editable = Submission.objects.filter( - Q(assignment__course__teacher=request.user) | Q(student=request.user) + submission = get_object_or_404( + Submission.objects.filter_visible(request.user), id=submission_id ) - submission = get_object_or_404(submissions_editable, id=submission_id) if request.method == "POST": submission.kill_requested = True