修改testrecorditem 字段及对应的序列化接口去除sort,need_judge

This commit is contained in:
caoqianming 2021-12-14 15:04:01 +08:00
parent 24d2f864af
commit e64347c27c
6 changed files with 16 additions and 6 deletions

View File

@ -143,6 +143,7 @@ class RecordFormField(CommonAModel):
FIELD_SELECTS = 'selects'
FIELD_TEXTAREA = 'textarea'
FIELD_DRAW = 'draw'
FIELD_TABLE = 'table'
FIELD_FROMSYSTEM = 'fromsystem'
field_type_choices = (
('string', '字符串'),
@ -157,6 +158,7 @@ class RecordFormField(CommonAModel):
('select', '单选下拉'),
('selects', '多选下拉'),
('textarea', '文本域'),
('table', '表格'),
('draw', '绘图'),
)
high_rule_choices = (

View File

@ -83,8 +83,7 @@ class TestRecordItem(BaseModel):
field_key = models.CharField('字段标识', max_length=50)
field_type = models.CharField('字段类型', choices=RecordForm.type_choices, max_length=50)
field_value = models.JSONField('录入值', default=dict, blank=True)
need_judge = models.BooleanField('是否需要判定', default=False)
sort = models.IntegerField('排序号', default=1)
is_hidden = models.BooleanField('是否隐藏', default=False)
is_testok = models.BooleanField('是否合格', null=True, blank=True)
is_testok_robot = models.BooleanField('自动判定的是否合格', null=True, blank=True)
test_record = models.ForeignKey(TestRecord, verbose_name='关联的检测记录', on_delete=models.CASCADE, related_name='item_test_record')

View File

@ -44,10 +44,16 @@ class TestRecordItemCreateSerializer(serializers.ModelSerializer):
class TestRecordItemUpdateSerializer(serializers.ModelSerializer):
class Meta:
model = TestRecordItem
fields = ['id', 'field_value', 'is_testok']
fields = ['id', 'field_value', 'is_testok', 'is_hidden']
class TestRecordItemSerializer(serializers.ModelSerializer):
need_judge = serializers.BooleanField(source='form_field__need_judge', read_only=True)
rule_expression = serializers.JSONField(source='form_field__rule_expression', read_only=True)
display_expression = serializers.JSONField(source='form_field__display_expression', read_only=True)
is_hidden = serializers.BooleanField(source='form_field__is_hidden', read_only=True)
help_text = serializers.CharField(source='form_field__help_text', read_only=True)
sort = serializers.IntegerField(source='form_field__sort', read_only=True)
class Meta:
model = TestRecordItem
fields = '__all__'

View File

@ -76,6 +76,10 @@ class TestRecordViewSet(ListModelMixin, UpdateModelMixin, RetrieveModelMixin, De
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=serializers.Serializer)
def submit(self, request, pk=None):
obj = self.get_object()
# 校验是否有未填项目
if obj.type != TestRecord.TEST_PROCESS_RE:
if TestRecordItem.objects.filter(field_value__isnull=True, is_hidden=False).exists():
raise exceptions.APIException('存在未填写项目')
with transaction.atomic():
WpmServies.update_wproduct_by_test(obj, request.user)
return Response()

View File

@ -282,7 +282,7 @@ class OperationSubmitSerializer(serializers.Serializer):
class WpmTestRecordItemCreateSerializer(serializers.ModelSerializer):
class Meta:
model = TestRecordItem
fields = ['form_field', 'field_value', 'is_testok']
fields = ['form_field', 'field_value', 'is_testok', 'is_hidden']
class WpmTestRecordCreateSerializer(serializers.ModelSerializer):
record_data = WpmTestRecordItemCreateSerializer(many=True)

View File

@ -210,6 +210,7 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
o_dict[i['field_key']] = i['field_value']
for i in data['form_fields']:
i['origin_value'] = o_dict[i['field_key']] if i['field_key'] in o_dict else None
i['is_hidden'] = o_dict[i['is_hidden']] if i['is_hidden'] in o_dict else False
else:
raise exceptions.APIException('原工序检验记录不存在')
else:
@ -251,8 +252,6 @@ class WProductViewSet(ListModelMixin, GenericViewSet):
m['field_name'] = form_field.field_name
m['field_key'] = form_field.field_key
m['field_type'] = form_field.field_type
m['sort'] = form_field.sort
m['need_judge'] = form_field.need_judge
m['is_testok'] = m['is_testok'] if 'is_testok' in m else None
m['test_record'] = obj
tris.append(TestRecordItem(**m))