forked from erp-dev/erp
fix: little bugs, feat: woodpecker settings
This commit is contained in:
@@ -205,6 +205,7 @@ class PlateOrderListSerializer(serializers.ModelSerializer):
|
||||
merchandiser_name = serializers.CharField(source="merchandiser.name", read_only=True)
|
||||
status = serializers.CharField(read_only=True)
|
||||
progress_percentage = serializers.IntegerField(read_only=True)
|
||||
process_name = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = models.PlateOrder
|
||||
@@ -216,13 +217,25 @@ class PlateOrderListSerializer(serializers.ModelSerializer):
|
||||
'merchandiser', 'merchandiser_name',
|
||||
'style_name', 'fabric', 'width',
|
||||
'required_completion_date', 'completion_date',
|
||||
'is_ordered', 'status', 'progress_percentage',
|
||||
'is_ordered', 'process', 'process_name',
|
||||
'status', 'progress_percentage',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
read_only_fields = [
|
||||
'id', 'status', 'progress_percentage',
|
||||
'created_at', 'updated_at'
|
||||
]
|
||||
|
||||
def get_process_name(self, obj):
|
||||
"""获取流程名称"""
|
||||
if obj.process:
|
||||
try:
|
||||
from stateflow.models import Process
|
||||
process = Process.objects.get(id=obj.process)
|
||||
return process.name
|
||||
except Process.DoesNotExist:
|
||||
return None
|
||||
return None
|
||||
|
||||
|
||||
class PlateOrderDetailSerializer(serializers.ModelSerializer):
|
||||
@@ -238,6 +251,7 @@ class PlateOrderDetailSerializer(serializers.ModelSerializer):
|
||||
progress_percentage = serializers.IntegerField(read_only=True)
|
||||
business_object_id = serializers.IntegerField(source="business_object.id", read_only=True)
|
||||
plate_image_url = serializers.SerializerMethodField()
|
||||
process_name = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = models.PlateOrder
|
||||
@@ -254,6 +268,7 @@ class PlateOrderDetailSerializer(serializers.ModelSerializer):
|
||||
'sample_meter', 'required_sample_meters',
|
||||
'required_completion_date', 'completion_date',
|
||||
'approval_result', 'is_ordered', 'customer_feedback',
|
||||
'process', 'process_name',
|
||||
'status', 'status_id', 'is_completed', 'has_started',
|
||||
'progress_percentage', 'business_object_id',
|
||||
'created_at', 'updated_at'
|
||||
@@ -272,6 +287,17 @@ class PlateOrderDetailSerializer(serializers.ModelSerializer):
|
||||
return request.build_absolute_uri(obj.plate_image.url)
|
||||
return obj.plate_image.url
|
||||
return None
|
||||
|
||||
def get_process_name(self, obj):
|
||||
"""获取流程名称"""
|
||||
if obj.process:
|
||||
try:
|
||||
from stateflow.models import Process
|
||||
process = Process.objects.get(id=obj.process)
|
||||
return process.name
|
||||
except Process.DoesNotExist:
|
||||
return None
|
||||
return None
|
||||
|
||||
|
||||
class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
@@ -290,7 +316,8 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
"sample_rating", "difficulty_rating",
|
||||
"sample_meter", "required_sample_meters",
|
||||
"required_completion_date", "completion_date",
|
||||
"approval_result", "is_ordered", "customer_feedback"
|
||||
"approval_result", "is_ordered", "customer_feedback",
|
||||
"process"
|
||||
]
|
||||
read_only_fields = ["id"]
|
||||
|
||||
@@ -324,6 +351,14 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
raise serializers.ValidationError("所需样品米数不能为负数")
|
||||
return value
|
||||
|
||||
def validate_process(self, value):
|
||||
"""验证流程是否存在"""
|
||||
if value:
|
||||
from stateflow.models import Process
|
||||
if not Process.objects.filter(id=value).exists():
|
||||
raise serializers.ValidationError("流程不存在")
|
||||
return value
|
||||
|
||||
def validate(self, attrs):
|
||||
"""交叉验证"""
|
||||
return attrs
|
||||
@@ -332,16 +367,14 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
|
||||
"""创建开版订单"""
|
||||
user = self.context["request"].user
|
||||
|
||||
# 创建 PlateOrder
|
||||
# 创建 PlateOrder,save 方法会自动创建 BusinessObject
|
||||
plate_order = models.PlateOrder.objects.create(**validated_data)
|
||||
|
||||
# 暂时不自动创建 BusinessObject,由 admin 或其他地方创建
|
||||
|
||||
return plate_order
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
"""更新开版订单"""
|
||||
# 直接更新字段
|
||||
# 直接更新字段,save 方法会自动处理 BusinessObject 的创建
|
||||
for attr, value in validated_data.items():
|
||||
setattr(instance, attr, value)
|
||||
instance.save()
|
||||
|
||||
Reference in New Issue
Block a user