from rest_framework import serializers from apps.system.serializers import OrganizationSimpleSerializer from apps.system.models import Organization from .models import AbilityReview, QualityCommendation, QualityActivities, Contact, ExternalAuditors, AuditLog, Qualification, Parsepdf, YearReport from django.utils import timezone class BaseMeta: fields = '__all__' read_only_fields = ['create_time', 'update_time', 'create_by', 'update_by', 'is_deleted', 'belong_dept'] class QualityCommendationSerializer(serializers.ModelSerializer): class Meta(BaseMeta): model = QualityCommendation fields = '__all__' read_only_fields = ['id'] class QualityActivitiesSerializer(serializers.ModelSerializer): class Meta(BaseMeta): model = QualityActivities fields = '__all__' read_only_fields = ['id'] class ContactSerializer(serializers.ModelSerializer): class Meta(BaseMeta): model = Contact fields = '__all__' class ExternalAuditorsSerializer(serializers.ModelSerializer): class Meta(BaseMeta): model = ExternalAuditors fields = '__all__' class Qualification2Serializer(serializers.ModelSerializer): class Meta(BaseMeta): model = Qualification fields = ["id","name","company_name","quali_type","org","org_date","expiration_date","number","scope", "cie_path","change_date"] def create(self, validated_data): data = Organization.objects.filter(name = validated_data.get("company_name")) if not data: raise serializers.ValidationError("公司名称不存在") validated_data["belong_dept_id"] = Organization.objects.filter(name = validated_data.get("company_name")).first().id return super().create(validated_data) def update(self, instance, validated_data): validated_data["change_date"] = timezone.now().date() return super().update(instance, validated_data) class AbilityReviewSerializer(serializers.ModelSerializer): quali_name = serializers.CharField(source='quali.name', read_only=True) class Meta(BaseMeta): model = AbilityReview fields = '__all__' class AuditLogSerializer(serializers.ModelSerializer): company_name = serializers.CharField(source='instance.company_name', read_only=True) class Meta(BaseMeta): model = AuditLog fields = '__all__' class ParsepdfSerializer(serializers.ModelSerializer): dep = serializers.CharField(source='belong_dept.name', read_only=True) class Meta(BaseMeta): model = Parsepdf fields = '__all__' class YearReportSerializer(serializers.ModelSerializer): dep = serializers.CharField(source='belong_dept.name', read_only=True) class Meta(BaseMeta): model = YearReport fields = '__all__'