This commit is contained in:
Ross
2021-09-25 20:47:52 +01:00
parent b5925bf894
commit a4fc1e3076
3 changed files with 48 additions and 78 deletions
+2 -73
View File
@@ -40,7 +40,7 @@ from .models import (
CidUserAnswer,
)
from generic.views import ExamViews
from generic.views import ExamViews, GenericViewBase
from reversion.views import RevisionMixin
@@ -113,48 +113,6 @@ class AuthorOrCheckerRequiredMixin(object):
raise PermissionDenied() # or Http404
return obj
@login_required
def question_detail(request, pk):
rapid = get_object_or_404(Rapid, pk=pk)
if not rapid.open_access:
if (
not request.user.groups.filter(name="rapid_checker").exists()
and request.user not in rapid.author.all()
):
raise PermissionDenied()
# if request.user not in rapid.author.all():
# raise PermissionDenied
view_feedback = False
if (
request.user.groups.filter(name="rapid_checker").exists()
or request.user.groups.filter(name="feedback_checker").exists()
or request.user in rapid.author.all()
):
view_feedback = True
# logging.debug(rapid.subspecialty.first().name.all())
return render(
request,
"rapids/question_detail.html",
{"question": rapid, "view_feedback": view_feedback},
)
@login_required
def question_user_answers(request, pk):
rapid = get_object_or_404(Rapid, pk=pk)
answers = CidUserAnswer.objects.filter(question__id=rapid.pk)
return render(
request,
"rapids/question_user_answers.html",
{"question": rapid, "answers": answers},
)
@login_required
def rapid_split(request, pk):
rapid = get_object_or_404(Rapid, pk=pk)
@@ -1128,37 +1086,8 @@ class RapidLateralityViewSet(
# return { "content_type" : content_type,
# "object_id" : pk }
@user_passes_test(lambda u: u.is_superuser)
def user_answer_delete_multiple(request):
if request.is_ajax():
print(request.POST["answer_ids"])
answer_ids = json.loads(request.POST["answer_ids"])
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
# We could probably delete them all at once....
for id in answer_ids:
CidUserAnswer.objects.get(pk=id).delete()
return JsonResponse({"status": "success"})
return JsonResponse({"status": "error"})
def question_review(request, pk):
"""
Return a json representation of the question when the exam is active
"""
if request.is_ajax():
exam = get_object_or_404(Exam, pk=pk)
print(request.POST["question_number"])
print(type(request.POST["question_number"]))
if not exam.publish_results:
raise Http404
question = exam.exam_questions.all()[int(request.POST["question_number"])]
question_json = question.get_question_json(based=False)
return JsonResponse(question_json)
return JsonResponse({"status": "error"})
@user_is_author_or_rapid_checker
def question_save_annotation(request, pk):