From 3290bb2b2494a4bcf5fd8500f8a49e0a9d0c015a Mon Sep 17 00:00:00 2001 From: fidoriel <49869342+fidoriel@users.noreply.github.com> Date: Mon, 6 Dec 2021 20:10:18 +0100 Subject: [PATCH] #1640 GradeDocument edit page: Show correct type (#1661) Fix missing final_grades template argument. --- evap/grades/tests.py | 30 ++++++++++++++++++++++++++++++ evap/grades/views.py | 5 +++++ 2 files changed, 35 insertions(+) diff --git a/evap/grades/tests.py b/evap/grades/tests.py index 8f5e98ead..62ad3e6c7 100644 --- a/evap/grades/tests.py +++ b/evap/grades/tests.py @@ -6,6 +6,7 @@ from django_webtest import WebTest from model_bakery import baker from evap.evaluation.models import Contribution, Course, Evaluation, Questionnaire, Semester, UserProfile +from evap.grades.models import GradeDocument class GradeUploadTest(WebTest): @@ -238,3 +239,32 @@ class GradeCourseViewTest(WebTest): Evaluation, course=baker.make(Course, pk=1, semester=archived_semester), state=Evaluation.State.PREPARED ) self.app.get("/grades/semester/1/course/1", user=self.grade_publisher, status=403) + + +class GradeEditTest(WebTest): + def test_grades_headlines(self): + + grade_publisher = baker.make( + UserProfile, + email="grade_publisher@institution.example.com", + groups=[Group.objects.get(name="Grade publisher")], + ) + grade_document = baker.make(GradeDocument) + + url = f"/grades/semester/{grade_document.course.semester.pk}/course/{grade_document.course.pk}/edit/{grade_document.pk}" + + response = self.app.get( + url, + user=grade_publisher, + ) + self.assertContains(response, "Upload midterm grades") + self.assertNotContains(response, "Upload final grades") + + grade_document.type = GradeDocument.Type.FINAL_GRADES + grade_document.save() + response = self.app.get( + url, + user=grade_publisher, + ) + self.assertContains(response, "Upload final grades") + self.assertNotContains(response, "Upload midterm grades") diff --git a/evap/grades/views.py b/evap/grades/views.py index b4de9d087..be506909c 100644 --- a/evap/grades/views.py +++ b/evap/grades/views.py @@ -165,6 +165,10 @@ def edit_grades(request, semester_id, course_id, grade_document_id): form = GradeDocumentForm(request.POST or None, request.FILES or None, instance=grade_document) + final_grades = ( + grade_document.type == GradeDocument.Type.FINAL_GRADES + ) # if parameter is not given, assume midterm grades + if form.is_valid(): form.save(modifying_user=request.user) messages.success(request, _("Successfully updated grades.")) @@ -175,6 +179,7 @@ def edit_grades(request, semester_id, course_id, grade_document_id): course=course, form=form, show_automated_publishing_info=False, + final_grades=final_grades, ) return render(request, "grades_upload_form.html", template_data) -- GitLab