This commit is contained in:
caoqianming 2022-08-11 21:58:39 +08:00
commit f6e0157552
4 changed files with 37 additions and 17 deletions

View File

@ -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='选定的试卷'),
),
]

View File

@ -23,7 +23,7 @@ class Exam(CommonModel):
train_name = models.CharField('培训名称', null=True, blank=True, max_length=50) train_name = models.CharField('培训名称', null=True, blank=True, max_length=50)
train_start_date = models.DateField('培训开始日期', null=True) train_start_date = models.DateField('培训开始日期', null=True)
train_end_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) qdimgs = JSONField('签到图片', default=list)
xcimgs = JSONField('现场图片', default=list) xcimgs = JSONField('现场图片', default=list)

View File

@ -63,6 +63,7 @@ class ExamTestListSerializer(serializers.ModelSerializer):
paper_name = serializers.StringRelatedField(source='paper', read_only=True) paper_name = serializers.StringRelatedField(source='paper', read_only=True)
exam_name = serializers.StringRelatedField(source='exam', read_only=True) exam_name = serializers.StringRelatedField(source='exam', read_only=True)
consumer_name = serializers.SerializerMethodField() consumer_name = serializers.SerializerMethodField()
consumer_username = serializers.CharField(source='consumer.username', read_only=True)
took_format = serializers.SerializerMethodField() took_format = serializers.SerializerMethodField()
consumer_company_name = serializers.SerializerMethodField() consumer_company_name = serializers.SerializerMethodField()
class Meta: class Meta:
@ -168,7 +169,7 @@ class ExamCreateUpdateSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = Exam model = Exam
fields = ['name', 'place', 'opentime', 'closetime', 'proctor_name', 'proctor_phone', 'workscope', 'chance', 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): class ExamListSerializer(serializers.ModelSerializer):
create_admin_username = serializers.StringRelatedField(source='create_admin') create_admin_username = serializers.StringRelatedField(source='create_admin')
@ -254,5 +255,5 @@ class ExamTestExamListSerializer(serializers.ModelSerializer):
@staticmethod @staticmethod
def setup_eager_loading(queryset): def setup_eager_loading(queryset):
""" Perform necessary eager loading of data. """ """ Perform necessary eager loading of data. """
queryset = queryset.select_related('candidate') queryset = queryset.select_related('candidate', 'consumer')
return queryset return queryset

View File

@ -125,13 +125,19 @@ class ExamViewSet(ModelViewSet):
obj = Exam.objects.get(pk=kwargs['pk']) obj = Exam.objects.get(pk=kwargs['pk'])
workscope = obj.workscope workscope = obj.workscope
ret = {} ret = {}
if workscope.name in ['医学Ⅲ类', '非医学Ⅲ类']: ret['name'] = obj.name
ret['name'] = obj.name ret['consumer_detail'] = request.data
ret['consumer_detail'] = request.data ret['type'] = '正式考试' # 正式考试
ret['type'] = '正式考试' # 正式考试 ret['exam'] = kwargs['pk']
ret['exam'] = kwargs['pk'] ret['exam_'] = ExamListSerializer(instance=obj).data
ret['exam_'] = ExamListSerializer(instance=obj).data ret['workscope'] = workscope.id
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['limit'] = 45
ret['total_score'] = 120 ret['total_score'] = 120
ret['pass_score'] = 90 ret['pass_score'] = 90
@ -159,12 +165,6 @@ class ExamViewSet(ModelViewSet):
ret['questions'] = questions ret['questions'] = questions
return Response(ret) return Response(ret)
elif workscope.name in ['放射工作人员(上岗)', '放射工作人员(在岗)']: 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['limit'] = workscope.rule.limit
ret['total_score'] = workscope.rule.total_score ret['total_score'] = workscope.rule.total_score
ret['pass_score'] = workscope.rule.pass_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}) return Response({"id":candidate.pk, "number":candidate.number, "path":path})
class PaperViewSet(ModelViewSet): class PaperViewSet(PageOrNot, ModelViewSet):
""" """
押题卷增删改查 押题卷增删改查
""" """