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
View File
@@ -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/<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>/delete", views.ExamDelete.as_view(), name="exam_delete"),
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.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