from apps.utils.serializers import CustomModelSerializer from apps.mtm.models import Shift, Material, Mgroup, Team, Goal from apps.utils.constants import EXCLUDE_FIELDS from rest_framework import serializers from apps.system.models import Dept class ShiftSerializer(CustomModelSerializer): class Meta: model = Shift fields = '__all__' read_only_fields = EXCLUDE_FIELDS class MaterialSerializer(CustomModelSerializer): class Meta: model = Material fields = '__all__' read_only_fields = EXCLUDE_FIELDS class MgroupSerializer(CustomModelSerializer): belong_dept = serializers.PrimaryKeyRelatedField(label="所属部门", queryset=Dept.objects.all(), required=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) class Meta: model = Mgroup fields = '__all__' read_only_fields = EXCLUDE_FIELDS class TeamSerializer(CustomModelSerializer): belong_dept = serializers.PrimaryKeyRelatedField(label="所属部门", queryset=Dept.objects.all(), required=True) leader_name = serializers.CharField(source='leader.name', read_only=True) belong_dept_name = serializers.CharField(source='belong_dept.name', read_only=True) class Meta: model = Team fields = '__all__' read_only_fields = EXCLUDE_FIELDS class GoalSerializer(CustomModelSerializer): goal_cate_name = serializers.CharField(source='goal_cate.name', read_only=True) mgroup_name = serializers.CharField(source='mgroup.name', read_only=True) class Meta: model = Goal fields = '__all__' read_only_fields = EXCLUDE_FIELDS class MgroupGoalYearSerializer(serializers.Serializer): mgroup = serializers.CharField(label='ID或名称') year = serializers.IntegerField(label='年')