.
This commit is contained in:
+13
-1
@@ -758,4 +758,16 @@ class GenericViewBase:
|
|||||||
def author_list(self, request):
|
def author_list(self, request):
|
||||||
authors = User.objects.all()
|
authors = User.objects.all()
|
||||||
|
|
||||||
return render(request, f"{self.app_name}/author_list.html", {"authors": authors})
|
return render(request, f"{self.app_name}/author_list.html", {"authors": authors})
|
||||||
|
|
||||||
|
|
||||||
|
class ExamCloneMixin():
|
||||||
|
def get_initial(self):
|
||||||
|
old_object = get_object_or_404(self.model, pk=self.kwargs["exam_id"])
|
||||||
|
initial_data = model_to_dict(old_object, exclude=["id"])
|
||||||
|
|
||||||
|
questions = old_object.exam_questions.all().values_list("id", flat=True)
|
||||||
|
|
||||||
|
initial_data["exam_questions"] = list(questions)
|
||||||
|
|
||||||
|
return initial_data
|
||||||
+3
-11
@@ -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 ExamCloneMixin, ExamViews
|
||||||
from reversion.views import RevisionMixin
|
from reversion.views import RevisionMixin
|
||||||
import reversion
|
import reversion
|
||||||
|
|
||||||
@@ -1074,17 +1074,9 @@ 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):
|
class ExamClone(ExamCloneMixin, ExamCreate):
|
||||||
|
"""Clone exam view"""
|
||||||
|
|
||||||
def get_initial(self):
|
|
||||||
old_object = get_object_or_404(self.model, pk=self.kwargs["exam_id"])
|
|
||||||
initial_data = model_to_dict(old_object, exclude=["id"])
|
|
||||||
|
|
||||||
questions = old_object.exam_questions.all().values_list("id", flat=True)
|
|
||||||
|
|
||||||
initial_data["exam_questions"] = list(questions)
|
|
||||||
|
|
||||||
return initial_data
|
|
||||||
|
|
||||||
class ExamUpdate(
|
class ExamUpdate(
|
||||||
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView
|
RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView
|
||||||
|
|||||||
Reference in New Issue
Block a user