forked from erp-dev/erp
added image_name to PlateOrder model
This commit is contained in:
@@ -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}/`
|
||||
- **描述**: **已禁用**。
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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"""
|
||||
|
||||
Reference in New Issue
Block a user