feat: 考试增加是否仅培训班学员字段

This commit is contained in:
caoqianming 2024-03-24 20:45:58 +08:00
parent 6f73165d9b
commit 8957a3c833
3 changed files with 25 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.0.4 on 2024-03-24 12:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('examtest', '0038_auto_20230330_1402'),
]
operations = [
migrations.AddField(
model_name='exam',
name='only_vip',
field=models.BooleanField(default=False, verbose_name='仅允许培训班学员'),
),
]

View File

@ -26,6 +26,7 @@ class Exam(CommonModel):
paper = models.ForeignKey(Paper, verbose_name='选定的试卷', on_delete=models.CASCADE, null=True, blank=True)
qdimgs = JSONField('签到图片', default=list)
xcimgs = JSONField('现场图片', default=list)
only_vip = models.BooleanField('仅允许培训班学员', default=False)
def __str__(self):
return self.name

View File

@ -101,15 +101,18 @@ class ExamViewSet(ModelViewSet):
"""
参加考试
"""
consumer = request.user
if request.data.get('deptname', None):
request.user.deptname = request.data['deptname']
request.user.save()
consumer.deptname = request.data['deptname']
consumer.save()
if request.data.get('code', None):
code = request.data.get('code')
now = timezone.now()
try:
exam = Exam.objects.get(code=code, opentime__lt=now, closetime__gt=now)
tests = ExamTest.objects.filter(exam=exam, consumer=request.user)
if exam.only_vip and consumer.role.name != '培训班学员':
return Response({'error':'您无法参加本场考试'})
tests = ExamTest.objects.filter(exam=exam, consumer=consumer)
if tests.count() < exam.chance: # 还有考试机会就可以接着考
return Response({'exam':exam.pk})
return Response({'error':'考试机会不足'})