cma_search/server/apps/information/serializers.py

74 lines
2.5 KiB
Python

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
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"]
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):
class Meta(BaseMeta):
model = Parsepdf
fields = '__all__'