from rest_framework import serializers from .models import * from apps.system.serializers import DictSerializer, UserListSerializer from apps.certset.serializers import StandardSerializer class ApplicationCreateSerializer(serializers.ModelSerializer): number = serializers.CharField(required=False) class Meta: model = Application fields = '__all__' class ApplicationUpdateSerializer(serializers.ModelSerializer): number = serializers.CharField(read_only=True) stage_ = serializers.SerializerMethodField(source='stage', read_only=True) class Meta: model = Application fields = '__all__' def get_stage_(self, obj): return obj.get_stage_display() class SubApplicationCreateSerializer(serializers.ModelSerializer): number = serializers.CharField(required=False) class Meta: model = SubApplication fields = '__all__' class SubApplicationUpdateSerializer(serializers.ModelSerializer): number = serializers.CharField(read_only=True) cert_field_ = DictSerializer(source='cert_field') cccpv_class_ = DictSerializer(source='cccpv_class') cnas_scopes_ = DictSerializer(source='cnas_scopes', many=True) class Meta: model = SubApplication fields = '__all__' class CertappSerializer(serializers.ModelSerializer): cert_field_ = DictSerializer(source='cert_field', read_only=True) cccpv_class_ = DictSerializer(source='cccpv_class' , read_only=True) cnas_scopes_ = DictSerializer(source='cnas_scopes', many=True , read_only=True) create_by_ = UserListSerializer(source='create_by', read_only=True) class Meta: model = CertApp fields = '__all__' class UnitSerializer(serializers.ModelSerializer): standard_ = StandardSerializer(source='standard', read_only=True) class Meta: model = Unit fields = '__all__' class ProjectSerializer(serializers.ModelSerializer): create_by_ = UserListSerializer(source='create_by', read_only=True) certapps = serializers.SerializerMethodField() class Meta: model = Project fields = '__all__' def get_certapps(self, obj): certapps = [] for i in CertApp.objects.filter(is_deleted=False, project=obj): certapps.append(i.cert_field.code +'(' + i.cccpv_class.name +')') return certapps