This commit is contained in:
Ross
2021-02-06 22:45:38 +00:00
parent 761354525d
commit 3712cf15fc
6 changed files with 160 additions and 96 deletions
+6 -6
View File
@@ -19,19 +19,19 @@ urlpatterns = [
path("exam/<int:pk>/mark", views.mark_overview, name="mark_overview"),
path("exam/<int:pk>/<int:sk>/", views.exam_take, name="exam_take"),
path("exam/<int:pk>/question/<int:sk>/", views.exam_question_detail, name="exam_question_detail"),
path("exam/<int:pk>/", views.exam_overview, name="exam_overview"),
path("exam/<int:pk>/", views.AnatomyExamViews.exam_overview, name="exam_overview"),
path("exam/<int:pk>/json_edit", views.exam_json_edit, name="exam_json_edit"),
path("exam/<int:pk>/scores", views.exam_scores_cid,
name="exam_scores_cid"),
path("exam/<int:pk>/scores/<int:sk>/", views.exam_scores_cid_user,
name="exam_scores_cid_user"),
path("exam/<int:pk>/toggle_active", views.exam_toggle_active, name="exam_toggle_active"),
path("exam/<int:pk>/toggle_results_published", views.exam_toggle_results_published, name="exam_toggle_results_published"),
path("exam/<int:pk>/toggle_active", views.AnatomyExamViews.exam_toggle_active, name="exam_toggle_active"),
path("exam/<int:pk>/toggle_results_published", views.AnatomyExamViews.exam_toggle_results_published, name="exam_toggle_results_published"),
path("exam/submit", views.postExamAnswers, name="exam_answers_submit"),
path("exam/", views.exam_list, name="exam_list"),
path("exam/json/", views.active_exams, name="active_exams"),
path("exam/", views.AnatomyExamViews.exam_list, name="exam_list"),
path("exam/json/", views.AnatomyExamViews.active_exams, name="active_exams"),
path("exam/json/<int:pk>", views.exam_json, name="exam_json"),
path("exam/json/<int:pk>/recreate", views.exam_json_recreate, name="exam_json_recreate"),
path("exam/json/<int:pk>/recreate", views.AnatomyExamViews.exam_json_recreate, name="exam_json_recreate"),
#path("cid/<int:pk>", views.cid_scores, name="cid_scores"),
#path("cid/", views.cid_selector, name="cid_selector"),
path("ajax/exam/flag/", views.flag_question, name="flag_question"),
+60 -85
View File
@@ -44,6 +44,7 @@ from .models import (
# IncorrectAnswers,
)
from generic.models import Examination
from generic.views import ExamViews
from .tables import AnatomyQuestionTable
from .filters import AnatomyQuestionFilter
@@ -150,31 +151,6 @@ def answer_question(request, pk):
)
@login_required
def exam_list(request):
exams = Exam.objects.all()
return render(request, "anatomy/exam_list.html", {"exams": exams})
@login_required
def exam_overview(request, pk):
print(type(pk))
#print(Exam.objects.all())
#exams = Exam.objects.all()
#print("test", Exam.objects.all().get(id=pk))
exam = get_object_or_404(Exam, pk=pk)
print("exam", exam)
questions = exam.exam_questions.all()
question_number = len(questions)
return render(
request,
"anatomy/exam_overview.html",
{"exam": exam, "questions": questions, "question_number": question_number},
)
@login_required
def exam_take(request, pk, sk):
@@ -511,57 +487,66 @@ def mark(request, pk, sk):
},
)
AnatomyExamViews = ExamViews(Exam, "anatomy", "anatomy")
def exam_toggle_results_published(request, pk):
if request.is_ajax() and request.method == "POST":
exam = get_object_or_404(Exam, pk=pk)
exam.publish_results = (
True if request.POST.get("publish_results") == "true" else False
)
exam.save()
data = {"status": "success", "publish_results": exam.publish_results}
return JsonResponse(data, status=200)
else:
data = {"status": "error"}
return JsonResponse(data, status=400)
def exam_toggle_active(request, pk):
if request.is_ajax() and request.method == "POST":
exam = get_object_or_404(Exam, pk=pk)
exam.active = True if request.POST.get("active") == "true" else False
exam.save()
data = {"status": "success", "active": exam.active}
return JsonResponse(data, status=200)
else:
data = {"status": "error"}
return JsonResponse(data, status=400)
def active_exams(request, json=True):
exams = Exam.objects.all()
active_exams = {"exams": []}
for exam in exams:
if exam.active:
active_exams["exams"].append(
{
"name": exam.get_exam_name(),
"url": request.build_absolute_uri(exam.get_json_url()),
"type": "anatomy",
}
)
if json == False:
return active_exams["exams"]
return JsonResponse(active_exams)
# def exam_toggle_results_published(request, pk):
# if request.is_ajax() and request.method == "POST":
#
# exam = get_object_or_404(Exam, pk=pk)
#
# exam.publish_results = (
# True if request.POST.get("publish_results") == "true" else False
# )
# exam.save()
# data = {"status": "success", "publish_results": exam.publish_results}
# return JsonResponse(data, status=200)
# else:
# data = {"status": "error"}
# return JsonResponse(data, status=400)
#
#
# def exam_toggle_active(request, pk):
# if request.is_ajax() and request.method == "POST":
#
# exam = get_object_or_404(Exam, pk=pk)
#
# exam.active = True if request.POST.get("active") == "true" else False
# exam.save()
# data = {"status": "success", "active": exam.active}
# return JsonResponse(data, status=200)
# else:
# data = {"status": "error"}
# return JsonResponse(data, status=400)
#
#
# def active_exams(request, json=True):
# exams = Exam.objects.all()
#
# active_exams = {"exams": []}
#
# for exam in exams:
# if exam.active:
# active_exams["exams"].append(
# {
# "name": exam.get_exam_name(),
# "url": request.build_absolute_uri(exam.get_json_url()),
# "type": "anatomy",
# }
# )
#
# if json == False:
# return active_exams["exams"]
#
# return JsonResponse(active_exams)
#
# @login_required
# def exam_json_recreate(request, pk):
# exam = get_object_or_404(Exam, pk=pk)
#
# exam.recreate_json = True
# exam.save()
#
# return redirect("anatomy:exam_overview", pk=pk)
def exam_json(request, pk):
@@ -614,16 +599,6 @@ def exam_json(request, pk):
return JsonResponse(exam_json)
@login_required
def exam_json_recreate(request, pk):
exam = get_object_or_404(Exam, pk=pk)
exam.recreate_json = True
exam.save()
return redirect("anatomy:exam_overview", pk=pk)
@login_required
def exam_scores_cid(request, pk):
exam = get_object_or_404(Exam, pk=pk)