This commit is contained in:
Ross
2024-01-10 22:51:40 +00:00
parent 3c8704e3d4
commit 087b29f0b4
5 changed files with 33 additions and 10 deletions
+7 -2
View File
@@ -2,7 +2,7 @@ from django.urls import path, include
from generic.models import Examination
from . import views
from generic.views import ExamViews as GenericExamViews
from generic.views import ExamViews as GenericExamViews, GenericViewBase
app_name = "generic"
@@ -147,7 +147,7 @@ urlpatterns = [
]
def generic_view_urls(generic_views):
def generic_view_urls(generic_views: GenericViewBase):
urlpatterns = [
path(
"user_answers/delete",
@@ -164,6 +164,11 @@ def generic_view_urls(generic_views):
generic_views.question_user_answers,
name="question_user_answers",
),
path(
"question/<int:pk>/user_answers/<str:answer_compare>/str",
generic_views.question_user_answers_by_compare,
name="question_user_answers_by_compare",
),
path(
"exam/<int:pk>/review",
generic_views.question_review,
+14 -3
View File
@@ -2322,16 +2322,27 @@ class GenericViewBase:
{"question": question, "view_feedback": view_feedback},
)
# TODO: improve permissions on these
@method_decorator(login_required)
def question_user_answers(self, request, pk):
def question_user_answers_by_compare(self, request, pk, answer_compare):
print(answer_compare)
return self.question_user_answers(request, pk, answer_compare)
@method_decorator(login_required)
def question_user_answers(self, request, pk, answer_compare=None):
print(locals())
question = get_object_or_404(self.question_object, pk=pk)
answers = self.cid_user_answer_object.objects.filter(question__id=question.pk).prefetch_related("question", "exam", "user")
if answer_compare is None:
answers = self.cid_user_answer_object.objects.filter(question__id=question.pk).prefetch_related("question", "exam", "user")
else:
answers = self.cid_user_answer_object.objects.filter(question__id=question.pk, answer_compare=answer_compare).prefetch_related("question", "exam", "user")
return render(
request,
f"{self.app_name}/question_user_answers.html",
{"question": question, "answers": answers},
{"question": question, "answers": answers, "answer_compare": answer_compare},
)
@method_decorator(login_required)