fix: exam/viwe.py 修改考试的参与记录
This commit is contained in:
parent
e59038b66e
commit
305f5b065f
|
@ -40,6 +40,6 @@ class ExamFilter(filters.FilterSet):
|
||||||
def filter_is_my(self, queryset, name, value):
|
def filter_is_my(self, queryset, name, value):
|
||||||
if value:
|
if value:
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
return queryset.filter(Q(participant_user=user)|Q(participant_dep=user.dept)|Q(is_open=True))
|
return queryset.filter(participant_dep=user.dept)
|
||||||
return queryset
|
return queryset
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Generated by Django 3.2.12 on 2024-06-19 06:12
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('exam', '0001_initial'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='exam',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=100, unique=True, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='paper',
|
||||||
|
name='name',
|
||||||
|
field=models.CharField(max_length=200, unique=True, verbose_name='名称'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -51,7 +51,7 @@ class Question(CommonADModel):
|
||||||
|
|
||||||
|
|
||||||
class Paper(CommonAModel):
|
class Paper(CommonAModel):
|
||||||
name = models.CharField(max_length=200, verbose_name='名称')
|
name = models.CharField(max_length=200, verbose_name='名称', unique=True)
|
||||||
questions = models.ManyToManyField(Question, through='PaperQuestion')
|
questions = models.ManyToManyField(Question, through='PaperQuestion')
|
||||||
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')
|
limit = models.IntegerField(default=0, verbose_name='限时(分钟)')
|
||||||
total_score = models.FloatField(default=0, verbose_name='满分')
|
total_score = models.FloatField(default=0, verbose_name='满分')
|
||||||
|
@ -81,7 +81,7 @@ class Exam(CommonAModel):
|
||||||
组织的正式考试
|
组织的正式考试
|
||||||
"""
|
"""
|
||||||
code = models.CharField('考试编号', max_length=100, null=True, blank=True, unique=True)
|
code = models.CharField('考试编号', max_length=100, null=True, blank=True, unique=True)
|
||||||
name = models.CharField('名称', max_length=100)
|
name = models.CharField('名称', max_length=100, unique=True)
|
||||||
place = models.CharField('考试地点', max_length=100, null=True, blank=True)
|
place = models.CharField('考试地点', max_length=100, null=True, blank=True)
|
||||||
open_time = models.DateTimeField('开启时间', null=True, blank=True)
|
open_time = models.DateTimeField('开启时间', null=True, blank=True)
|
||||||
close_time = models.DateTimeField('关闭时间', null=True, blank=True)
|
close_time = models.DateTimeField('关闭时间', null=True, blank=True)
|
||||||
|
|
|
@ -489,14 +489,14 @@ class ExamViewSet(CreateUpdateCustomMixin, ModelViewSet):
|
||||||
user = self.request.user
|
user = self.request.user
|
||||||
if has_permission("exam", user):
|
if has_permission("exam", user):
|
||||||
return qs
|
return qs
|
||||||
return qs.filter(Q(participant_user=user)|Q(participant_dep=user.dept)|Q(is_open=True))
|
return qs.filter(participant_dep=user.dept)
|
||||||
|
|
||||||
|
|
||||||
def destroy(self, request, *args, **kwargs):
|
def destroy(self, request, *args, **kwargs):
|
||||||
instance = self.get_object()
|
instance = self.get_object()
|
||||||
if ExamRecord.objects.filter(exam=instance).exists():
|
if ExamRecord.objects.filter(exam=instance).exists():
|
||||||
raise ParseError('存在考试记录,禁止删除')
|
raise ParseError('存在考试记录,禁止删除')
|
||||||
instance.delete()
|
instance.delete(soft=False)
|
||||||
return Response(status=204)
|
return Response(status=204)
|
||||||
|
|
||||||
@action(methods=['post'], detail=True, perms_map={'post': '*'}, serializer_class=Serializer, permission_classes = [IsAuthenticated])
|
@action(methods=['post'], detail=True, perms_map={'post': '*'}, serializer_class=Serializer, permission_classes = [IsAuthenticated])
|
||||||
|
|
Loading…
Reference in New Issue