51 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			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__'
 |