79 lines
2.7 KiB
Python
79 lines
2.7 KiB
Python
from rest_framework import serializers
|
|
from apps.mtm.models import RecordForm, RecordFormField
|
|
from apps.mtm.serializers import RecordFormFieldSerializer, RecordFormSimpleSerializer
|
|
from apps.system.serializers import FileSimpleSerializer
|
|
from .models import Standard, TestItem, TestRecord, TestRecordItem
|
|
|
|
class StandardCreateUpdateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Standard
|
|
fields = ['name', 'file', 'enabled', 'number']
|
|
|
|
class StandardSerializer(serializers.ModelSerializer):
|
|
file_ = FileSimpleSerializer(source='file', read_only=True)
|
|
class Meta:
|
|
model = Standard
|
|
fields = '__all__'
|
|
|
|
class StandardSimpleSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Standard
|
|
fields = ['id', 'name', 'number']
|
|
|
|
class TestItemCreateUpdateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = TestItem
|
|
fields = ['name', 'standard', 'term_number']
|
|
|
|
class TestItemSerializer(serializers.ModelSerializer):
|
|
standard_ = StandardSimpleSerializer(source='standard', read_only=True)
|
|
class Meta:
|
|
model = TestItem
|
|
fields = '__all__'
|
|
|
|
class AnalysisItemSerializer(serializers.ModelSerializer):
|
|
pass
|
|
|
|
|
|
class TestRecordItemCreateSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = TestRecordItem
|
|
fields = ['form_field', 'field_value']
|
|
|
|
class TestRecordItemSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = TestRecordItem
|
|
fields = '__all__'
|
|
|
|
class TestRecordCreateSerializer(serializers.ModelSerializer):
|
|
record_data = TestRecordItemCreateSerializer(many=True)
|
|
class Meta:
|
|
model = TestRecord
|
|
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
|
|
|
|
class TestRecordListSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = TestRecord
|
|
fields = '__all__'
|
|
|
|
|
|
class TestRecordDetailSerializer(serializers.ModelSerializer):
|
|
form_ = RecordFormSimpleSerializer(source='form', read_only=True)
|
|
record_data_ = TestRecordItemSerializer(source='item_test_record', read_only=True, many=True)
|
|
class Meta:
|
|
model = TestRecord
|
|
fields = '__all__'
|
|
|
|
@staticmethod
|
|
def setup_eager_loading(queryset):
|
|
queryset = queryset.select_related('form','fifo_item')
|
|
return queryset
|
|
|
|
# def get_record_data_(self, obj):
|
|
# record_data = obj.record_data
|
|
# all_fields = RecordFormField.objects.filter(form=obj.form, is_deletd=False).order_by('sort')
|
|
# all_fields_l = RecordFormFieldSerializer(instance=all_fields, many=True).data
|
|
# for i in all_fields_l:
|
|
# key = i['field_key']
|
|
# i['field_value'] = record_data.get(key, None)
|
|
# return all_fields_l |