lots of updates

This commit is contained in:
Ross
2024-12-30 13:41:55 +00:00
parent 3c72a06ad2
commit 58301dd251
16 changed files with 136 additions and 341 deletions
-39
View File
@@ -1,39 +0,0 @@
# serializers.py
from rest_framework import serializers, permissions
from .models import Exam, Answer, Rapid, UserAnswer
class ExamSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = Exam
fields = ('name', 'id', 'active', "publish_results")
class QuestionAnswerSerializer(serializers.HyperlinkedModelSerializer):
#question = serializers.HyperlinkedRelatedField(view_name='rapid-detail',
# read_only=True
# )
class Meta:
model = Answer
fields = ('id', 'question', 'answer', "answer_compare", "status")
view_name = "rapid-exam"
class UserAnswerSerializer(serializers.HyperlinkedModelSerializer):
exam = serializers.HyperlinkedRelatedField(view_name='rapid-exam-detail',
read_only=True
)
class Meta:
model = UserAnswer
fields = ('id', 'question', 'normal', "answer", "answer_compare", "cid", "user", "exam", "created", "updated")
class RapidSerializer(serializers.ModelSerializer):
class Meta:
model = Rapid
fields = ('id', 'question', 'normal', "abnormality", "region", "laterality", "examination", "exams", "author", "open_access")
view_name = "rapid-detail"
class RapidLateralitySerializer(serializers.ModelSerializer):
class Meta:
model = Rapid
fields = ('id', "laterality")
view_name = "rapid-laterality"
-98
View File
@@ -83,18 +83,6 @@ from django.forms.models import model_to_dict
from rapids.forms import RapidCreationDefaultForm
from rapids.models import RapidCreationDefault
from rest_framework import viewsets, permissions, mixins
from rest_framework.pagination import PageNumberPagination
from .serializers import (
ExamSerializer,
QuestionAnswerSerializer,
RapidLateralitySerializer,
RapidSerializer,
UserAnswerSerializer,
)
from generic.mixins import CheckCanEditMixin, SuperuserRequiredMixin
from dal import autocomplete
@@ -797,92 +785,6 @@ class UserAnswerDelete(SuperuserRequiredMixin, DeleteView):
success_url = reverse_lazy("rapids:user_answer_table_view")
class LargeResultsSetPagination(PageNumberPagination):
page_size = 1000
page_size_query_param = "page_size"
max_page_size = 10000
class StandardResultsSetPagination(PageNumberPagination):
page_size = 100
page_size_query_param = "page_size"
max_page_size = 1000
class ExamViewSet(RevisionMixin, viewsets.ModelViewSet):
# queryset = Exam.objects.all().order_by('name')
serializer_class = ExamSerializer
def get_queryset(self):
"""
This view should return a list exams available to a user.
"""
user = self.request.user
if user.groups.filter(name="rapid_checker").exists():
return Exam.objects.filter(archive=False).order_by("name")
return Exam.objects.filter(author__id=user.id, archive=False).order_by("name")
# class QuestionAnswerViewSet(viewsets.ModelViewSet):
# queryset = Answer.objects.all() # .order_by('name')
# serializer_class = QuestionAnswerSerializer
# permission_classes = [permissions.IsAuthenticated]
#
#
# class UserAnswerViewSet(viewsets.ModelViewSet):
# queryset = UserAnswer.objects.all() # .order_by('name')
# serializer_class = UserAnswerSerializer
# permission_classes = [permissions.IsAuthenticated]
# class RapidViewSet(
# RevisionMixin,
# mixins.CreateModelMixin,
# mixins.RetrieveModelMixin,
# mixins.UpdateModelMixin,
# mixins.ListModelMixin,
# mixins.DestroyModelMixin,
# viewsets.GenericViewSet,
# ):
# queryset = Rapid.objects.all() # .order_by('name')
# serializer_class = RapidSerializer
# permission_classes = [permissions.IsAuthenticated]
# pagination_class = StandardResultsSetPagination
# class AddSuggestedAnswer(LoginRequiredMixin, CreateView):
# model = QuestionNote
# form_class = QuestionNoteForm
#
# #fields = ("author", "note_type", "note")
#
#
# def get_form_kwargs(self):
# kwargs = super(AddQuestionNote, self).get_form_kwargs()
# # update the kwargs for the form init method with yours
# kwargs.update(self.kwargs) # self.kwargs contains all url conf params
# return kwargs
#
# def get_initial(self):
# pk = self.kwargs["pk"]
# question_type = self.kwargs["question_type"]
# if question_type == "rapid":
# question = Rapid
# content_type = ContentType.objects.get(model="rapid")
# elif question_type == "anatomy":
# question = AnatomyQuestion
# content_type = ContentType.objects.get(model="anatomyquestion")
# elif question_type == "long":
# question = Long
# content_type = ContentType.objects.get(model="long")
# else:
# raise PermissionError()
#
# get_object_or_404(question, pk=pk)
# return { "content_type" : content_type,
# "object_id" : pk }
GenericViews = GenericViewBase("rapids", Rapid, UserAnswer, Exam)