rename CidUserAnswer to UserAnswer
This commit is contained in:
+3
-3
@@ -1,5 +1,5 @@
|
||||
from django.contrib import admin
|
||||
from .models import Rapid, RapidImage, Examination, Site, Abnormality, Region, RapidCreationDefault, Answer, Exam, CidUserAnswer
|
||||
from .models import Rapid, RapidImage, Examination, Site, Abnormality, Region, RapidCreationDefault, Answer, Exam, UserAnswer
|
||||
|
||||
from django.forms import ModelForm
|
||||
|
||||
@@ -71,11 +71,11 @@ class ExamAdmin(VersionAdmin, admin.ModelAdmin):
|
||||
admin.site.register(Rapid, RapidAdmin)
|
||||
admin.site.register(Exam, ExamAdmin)
|
||||
|
||||
class CidUserAnswerAdmin(admin.ModelAdmin):
|
||||
class UserAnswerAdmin(admin.ModelAdmin):
|
||||
exclude = []
|
||||
readonly_fields = ["created", "updated"]
|
||||
|
||||
admin.site.register(CidUserAnswer, CidUserAnswerAdmin)
|
||||
admin.site.register(UserAnswer, UserAnswerAdmin)
|
||||
|
||||
class RapidImageAdmin(admin.ModelAdmin):
|
||||
readonly_fields = ('rapid',)
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
import django_filters
|
||||
|
||||
from .models import Rapid, CidUserAnswer, Exam
|
||||
from .models import Rapid, UserAnswer, Exam
|
||||
from django.contrib.auth.models import User
|
||||
|
||||
|
||||
@@ -68,9 +68,9 @@ class RapidFilter(django_filters.FilterSet):
|
||||
pass
|
||||
|
||||
|
||||
class RapidCidUserAnswerFilter(django_filters.FilterSet):
|
||||
class RapidUserAnswerFilter(django_filters.FilterSet):
|
||||
class Meta:
|
||||
model = CidUserAnswer
|
||||
model = UserAnswer
|
||||
fields = (
|
||||
"cid",
|
||||
"user",
|
||||
@@ -95,7 +95,7 @@ class RapidCidUserAnswerFilter(django_filters.FilterSet):
|
||||
queryset = queryset.filter(open_access=True) | queryset.filter(
|
||||
author__id=request.user.id
|
||||
)
|
||||
super(RapidCidUserAnswerFilter, self).__init__(
|
||||
super(RapidUserAnswerFilter, self).__init__(
|
||||
data=data, queryset=queryset, prefix=prefix, request=request
|
||||
)
|
||||
pass
|
||||
|
||||
+2
-2
@@ -17,7 +17,7 @@ from rapids.models import (
|
||||
RapidImage,
|
||||
Region,
|
||||
Answer,
|
||||
CidUserAnswer,
|
||||
UserAnswer,
|
||||
Exam,
|
||||
)
|
||||
|
||||
@@ -28,7 +28,7 @@ from django.contrib.auth.models import User
|
||||
|
||||
class RapidAnswerForm(ModelForm):
|
||||
class Meta:
|
||||
model = CidUserAnswer
|
||||
model = UserAnswer
|
||||
fields = ("answer",)
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Generated by Django 4.1.4 on 2023-05-15 10:14
|
||||
|
||||
from django.conf import settings
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
('rapids', '0062_alter_ciduseranswer_options'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RenameModel(
|
||||
old_name='CidUserAnswer',
|
||||
new_name='UserAnswer',
|
||||
),
|
||||
]
|
||||
+9
-9
@@ -34,7 +34,7 @@ from generic.models import (
|
||||
#Sign,
|
||||
ExamBase,
|
||||
QuestionNote,
|
||||
CidUserAnswerBase,
|
||||
UserAnswerBase,
|
||||
UserUserGroup,
|
||||
)
|
||||
|
||||
@@ -769,7 +769,7 @@ class Exam(ExamBase):
|
||||
|
||||
|
||||
@reversion.register
|
||||
class CidUserAnswer(CidUserAnswerBase):
|
||||
class UserAnswer(UserAnswerBase):
|
||||
"""User answers by candidate"""
|
||||
|
||||
question = models.ForeignKey(
|
||||
@@ -830,7 +830,7 @@ class CidUserAnswer(CidUserAnswerBase):
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
self.clean()
|
||||
return super(CidUserAnswer, self).save(*args, **kwargs)
|
||||
return super(UserAnswer, self).save(*args, **kwargs)
|
||||
|
||||
def clean(self):
|
||||
self.score = Answer.MarkOptions.UNMARKED
|
||||
@@ -885,9 +885,9 @@ class CidUserAnswer(CidUserAnswerBase):
|
||||
# First step we check that the normal/abnormal states match
|
||||
if q.normal != self.normal:
|
||||
if q.normal:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.OVERCALL
|
||||
self.callstate = UserAnswer.CallStateOptions.OVERCALL
|
||||
else:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.UNDERCALL
|
||||
self.callstate = UserAnswer.CallStateOptions.UNDERCALL
|
||||
|
||||
self.score = Answer.MarkOptions.INCORRECT
|
||||
self.save()
|
||||
@@ -895,7 +895,7 @@ class CidUserAnswer(CidUserAnswerBase):
|
||||
return 0
|
||||
# If both are normal full marks
|
||||
elif q.normal and self.normal:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.CORRECT
|
||||
self.callstate = UserAnswer.CallStateOptions.CORRECT
|
||||
self.score = Answer.MarkOptions.CORRECT
|
||||
self.save()
|
||||
return 2
|
||||
@@ -920,13 +920,13 @@ class CidUserAnswer(CidUserAnswerBase):
|
||||
self.score = marked_ans.status
|
||||
|
||||
if marked_ans.status == Answer.MarkOptions.CORRECT:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.CORRECT
|
||||
self.callstate = UserAnswer.CallStateOptions.CORRECT
|
||||
mark = 2
|
||||
elif marked_ans.status == Answer.MarkOptions.HALF_MARK:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.PARTIALCALL
|
||||
self.callstate = UserAnswer.CallStateOptions.PARTIALCALL
|
||||
mark = 1
|
||||
elif marked_ans.status == Answer.MarkOptions.INCORRECT:
|
||||
self.callstate = CidUserAnswer.CallStateOptions.INCORRECTCALL
|
||||
self.callstate = UserAnswer.CallStateOptions.INCORRECTCALL
|
||||
mark = 0
|
||||
self.save()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
from rest_framework import serializers, permissions
|
||||
|
||||
|
||||
from .models import Exam, Answer, Rapid, CidUserAnswer
|
||||
from .models import Exam, Answer, Rapid, UserAnswer
|
||||
|
||||
class ExamSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class Meta:
|
||||
@@ -18,12 +18,12 @@ class QuestionAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
fields = ('id', 'question', 'answer', "answer_compare", "status")
|
||||
view_name = "rapid-exam"
|
||||
|
||||
class CidUserAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class UserAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
exam = serializers.HyperlinkedRelatedField(view_name='rapid-exam-detail',
|
||||
read_only=True
|
||||
)
|
||||
class Meta:
|
||||
model = CidUserAnswer
|
||||
model = UserAnswer
|
||||
fields = ('id', 'question', 'normal', "answer", "answer_compare", "cid", "user", "exam", "created", "updated")
|
||||
|
||||
class RapidSerializer(serializers.ModelSerializer):
|
||||
|
||||
+3
-3
@@ -1,7 +1,7 @@
|
||||
import django_tables2 as tables
|
||||
from django_tables2.utils import A
|
||||
|
||||
from .models import Rapid, CidUserAnswer
|
||||
from .models import Rapid, UserAnswer
|
||||
|
||||
from django.utils.html import format_html
|
||||
|
||||
@@ -66,7 +66,7 @@ class RapidTable(tables.Table):
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
class RapidCidUserAnswerTable(tables.Table):
|
||||
class RapidUserAnswerTable(tables.Table):
|
||||
select = tables.CheckBoxColumn(accessor=("pk"))
|
||||
delete = tables.LinkColumn(
|
||||
"rapids:user_answer_delete", text="Delete", args=[A("pk")], orderable=False
|
||||
@@ -76,7 +76,7 @@ class RapidCidUserAnswerTable(tables.Table):
|
||||
args=[A('pk')],
|
||||
orderable=False)
|
||||
class Meta:
|
||||
model = CidUserAnswer
|
||||
model = UserAnswer
|
||||
template_name = "django_tables2/bootstrap4.html"
|
||||
fields = (
|
||||
"cid",
|
||||
|
||||
@@ -15,7 +15,7 @@ from bs4 import BeautifulSoup
|
||||
|
||||
from rapids.views import GenericExamViews as RapidExamViews
|
||||
|
||||
from rapids.models import Answer, CidUserAnswer, Exam, Examination, Rapid as Question, RapidImage
|
||||
from rapids.models import Answer, UserAnswer, Exam, Examination, Rapid as Question, RapidImage
|
||||
|
||||
from generic.models import CidUser, CidUserGroup, UserUserGroup
|
||||
|
||||
@@ -295,9 +295,9 @@ def test_exams(db, client):
|
||||
|
||||
# Check the answers now exist in the database
|
||||
if testing_cid_user:
|
||||
answers = CidUserAnswer.objects.filter(cid=cid_user.cid)
|
||||
answers = UserAnswer.objects.filter(cid=cid_user.cid)
|
||||
else:
|
||||
answers = CidUserAnswer.objects.filter(user=cid_user)
|
||||
answers = UserAnswer.objects.filter(user=cid_user)
|
||||
|
||||
assert answers.count() == 3
|
||||
|
||||
|
||||
+3
-3
@@ -83,15 +83,15 @@ urlpatterns = [
|
||||
),
|
||||
path(
|
||||
"user_answers/",
|
||||
views.CidUserAnswerTableView.as_view(),
|
||||
views.UserAnswerTableView.as_view(),
|
||||
name="user_answer_table_view",
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>", views.CidUserAnswerView.as_view(), name="user_answer_view"
|
||||
"user_answers/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>/delete",
|
||||
views.CidUserAnswerDelete.as_view(),
|
||||
views.UserAnswerDelete.as_view(),
|
||||
name="user_answer_delete",
|
||||
),
|
||||
path(
|
||||
|
||||
+17
-17
@@ -39,7 +39,7 @@ from .models import (
|
||||
Examination,
|
||||
Exam,
|
||||
Answer,
|
||||
CidUserAnswer,
|
||||
UserAnswer,
|
||||
)
|
||||
|
||||
from generic.views import (
|
||||
@@ -54,8 +54,8 @@ from generic.views import (
|
||||
|
||||
from reversion.views import RevisionMixin
|
||||
|
||||
from .tables import RapidTable, RapidCidUserAnswerTable
|
||||
from .filters import RapidFilter, RapidCidUserAnswerFilter
|
||||
from .tables import RapidTable, RapidUserAnswerTable
|
||||
from .filters import RapidFilter, RapidUserAnswerFilter
|
||||
|
||||
from django_tables2 import SingleTableView, SingleTableMixin
|
||||
from django_filters.views import FilterView
|
||||
@@ -86,7 +86,7 @@ from .serializers import (
|
||||
QuestionAnswerSerializer,
|
||||
RapidLateralitySerializer,
|
||||
RapidSerializer,
|
||||
CidUserAnswerSerializer,
|
||||
UserAnswerSerializer,
|
||||
)
|
||||
|
||||
from generic.mixins import SuperuserRequiredMixin
|
||||
@@ -693,7 +693,7 @@ class QuestionDelete(AuthorOrCheckerRequiredMixin, DeleteView):
|
||||
success_url = reverse_lazy("rapids:rapid_view")
|
||||
|
||||
|
||||
GenericExamViews = ExamViews(Exam, Rapid, Answer, CidUserAnswer, "rapids", "rapid", normalise_score=normaliseScore)
|
||||
GenericExamViews = ExamViews(Exam, Rapid, Answer, UserAnswer, "rapids", "rapid", normalise_score=normaliseScore)
|
||||
|
||||
|
||||
class ExamCreate(ExamCreateBase):
|
||||
@@ -717,20 +717,20 @@ class ExamAuthorUpdate(
|
||||
|
||||
|
||||
|
||||
class CidUserAnswerView(LoginRequiredMixin, DetailView):
|
||||
model = CidUserAnswer
|
||||
class UserAnswerView(LoginRequiredMixin, DetailView):
|
||||
model = UserAnswer
|
||||
|
||||
|
||||
class CidUserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||
model = CidUserAnswer
|
||||
table_class = RapidCidUserAnswerTable
|
||||
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||
model = UserAnswer
|
||||
table_class = RapidUserAnswerTable
|
||||
template_name = "rapids/user_answer_question_view.html"
|
||||
|
||||
filterset_class = RapidCidUserAnswerFilter
|
||||
filterset_class = RapidUserAnswerFilter
|
||||
|
||||
|
||||
class CidUserAnswerDelete(SuperuserRequiredMixin, DeleteView):
|
||||
model = CidUserAnswer
|
||||
class UserAnswerDelete(SuperuserRequiredMixin, DeleteView):
|
||||
model = UserAnswer
|
||||
template_name = "user_answer_delete.html"
|
||||
success_url = reverse_lazy("rapids:user_answer_table_view")
|
||||
|
||||
@@ -768,9 +768,9 @@ class ExamViewSet(RevisionMixin, viewsets.ModelViewSet):
|
||||
# permission_classes = [permissions.IsAuthenticated]
|
||||
#
|
||||
#
|
||||
#class CidUserAnswerViewSet(viewsets.ModelViewSet):
|
||||
# queryset = CidUserAnswer.objects.all() # .order_by('name')
|
||||
# serializer_class = CidUserAnswerSerializer
|
||||
#class UserAnswerViewSet(viewsets.ModelViewSet):
|
||||
# queryset = UserAnswer.objects.all() # .order_by('name')
|
||||
# serializer_class = UserAnswerSerializer
|
||||
# permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
@@ -822,7 +822,7 @@ class ExamViewSet(RevisionMixin, viewsets.ModelViewSet):
|
||||
# return { "content_type" : content_type,
|
||||
# "object_id" : pk }
|
||||
|
||||
GenericViews = GenericViewBase("rapids", Rapid, CidUserAnswer, Exam)
|
||||
GenericViews = GenericViewBase("rapids", Rapid, UserAnswer, Exam)
|
||||
|
||||
|
||||
@user_is_author_or_rapid_checker
|
||||
|
||||
Reference in New Issue
Block a user