43 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Python
		
	
	
	
| from apps.utils.constants import EXCLUDE_FIELDS
 | |
| from apps.utils.serializers import CustomModelSerializer
 | |
| from rest_framework import serializers
 | |
| 
 | |
| from apps.wpm.models import SfLog, StLog, StSfLog
 | |
| from apps.system.models import Dictionary
 | |
| 
 | |
| class StLogSerializer(CustomModelSerializer):
 | |
|     mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
 | |
|     class Meta:
 | |
|         model = StLog
 | |
|         fields = '__all__'
 | |
| 
 | |
| 
 | |
| class SfLogSerializer(CustomModelSerializer):
 | |
|     mgroup_name = serializers.CharField(source='mgroup.name', read_only=True)
 | |
|     team_name = serializers.CharField(source='team.name', read_only=True)
 | |
|     shift_name = serializers.CharField(source='shift.name', read_only=True)
 | |
|     leader_name = serializers.CharField(source='leader.name', read_only=True)
 | |
|     class Meta:
 | |
|         model = SfLog
 | |
|         fields = '__all__'
 | |
|         read_only_fields = EXCLUDE_FIELDS + ['mgroup', 'start_time', 'end_time', 'belong_dept']
 | |
|         extra_kwargs = {
 | |
|             'team': {'required': True},
 | |
|             'leader': {'required': True}
 | |
|         }
 | |
| 
 | |
|     # def to_internal_value(self, data):
 | |
|     #     if hasattr(self.Meta, 'update_fields') and self.context['request'].method in ['PUT', 'PATCH']:
 | |
|     #         u_fields = self.Meta.update_fields
 | |
|     #         new_data = {key: data[key] for key in u_fields if key in data}
 | |
|     #         return super().to_internal_value(new_data)
 | |
|     #     return super().to_internal_value(data)
 | |
|     
 | |
| 
 | |
| class StSfLogSerializer(CustomModelSerializer):
 | |
|     stlog_ = StLogSerializer(source='stlog', read_only=True)
 | |
|     sflog_ = SfLogSerializer(source='sflog', read_only=True)
 | |
|     class Meta:
 | |
|         model = StSfLog
 | |
|         fields = '__all__'
 | |
|         read_only_fields = EXCLUDE_FIELDS + ['stlog', 'sflog', 'is_current_down'] |