feat: 考试增加是否仅培训班学员字段
This commit is contained in:
parent
6f73165d9b
commit
8957a3c833
|
@ -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='仅允许培训班学员'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -26,6 +26,7 @@ class Exam(CommonModel):
|
||||||
paper = models.ForeignKey(Paper, verbose_name='选定的试卷', on_delete=models.CASCADE, null=True, blank=True)
|
paper = models.ForeignKey(Paper, verbose_name='选定的试卷', on_delete=models.CASCADE, null=True, blank=True)
|
||||||
qdimgs = JSONField('签到图片', default=list)
|
qdimgs = JSONField('签到图片', default=list)
|
||||||
xcimgs = JSONField('现场图片', default=list)
|
xcimgs = JSONField('现场图片', default=list)
|
||||||
|
only_vip = models.BooleanField('仅允许培训班学员', default=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.name
|
return self.name
|
||||||
|
|
|
@ -101,15 +101,18 @@ class ExamViewSet(ModelViewSet):
|
||||||
"""
|
"""
|
||||||
参加考试
|
参加考试
|
||||||
"""
|
"""
|
||||||
|
consumer = request.user
|
||||||
if request.data.get('deptname', None):
|
if request.data.get('deptname', None):
|
||||||
request.user.deptname = request.data['deptname']
|
consumer.deptname = request.data['deptname']
|
||||||
request.user.save()
|
consumer.save()
|
||||||
if request.data.get('code', None):
|
if request.data.get('code', None):
|
||||||
code = request.data.get('code')
|
code = request.data.get('code')
|
||||||
now = timezone.now()
|
now = timezone.now()
|
||||||
try:
|
try:
|
||||||
exam = Exam.objects.get(code=code, opentime__lt=now, closetime__gt=now)
|
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: # 还有考试机会就可以接着考
|
if tests.count() < exam.chance: # 还有考试机会就可以接着考
|
||||||
return Response({'exam':exam.pk})
|
return Response({'exam':exam.pk})
|
||||||
return Response({'error':'考试机会不足'})
|
return Response({'error':'考试机会不足'})
|
||||||
|
|
Loading…
Reference in New Issue