From 712f1d3182a8458824000d635edf13fdb619f0e4 Mon Sep 17 00:00:00 2001 From: Ross Date: Mon, 16 Aug 2021 12:18:00 +0000 Subject: [PATCH] . --- anatomy/forms.py | 2 +- longs/templates/longs/exam_overview.html | 2 ++ longs/urls.py | 3 +++ longs/views.py | 33 ++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 1 deletion(-) diff --git a/anatomy/forms.py b/anatomy/forms.py index c9541749..1c47f28d 100644 --- a/anatomy/forms.py +++ b/anatomy/forms.py @@ -203,4 +203,4 @@ class BodyPartForm(ModelForm): class ExamForm(ModelForm): class Meta: model = Exam - fields = ["name", "time_limit", "exam_mode", "active"] \ No newline at end of file + fields = ["name", "time_limit", "exam_mode", "active", "archive"] \ No newline at end of file diff --git a/longs/templates/longs/exam_overview.html b/longs/templates/longs/exam_overview.html index 4915abd3..1c3fb051 100644 --- a/longs/templates/longs/exam_overview.html +++ b/longs/templates/longs/exam_overview.html @@ -4,6 +4,8 @@ {% load thumbnail %}
+ Edit + Delete Admin Edit

Exam: {{ exam.name }}

This exam has {{question_number}} questions. Time limit: {{exam.time_limit}} seconds.
diff --git a/longs/urls.py b/longs/urls.py index 20d361e0..1080ff8a 100755 --- a/longs/urls.py +++ b/longs/urls.py @@ -59,6 +59,9 @@ urlpatterns = [ ), path("exam/submit", views.LongExamViews.postExamAnswers, name="exam_answers_submit"), path("exam/", views.LongExamViews.exam_list, name="exam_list"), + path("exam/create", views.ExamCreate.as_view(), name="exam_create"), + path("exam//update", views.ExamUpdate.as_view(), name="exam_update"), + path("exam//delete", views.ExamDelete.as_view(), name="exam_delete"), path("exam/json/", views.LongExamViews.active_exams, name="active_exams"), path("exam/json/", views.LongExamViews.exam_json, name="exam_json"), path("exam/json//unbased", views.LongExamViews.exam_json_unbased, name="exam_json_unbased"), diff --git a/longs/views.py b/longs/views.py index d302359e..cd800318 100755 --- a/longs/views.py +++ b/longs/views.py @@ -27,6 +27,7 @@ from .forms import ( SeriesFormSet, NoteForm, ExaminationForm, + ExamForm, ) from .models import ( Long, LongSeries, @@ -955,6 +956,38 @@ def long_series_order_upload_filename(request, pk): LongExamViews = ExamViews(Exam, Long, "longs", "long", loadJsonAnswer) + +class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView): + model = Exam + form_class = ExamForm + + def form_valid(self, form): + self.object = form.save(commit=False) + self.object.save() + + form.instance.author.add(self.request.user.id) + return super().form_valid(form) + + +class ExamUpdate( + RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView +): + model = Exam + form_class = ExamForm + + def form_valid(self, form): + self.object = form.save(commit=False) + self.object.save() + + form.instance.author.add(self.request.user.id) + return super().form_valid(form) + + +class ExamDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView): + model = Exam + success_url = reverse_lazy("longs:index") + + class ExamViewSet(RevisionMixin, viewsets.ModelViewSet): queryset = Exam.objects.all().order_by('name') serializer_class = ExamSerializer