This commit is contained in:
Ross
2022-04-21 15:49:27 +01:00
parent 0b33fe4ba1
commit 1f144c4772
3 changed files with 38 additions and 3 deletions
+35
View File
@@ -615,6 +615,35 @@ class ExamViews(View, LoginRequiredMixin):
},
)
def exam_cids_edit(self, request, exam_id):
exam = get_object_or_404(self.Exam, pk=exam_id)
if not request.user.groups.filter(name="cid_user_manager").exists():
raise PermissionDenied
if request.user not in exam.author.all():
if not self.check_user_access(request.user, exam_id):
raise PermissionDenied
cid_users = exam.valid_users.all()
exam_groups = exam.cid_user_groups.all()
available_cid_users = CidUser().objects.filter(group__in=exam_groups)
cid_user_count = cid_users.count()
return render(
request,
"exam_cids.html",
{
"exam": exam,
"cid_users": available_cid_users,
"cid_user_count": cid_user_count,
"app_name": self.app_name,
},
)
# @method_decorator(login_required)
def exam_notes(self, request, pk):
exam = get_object_or_404(self.Exam, pk=pk)
@@ -644,6 +673,12 @@ class ExamViews(View, LoginRequiredMixin):
exam = get_object_or_404(self.Exam, pk=pk)
if "edit_cid_users" in request.POST:
user_ids = json.loads(request.POST.get("cid_user_ids"))
data = {"status": "success"}
return JsonResponse(data, status=200)
if "add_exam_questions" in request.POST:
question_ids = json.loads(request.POST.get("add_exam_questions"))
question_objects = self.Question.objects.filter(pk__in=question_ids)
+2 -2
View File
@@ -26,7 +26,7 @@ from helpers.images import image_as_base64
from django.contrib.contenttypes.fields import GenericRelation
from generic.models import CidUser, Site, Condition, Sign, ExamBase, QuestionNote
from generic.models import CidUser, CidUserGroup, Site, Condition, Sign, ExamBase, QuestionNote
import reversion
@@ -596,7 +596,7 @@ class Exam(ExamBase):
CidUser, blank=True, related_name="rapid_exams"
)
cid_user_groups = models.ManyToManyField("generic.CidUserGroup")
cid_user_groups = models.ManyToManyField(CidUserGroup)
def get_normal_abnormal_breakdown(self):
# Inefficient but more extendible
+1 -1
View File
@@ -110,7 +110,7 @@ urlpatterns = [
path("exam/all", views.GenericExamViews.exam_list_all, name="exam_list_all"),
path("exam/create", views.ExamCreate.as_view(), name="exam_create"),
path("exam/<int:exam_id>/clone", views.ExamClone.as_view(), name="exam_clone"),
path("exam/<int:exam_id>/cids", views.GenericExamViews.exam_cids, name="exam_cids"),
path("exam/<int:exam_id>/cids/edit", views.GenericExamViews.exam_cids, name="exam_cids_edit"),
path("exam/<int:pk>/update", views.ExamUpdate.as_view(), name="exam_update"),
path("exam/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
path("exam/json/", views.GenericExamViews.active_exams, name="active_exams"),