.
This commit is contained in:
@@ -18,6 +18,8 @@ from generic.models import Examination, ExamBase
|
||||
from collections import defaultdict
|
||||
from helpers.images import image_as_base64
|
||||
|
||||
import reversion
|
||||
|
||||
image_storage = FileSystemStorage(
|
||||
# Physical file location ROOT
|
||||
location=u"{0}/".format(settings.MEDIA_ROOT),
|
||||
@@ -66,6 +68,7 @@ class QuestionType(models.Model):
|
||||
return self.text
|
||||
|
||||
|
||||
@reversion.register
|
||||
class AnatomyQuestion(models.Model):
|
||||
# author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
|
||||
# image = models.ImageField()
|
||||
@@ -269,6 +272,7 @@ class Answer(models.Model):
|
||||
# self.answer.strip()
|
||||
|
||||
|
||||
@reversion.register
|
||||
class Exam(ExamBase):
|
||||
app_name = "anatomy"
|
||||
|
||||
|
||||
+7
-6
@@ -47,6 +47,7 @@ from .models import (
|
||||
)
|
||||
from generic.models import Examination
|
||||
from generic.views import ExamViews
|
||||
from reversion.views import RevisionMixin
|
||||
|
||||
from .decorators import user_is_author_or_anatomy_checker
|
||||
|
||||
@@ -694,7 +695,7 @@ def exam_scores_cid_user(request, pk, sk):
|
||||
# )
|
||||
|
||||
|
||||
class AnatomyQuestionCreateBase(LoginRequiredMixin, CreateView):
|
||||
class AnatomyQuestionCreateBase(RevisionMixin, LoginRequiredMixin, CreateView):
|
||||
model = AnatomyQuestion
|
||||
form_class = AnatomyQuestionForm
|
||||
|
||||
@@ -799,7 +800,7 @@ class AnatomyQuestionCreate(AnatomyQuestionCreateBase):
|
||||
|
||||
|
||||
# class AnatomyQuestionUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin,
|
||||
class AnatomyQuestionUpdate(AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
class AnatomyQuestionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
model = AnatomyQuestion
|
||||
form_class = AnatomyQuestionForm
|
||||
|
||||
@@ -989,7 +990,7 @@ class QuestionDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
||||
model = AnatomyQuestion
|
||||
success_url = reverse_lazy("anatomy:anatomy_question_view")
|
||||
|
||||
class ExamCreate(LoginRequiredMixin, CreateView):
|
||||
class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView):
|
||||
model = Exam
|
||||
form_class = ExamForm
|
||||
|
||||
@@ -1000,7 +1001,7 @@ class ExamCreate(LoginRequiredMixin, CreateView):
|
||||
form.instance.author.add(self.request.user.id)
|
||||
return super().form_valid(form)
|
||||
|
||||
class ExamUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
class ExamUpdate(RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
model = Exam
|
||||
form_class = ExamForm
|
||||
|
||||
@@ -1011,7 +1012,7 @@ class ExamUpdate(LoginRequiredMixin, AuthorOrCheckerRequiredMixin, UpdateView):
|
||||
form.instance.author.add(self.request.user.id)
|
||||
return super().form_valid(form)
|
||||
|
||||
class ExamViewSet(viewsets.ModelViewSet):
|
||||
class ExamViewSet(RevisionMixin, viewsets.ModelViewSet):
|
||||
#queryset = Exam.objects.all().order_by('name')
|
||||
serializer_class = ExamSerializer
|
||||
permission_classes = [permissions.IsAuthenticated]
|
||||
@@ -1026,6 +1027,6 @@ class ExamViewSet(viewsets.ModelViewSet):
|
||||
|
||||
return Exam.objects.filter(author__id=user.id)
|
||||
|
||||
class ExamDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
||||
class ExamDelete(RevisionMixin, AuthorOrCheckerRequiredMixin, DeleteView):
|
||||
model = Exam
|
||||
success_url = reverse_lazy("anatomy:index")
|
||||
Reference in New Issue
Block a user