fix order

This commit is contained in:
javad committed 2026-10-09 11:05:10 +03:30
1 parent ae4dbab3cc
commit 4dc6d98abf
3 files changed
+39 -4

No files matched your search

+33
View File
@@ -418,6 +418,39 @@ class OrderingRegressionTests(RegressionFixtures):
self.assertIsNone(response.data['category_img'])
self.assertEqual([row['name'] for row in response.data['products']], ['B', 'A'])
def test_catalog_order_changes_follow_database_and_zero_precedes_null(self):
Product.objects.create(name='Unordered product', category=self.unordered, sys_ws=self.workspace, price=1)
self.use_role()
ProductCategory.objects.filter(pk=self.second.pk).update(order_cat=0)
response = self.client.get('/shop/v2/product-category/list/')
self.assertEqual([row['name'] for row in response.data], ['Second', 'First', 'Unordered'])
Product.objects.filter(pk=self.a.pk).update(order_prd=0)
Product.objects.filter(pk=self.b.pk).update(order_prd=None)
response = self.client.get(f'/shop/product/list/{self.first.pk}/')
self.assertEqual([row['name'] for row in response.data['products']], ['A', 'B'])
Product.objects.create(name='Custom later', category=self.first, sys_ws=self.workspace, price=1, view_only=True, order_prd=None)
Product.objects.create(name='Custom first', category=self.first, sys_ws=self.workspace, price=1, view_only=True, order_prd=0)
response = self.client.get(f'/shop/product/list/{self.first.pk}/')
self.assertEqual([row['name'] for row in response.data['view_only_products']], ['Custom first', 'Custom later'])
def test_order_excel_uses_current_database_order_independently_of_insertion(self):
order = Order.objects.create(customer=self.customer, total_price=60, factor_type=1, sys_ws=self.workspace)
for product in [self.c, self.b, self.a]:
OrderItem.objects.create(order=order, product=product, product_name=product.name, price=product.price, amount=1)
self.use_role(self.operator)
ProductCategory.objects.filter(pk=self.first.pk).update(excel_order=0)
Product.objects.filter(pk=self.b.pk).update(excel_order=0)
response = self.client.get(f'/shop/order/{order.pk}/operator/excel/')
self.assertEqual(response.status_code, 200)
sheet = load_workbook(BytesIO(response.content)).active
self.assertEqual([row[0] for row in list(sheet.values)[1:]], ['FirstB', 'FirstA', 'SecondC'])
ProductCategory.objects.update(excel_order=None)
Product.objects.update(excel_order=None)
ProductCategory.objects.filter(pk=self.second.pk).update(order_cat=0)
response = self.client.get(f'/shop/order/{order.pk}/operator/excel/')
sheet = load_workbook(BytesIO(response.content)).active
self.assertEqual([row[0] for row in list(sheet.values)[1:]], ['SecondC', 'FirstB', 'FirstA'])
def test_order_excel_matches_independent_order_and_handles_empty_order(self):
order = Order.objects.create(customer=self.customer, total_price=60, factor_type=1, sys_ws=self.workspace)
for product in [self.b, self.a, self.c]: