factory/apps/pm/serializers.py

25 lines
1.1 KiB
Python

from apps.utils.serializers import CustomModelSerializer
from apps.pm.models import Mtask
from apps.mtm.serializers import MaterialSerializer
from apps.sam.models import OrderItem
from rest_framework.exceptions import ValidationError
from rest_framework import serializers
class MtaskSerializer(CustomModelSerializer):
material_ = MaterialSerializer(source='material', read_only=True)
class Meta:
model = Mtask
fields = '__all__'
def update(self, instance, validated_data):
if instance.state != Mtask.MTASK_CREATED:
raise ValidationError('任务非创建中不可编辑')
new_data = {key: validated_data[key] for key in ['number', 'count', 'start_date', 'end_date']}
return super().update(instance, validated_data)
class SchedueSerializer(serializers.Serializer):
orderitems = serializers.PrimaryKeyRelatedField(label='orderitem的ID列表', queryset=OrderItem.objects.all(), many=True)
start_date = serializers.DateField(label='计划开工日期')
end_date = serializers.DateField(label='计划完工日期', allow_null=True, required=False)