Merge branch 'master' of https://e.coding.net/ctcdevteam/examtest
This commit is contained in:
commit
f6e0157552
|
@ -0,0 +1,19 @@
|
|||
# Generated by Django 3.0.4 on 2022-08-11 12:56
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('examtest', '0036_auto_20220528_2203'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='exam',
|
||||
name='paper',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='examtest.Paper', verbose_name='选定的试卷'),
|
||||
),
|
||||
]
|
|
@ -23,7 +23,7 @@ class Exam(CommonModel):
|
|||
train_name = models.CharField('培训名称', null=True, blank=True, max_length=50)
|
||||
train_start_date = models.DateField('培训开始日期', null=True)
|
||||
train_end_date = models.DateField('培训结束日期', null=True)
|
||||
|
||||
paper = models.ForeignKey(Paper, verbose_name='选定的试卷', on_delete=models.CASCADE, null=True, blank=True)
|
||||
qdimgs = JSONField('签到图片', default=list)
|
||||
xcimgs = JSONField('现场图片', default=list)
|
||||
|
||||
|
|
|
@ -63,6 +63,7 @@ class ExamTestListSerializer(serializers.ModelSerializer):
|
|||
paper_name = serializers.StringRelatedField(source='paper', read_only=True)
|
||||
exam_name = serializers.StringRelatedField(source='exam', read_only=True)
|
||||
consumer_name = serializers.SerializerMethodField()
|
||||
consumer_username = serializers.CharField(source='consumer.username', read_only=True)
|
||||
took_format = serializers.SerializerMethodField()
|
||||
consumer_company_name = serializers.SerializerMethodField()
|
||||
class Meta:
|
||||
|
@ -168,7 +169,7 @@ class ExamCreateUpdateSerializer(serializers.ModelSerializer):
|
|||
class Meta:
|
||||
model = Exam
|
||||
fields = ['name', 'place', 'opentime', 'closetime', 'proctor_name', 'proctor_phone', 'workscope', 'chance',
|
||||
'train_name', 'train_start_date', 'train_end_date']
|
||||
'train_name', 'train_start_date', 'train_end_date', 'paper']
|
||||
|
||||
class ExamListSerializer(serializers.ModelSerializer):
|
||||
create_admin_username = serializers.StringRelatedField(source='create_admin')
|
||||
|
@ -254,5 +255,5 @@ class ExamTestExamListSerializer(serializers.ModelSerializer):
|
|||
@staticmethod
|
||||
def setup_eager_loading(queryset):
|
||||
""" Perform necessary eager loading of data. """
|
||||
queryset = queryset.select_related('candidate')
|
||||
queryset = queryset.select_related('candidate', 'consumer')
|
||||
return queryset
|
|
@ -125,13 +125,19 @@ class ExamViewSet(ModelViewSet):
|
|||
obj = Exam.objects.get(pk=kwargs['pk'])
|
||||
workscope = obj.workscope
|
||||
ret = {}
|
||||
if workscope.name in ['医学Ⅲ类', '非医学Ⅲ类']:
|
||||
ret['name'] = obj.name
|
||||
ret['consumer_detail'] = request.data
|
||||
ret['type'] = '正式考试' # 正式考试
|
||||
ret['exam'] = kwargs['pk']
|
||||
ret['exam_'] = ExamListSerializer(instance=obj).data
|
||||
ret['workscope'] = workscope.id
|
||||
ret['name'] = obj.name
|
||||
ret['consumer_detail'] = request.data
|
||||
ret['type'] = '正式考试' # 正式考试
|
||||
ret['exam'] = kwargs['pk']
|
||||
ret['exam_'] = ExamListSerializer(instance=obj).data
|
||||
ret['workscope'] = workscope.id
|
||||
if obj.paper:
|
||||
serializer = PaperDetailSerializer(instance=obj.paper)
|
||||
ret['paper'] = obj.paper.id
|
||||
retx = serializer.data
|
||||
retx.update(ret)
|
||||
return Response(retx)
|
||||
elif workscope.name in ['医学Ⅲ类', '非医学Ⅲ类']:
|
||||
ret['limit'] = 45
|
||||
ret['total_score'] = 120
|
||||
ret['pass_score'] = 90
|
||||
|
@ -159,12 +165,6 @@ class ExamViewSet(ModelViewSet):
|
|||
ret['questions'] = questions
|
||||
return Response(ret)
|
||||
elif workscope.name in ['放射工作人员(上岗)', '放射工作人员(在岗)']:
|
||||
ret['name'] = obj.name
|
||||
ret['consumer_detail'] = request.data
|
||||
ret['type'] = '正式考试' # 正式考试
|
||||
ret['exam'] = kwargs['pk']
|
||||
ret['exam_'] = ExamListSerializer(instance=obj).data
|
||||
ret['workscope'] = workscope.id
|
||||
ret['limit'] = workscope.rule.limit
|
||||
ret['total_score'] = workscope.rule.total_score
|
||||
ret['pass_score'] = workscope.rule.pass_score
|
||||
|
@ -645,7 +645,7 @@ class ExamTestViewSet(PageOrNot, ModelViewSet):
|
|||
return Response({"id":candidate.pk, "number":candidate.number, "path":path})
|
||||
|
||||
|
||||
class PaperViewSet(ModelViewSet):
|
||||
class PaperViewSet(PageOrNot, ModelViewSet):
|
||||
"""
|
||||
押题卷增删改查
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue