create base useranswer class
This commit is contained in:
+2
-2
@@ -68,7 +68,7 @@ class RapidFilter(django_filters.FilterSet):
|
||||
pass
|
||||
|
||||
|
||||
class RapidUserAnswerFilter(django_filters.FilterSet):
|
||||
class RapidCidUserAnswerFilter(django_filters.FilterSet):
|
||||
class Meta:
|
||||
model = CidUserAnswer
|
||||
fields = (
|
||||
@@ -95,7 +95,7 @@ class RapidUserAnswerFilter(django_filters.FilterSet):
|
||||
queryset = queryset.filter(open_access=True) | queryset.filter(
|
||||
author__id=request.user.id
|
||||
)
|
||||
super(RapidUserAnswerFilter, self).__init__(
|
||||
super(RapidCidUserAnswerFilter, self).__init__(
|
||||
data=data, queryset=queryset, prefix=prefix, request=request
|
||||
)
|
||||
pass
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
# Generated by Django 4.1.4 on 2023-05-15 10:11
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('rapids', '0061_remove_exam_stats_graph'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterModelOptions(
|
||||
name='ciduseranswer',
|
||||
options={'ordering': ['cid']},
|
||||
),
|
||||
]
|
||||
+2
-9
@@ -34,6 +34,7 @@ from generic.models import (
|
||||
#Sign,
|
||||
ExamBase,
|
||||
QuestionNote,
|
||||
CidUserAnswerBase,
|
||||
UserUserGroup,
|
||||
)
|
||||
|
||||
@@ -768,7 +769,7 @@ class Exam(ExamBase):
|
||||
|
||||
|
||||
@reversion.register
|
||||
class CidUserAnswer(models.Model):
|
||||
class CidUserAnswer(CidUserAnswerBase):
|
||||
"""User answers by candidate"""
|
||||
|
||||
question = models.ForeignKey(
|
||||
@@ -781,11 +782,6 @@ class CidUserAnswer(models.Model):
|
||||
|
||||
answer_compare = models.TextField(max_length=500, blank=True)
|
||||
|
||||
cid = models.BigIntegerField(
|
||||
blank=True,
|
||||
null=True,
|
||||
help_text="Candidate ID (limitied by BigIntegerField size)",
|
||||
)
|
||||
|
||||
user = models.ForeignKey(
|
||||
settings.AUTH_USER_MODEL,
|
||||
@@ -800,9 +796,6 @@ class CidUserAnswer(models.Model):
|
||||
Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True
|
||||
)
|
||||
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
updated = models.DateTimeField(auto_now=True)
|
||||
|
||||
score = models.CharField(
|
||||
max_length=1,
|
||||
choices=Answer.MarkOptions.choices,
|
||||
|
||||
@@ -18,7 +18,7 @@ class QuestionAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
fields = ('id', 'question', 'answer', "answer_compare", "status")
|
||||
view_name = "rapid-exam"
|
||||
|
||||
class UserAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
class CidUserAnswerSerializer(serializers.HyperlinkedModelSerializer):
|
||||
exam = serializers.HyperlinkedRelatedField(view_name='rapid-exam-detail',
|
||||
read_only=True
|
||||
)
|
||||
|
||||
+1
-1
@@ -66,7 +66,7 @@ class RapidTable(tables.Table):
|
||||
**kwargs,
|
||||
)
|
||||
|
||||
class RapidUserAnswerTable(tables.Table):
|
||||
class RapidCidUserAnswerTable(tables.Table):
|
||||
select = tables.CheckBoxColumn(accessor=("pk"))
|
||||
delete = tables.LinkColumn(
|
||||
"rapids:user_answer_delete", text="Delete", args=[A("pk")], orderable=False
|
||||
|
||||
+3
-3
@@ -83,15 +83,15 @@ urlpatterns = [
|
||||
),
|
||||
path(
|
||||
"user_answers/",
|
||||
views.UserAnswerTableView.as_view(),
|
||||
views.CidUserAnswerTableView.as_view(),
|
||||
name="user_answer_table_view",
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>", views.UserAnswerView.as_view(), name="user_answer_view"
|
||||
"user_answers/<int:pk>", views.CidUserAnswerView.as_view(), name="user_answer_view"
|
||||
),
|
||||
path(
|
||||
"user_answers/<int:pk>/delete",
|
||||
views.UserAnswerDelete.as_view(),
|
||||
views.CidUserAnswerDelete.as_view(),
|
||||
name="user_answer_delete",
|
||||
),
|
||||
path(
|
||||
|
||||
+10
-10
@@ -54,8 +54,8 @@ from generic.views import (
|
||||
|
||||
from reversion.views import RevisionMixin
|
||||
|
||||
from .tables import RapidTable, RapidUserAnswerTable
|
||||
from .filters import RapidFilter, RapidUserAnswerFilter
|
||||
from .tables import RapidTable, RapidCidUserAnswerTable
|
||||
from .filters import RapidFilter, RapidCidUserAnswerFilter
|
||||
|
||||
from django_tables2 import SingleTableView, SingleTableMixin
|
||||
from django_filters.views import FilterView
|
||||
@@ -86,7 +86,7 @@ from .serializers import (
|
||||
QuestionAnswerSerializer,
|
||||
RapidLateralitySerializer,
|
||||
RapidSerializer,
|
||||
UserAnswerSerializer,
|
||||
CidUserAnswerSerializer,
|
||||
)
|
||||
|
||||
from generic.mixins import SuperuserRequiredMixin
|
||||
@@ -717,19 +717,19 @@ class ExamAuthorUpdate(
|
||||
|
||||
|
||||
|
||||
class UserAnswerView(LoginRequiredMixin, DetailView):
|
||||
class CidUserAnswerView(LoginRequiredMixin, DetailView):
|
||||
model = CidUserAnswer
|
||||
|
||||
|
||||
class UserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||
class CidUserAnswerTableView(LoginRequiredMixin, SingleTableMixin, FilterView):
|
||||
model = CidUserAnswer
|
||||
table_class = RapidUserAnswerTable
|
||||
table_class = RapidCidUserAnswerTable
|
||||
template_name = "rapids/user_answer_question_view.html"
|
||||
|
||||
filterset_class = RapidUserAnswerFilter
|
||||
filterset_class = RapidCidUserAnswerFilter
|
||||
|
||||
|
||||
class UserAnswerDelete(SuperuserRequiredMixin, DeleteView):
|
||||
class CidUserAnswerDelete(SuperuserRequiredMixin, DeleteView):
|
||||
model = CidUserAnswer
|
||||
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 UserAnswerViewSet(viewsets.ModelViewSet):
|
||||
#class CidUserAnswerViewSet(viewsets.ModelViewSet):
|
||||
# queryset = CidUserAnswer.objects.all() # .order_by('name')
|
||||
# serializer_class = UserAnswerSerializer
|
||||
# serializer_class = CidUserAnswerSerializer
|
||||
# permission_classes = [permissions.IsAuthenticated]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user