This commit is contained in:
Ross
2021-09-12 11:34:14 +01:00
parent 15463a29bf
commit 5c0a5d04ca
4 changed files with 18 additions and 7 deletions
+1 -5
View File
@@ -855,12 +855,8 @@ class AnatomyQuestionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateV
class QuestionClone(AnatomyQuestionCreateBase): 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): def get_initial(self):
# print(self.request) # print(self.request)
old_object = get_object_or_404(AnatomyQuestion, pk=self.kwargs["pk"]) old_object = get_object_or_404(AnatomyQuestion, pk=self.kwargs["pk"])
+4 -1
View File
@@ -1,4 +1,5 @@
from django.contrib.contenttypes.models import ContentType 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.shortcuts import render, get_object_or_404, redirect
from django.contrib.auth.decorators import login_required, user_passes_test 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) cache.set("{}_question_json_{}".format(self.app_name, sk), question_json, 3600)
return JsonResponse(question_json) return JsonResponse(question_json)
+1
View File
@@ -109,6 +109,7 @@ urlpatterns = [
path("exam/", views.LongExamViews.exam_list, name="exam_list"), path("exam/", views.LongExamViews.exam_list, name="exam_list"),
path("exam/all", views.LongExamViews.exam_list_all, name="exam_list_all"), path("exam/all", views.LongExamViews.exam_list_all, name="exam_list_all"),
path("exam/create", views.ExamCreate.as_view(), name="exam_create"), 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:pk>/update", views.ExamUpdate.as_view(), name="exam_update"), 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/<int:pk>/delete", views.ExamDelete.as_view(), name="exam_delete"),
path("exam/json/", views.LongExamViews.active_exams, name="active_exams"), path("exam/json/", views.LongExamViews.active_exams, name="active_exams"),
+12 -1
View File
@@ -59,7 +59,7 @@ from django.forms.models import model_to_dict
from longs.forms import LongCreationDefaultForm from longs.forms import LongCreationDefaultForm
from longs.models import LongCreationDefault from longs.models import LongCreationDefault
from generic.views import ExamViews from generic.views import CloneExamBase, ExamViews
from reversion.views import RevisionMixin from reversion.views import RevisionMixin
import reversion import reversion
@@ -1069,6 +1069,17 @@ class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView):
form.instance.author.add(self.request.user.id) form.instance.author.add(self.request.user.id)
return super().form_valid(form) 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( class ExamUpdate(
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView