factory/apps/vm/serializers.py

51 lines
1.4 KiB
Python

from apps.hrm.models import Employee
from apps.utils.constants import EXCLUDE_FIELDS
from apps.utils.serializers import CustomModelSerializer
from apps.vm.models import Visit, Visitor, Vpeople
from apps.hrm.serializers import phone_check
from rest_framework import serializers
class VisitCreateUpdateSerializer(CustomModelSerializer):
class Meta:
model = Visit
fields = ['purpose', 'name', 'description', 'visit_time', 'leave_time', 'receptionist']
class VisitSerializer(CustomModelSerializer):
class Meta:
model = Visit
fields = '__all__'
class VisitorCreateSerializer(CustomModelSerializer):
phone = serializers.CharField(label="手机号", validators=[phone_check])
class Meta:
model = Visitor
exclude = ['name', 'phone', 'photo', 'id_number']
class VisitorSerializer(CustomModelSerializer):
class Meta:
model = Visitor
fields = '__all__'
class VpeopleCreateSerializer(CustomModelSerializer):
class Meta:
model = Vpeople
fields = ['visitor', 'visitor', 'is_main']
def create(self, validated_data):
ins = super().create(validated_data)
if ins.is_main:
Vpeople.objects.filter(visit=validated_data['visit']).exclude(id__in=ins.id).update(is_main=False)
return ins
class VpeopleSerializer(CustomModelSerializer):
class Meta:
model = Vpeople
fields = '__all__'