From 5c0a5d04cae0126bf722cd063bc45450b4a80c26 Mon Sep 17 00:00:00 2001 From: Ross Date: Sun, 12 Sep 2021 11:34:14 +0100 Subject: [PATCH] . --- anatomy/views.py | 6 +----- generic/views.py | 5 ++++- longs/urls.py | 1 + longs/views.py | 13 ++++++++++++- 4 files changed, 18 insertions(+), 7 deletions(-) diff --git a/anatomy/views.py b/anatomy/views.py index 31353f9d..2da80051 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -855,12 +855,8 @@ class AnatomyQuestionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateV class QuestionClone(AnatomyQuestionCreateBase): - """Clones a existing rapid""" + """Clones a existing question""" - # fields = '__all__' - # #fields = [ 'condition' ] - # #initial = {'date_of_death': '05/01/2018'} - # exclude = [ 'created_date', 'published_date' ] def get_initial(self): # print(self.request) old_object = get_object_or_404(AnatomyQuestion, pk=self.kwargs["pk"]) diff --git a/generic/views.py b/generic/views.py index 34b8d20d..825a0297 100644 --- a/generic/views.py +++ b/generic/views.py @@ -1,4 +1,5 @@ from django.contrib.contenttypes.models import ContentType +from django.forms.models import model_to_dict from django.shortcuts import render, get_object_or_404, redirect from django.contrib.auth.decorators import login_required, user_passes_test @@ -638,4 +639,6 @@ class ExamViews(View, LoginRequiredMixin): cache.set("{}_question_json_{}".format(self.app_name, sk), question_json, 3600) - return JsonResponse(question_json) \ No newline at end of file + return JsonResponse(question_json) + + \ No newline at end of file diff --git a/longs/urls.py b/longs/urls.py index 1f47983e..9313e588 100755 --- a/longs/urls.py +++ b/longs/urls.py @@ -109,6 +109,7 @@ urlpatterns = [ path("exam/", views.LongExamViews.exam_list, name="exam_list"), path("exam/all", views.LongExamViews.exam_list_all, name="exam_list_all"), path("exam/create", views.ExamCreate.as_view(), name="exam_create"), + path("exam//clone", views.ExamClone.as_view(), name="exam_clone"), 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"), diff --git a/longs/views.py b/longs/views.py index f429ebbd..0ea5d44f 100755 --- a/longs/views.py +++ b/longs/views.py @@ -59,7 +59,7 @@ from django.forms.models import model_to_dict from longs.forms import LongCreationDefaultForm from longs.models import LongCreationDefault -from generic.views import ExamViews +from generic.views import CloneExamBase, ExamViews from reversion.views import RevisionMixin import reversion @@ -1069,6 +1069,17 @@ class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView): form.instance.author.add(self.request.user.id) return super().form_valid(form) +class ExamClone(ExamCreate): + + def get_initial(self): + old_object = get_object_or_404(Exam, pk=self.kwargs["exam_id"]) + initial_data = model_to_dict(old_object, exclude=["id"]) + + #exams = old_object.exams.all().values_list("id", flat=True) + + #initial_data["exams"] = list(exams) + + return initial_data class ExamUpdate( RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView