1
0
forked from erp-dev/erp

added image_name to PlateOrder model

This commit is contained in:
2025-11-27 15:14:34 +08:00
parent a9c75a13fa
commit 0fa153849c
12 changed files with 108 additions and 432 deletions

View File

@@ -213,10 +213,12 @@
- **POST** `/api/v1/plate-orders/`
- **描述**: 创建一个新的开版订单。
- **请求体**: `PlateOrderCreateUpdateSerializer`。
- **字段补充**: `image_name`(可空字符串)用于记录上传的开版图片名称,即使未上传文件也可单独填写。
- **PUT/PATCH** `/api/v1/plate-orders/{id}/`
- **描述**: 完全或部分更新一个开版订单。
- **请求体**: `PlateOrderCreateUpdateSerializer`。
- **字段补充**: 支持更新 `image_name`,便于修正或补录图片名称。
- **DELETE** `/api/v1/plate-orders/{id}/`
- **描述**: **已禁用**。

View File

@@ -233,7 +233,7 @@ class PlateOrderListSerializer(PlateOrderDesignCodeMixin, serializers.ModelSeria
fields = [
'id', 'design_code', 'plate_type', 'plate_date', 'plate_method',
'plate_image', 'plate_image_url', 'plate_notes', 'reprint_reason',
'plate_image', 'plate_image_url', 'image_name', 'plate_notes', 'reprint_reason',
'urgency_level', 'is_invalid',
'customer', 'customer_name', 'area', 'default_address',
'salesperson', 'salesperson_name',
@@ -297,7 +297,7 @@ class PlateOrderDetailSerializer(PlateOrderDesignCodeMixin, serializers.ModelSer
model = models.PlateOrder
fields = [
'id', 'design_code', 'plate_type', 'plate_date', 'plate_method',
'plate_image', 'plate_image_url', 'plate_notes', 'reprint_reason',
'plate_image', 'plate_image_url', 'image_name', 'plate_notes', 'reprint_reason',
'urgency_level', 'is_invalid',
'customer', 'customer_name', 'customer_phone', 'area', 'default_address',
'salesperson', 'salesperson_name',
@@ -352,7 +352,7 @@ class PlateOrderCreateUpdateSerializer(serializers.ModelSerializer):
model = models.PlateOrder
fields = [
"id", "design_code", "plate_type", "plate_date", "plate_method",
"plate_image", "plate_notes", "reprint_reason",
"plate_image", "image_name", "plate_notes", "reprint_reason",
"urgency_level", "is_invalid",
"customer", "area", "default_address",
"salesperson", "merchandiser", "designer",

View File

@@ -108,12 +108,14 @@ class PlateOrderAPITestCase(TestCase):
'urgency_level': '加急',
'salesperson': self.salesperson.id,
'merchandiser': self.merchandiser.id,
'image_name': 'sample.png',
}
response = self.client.post('/api/v1/plate-orders/', data, format='json')
self.assertEqual(response.status_code, status.HTTP_201_CREATED)
self.assertEqual(response.data['design_code'], 'DESIGN001')
self.assertEqual(response.data['style_name'], '测试款式')
self.assertEqual(response.data['image_name'], 'sample.png')
# 验证数据库中创建了记录
self.assertTrue(printing_models.PlateOrder.objects.filter(design_code='DESIGN001').exists())
@@ -154,6 +156,7 @@ class PlateOrderAPITestCase(TestCase):
style_name='款式1',
fabric='棉布',
salesperson=self.salesperson,
image_name='first.png',
)
printing_models.PlateOrder.objects.create(
customer=self.customer,
@@ -162,6 +165,7 @@ class PlateOrderAPITestCase(TestCase):
style_name='款式2',
fabric='涤纶',
merchandiser=self.merchandiser,
image_name='second.png',
)
response = self.client.get('/api/v1/plate-orders/')
@@ -169,8 +173,12 @@ class PlateOrderAPITestCase(TestCase):
# 根据实际返回的数据结构调整
if isinstance(response.data, dict):
self.assertEqual(response.data['count'], 2)
collection = response.data.get('results') or response.data.get('data') or []
if collection:
self.assertIn('image_name', collection[0])
else:
self.assertEqual(len(response.data), 2)
self.assertIn('image_name', response.data[0])
def test_retrieve_plate_order(self):
"""测试获取单个开版订单详情"""
@@ -183,6 +191,7 @@ class PlateOrderAPITestCase(TestCase):
urgency_level='紧急',
salesperson=self.salesperson,
merchandiser=self.merchandiser,
image_name='detail.png',
)
response = self.client.get(f'/api/v1/plate-orders/{plate_order.id}/')
@@ -192,6 +201,7 @@ class PlateOrderAPITestCase(TestCase):
self.assertEqual(response.data['customer'], self.customer.id)
self.assertIn('customer_name', response.data)
self.assertIn('salesperson_name', response.data)
self.assertEqual(response.data['image_name'], 'detail.png')
def test_design_code_fallback_in_detail(self):
"""design_code 为空时返回主键ID"""