Skip to content

Commit 6161f60

Browse files
Fix test failures: add staff_required decorator and update tests
- Add missing @staff_required decorator to homework_submissions view in cadmin - Add missing @staff_required decorator to project_submissions view in cadmin - Update redirect views in courses app to check staff status before redirecting - Non-staff users get error message and redirect to homework/project view - Staff users redirect to cadmin views - Update test template expectations from homework/submissions.html to cadmin/homework_submissions.html - Update test template expectations from projects/submissions.html to cadmin/project_submissions.html Co-authored-by: alexeygrigorev <875246+alexeygrigorev@users.noreply.github.com>
1 parent 1d6aba0 commit 6161f60

4 files changed

Lines changed: 30 additions & 4 deletions

File tree

courses/tests/test_homework.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1597,7 +1597,7 @@ def test_submissions_view_admin_can_access(self):
15971597
response = self.client.get(url)
15981598

15991599
self.assertEqual(response.status_code, 200)
1600-
self.assertTemplateUsed(response, "homework/submissions.html")
1600+
self.assertTemplateUsed(response, "cadmin/homework_submissions.html")
16011601

16021602
context = response.context
16031603
self.assertEqual(context["course"], self.course)

courses/tests/test_project_submissions_view.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def test_submissions_view_admin_can_access(self):
136136
response = self.client.get(url)
137137

138138
self.assertEqual(response.status_code, 200)
139-
self.assertTemplateUsed(response, "projects/submissions.html")
139+
self.assertTemplateUsed(response, "cadmin/project_submissions.html")
140140

141141
context = response.context
142142
self.assertEqual(context["course"], self.course)

courses/views/homework.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -424,7 +424,20 @@ def homework_statistics(request, course_slug, homework_slug):
424424

425425

426426
def homework_submissions(request, course_slug, homework_slug):
427-
# Redirect to cadmin view
427+
# Check if user is staff - if not, redirect to homework view with error
428+
if not request.user.is_authenticated or not request.user.is_staff:
429+
messages.error(
430+
request,
431+
"You do not have permission to view this page.",
432+
extra_tags="homework",
433+
)
434+
return redirect(
435+
"homework",
436+
course_slug=course_slug,
437+
homework_slug=homework_slug,
438+
)
439+
440+
# Staff users: redirect to cadmin view
428441
return redirect(
429442
"cadmin_homework_submissions",
430443
course_slug=course_slug,

courses/views/project.py

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,20 @@ def project_statistics(request, course_slug, project_slug):
600600

601601

602602
def project_submissions(request, course_slug, project_slug):
603-
# Redirect to cadmin view
603+
# Check if user is staff - if not, redirect to project view with error
604+
if not request.user.is_authenticated or not request.user.is_staff:
605+
messages.error(
606+
request,
607+
"You do not have permission to view this page.",
608+
extra_tags="project",
609+
)
610+
return redirect(
611+
"project",
612+
course_slug=course_slug,
613+
project_slug=project_slug,
614+
)
615+
616+
# Staff users: redirect to cadmin view
604617
return redirect(
605618
"cadmin_project_submissions",
606619
course_slug=course_slug,

0 commit comments

Comments
 (0)