mirror of
https://github.com/pretix/pretix.git
synced 2026-05-04 15:04:03 +00:00
Add approval requirement option to product variations (#2381)
This commit is contained in:
@@ -376,6 +376,7 @@ def test_item_detail_variations(token_client, organizer, event, team, item):
|
||||
"active": True,
|
||||
"description": None,
|
||||
"position": 0,
|
||||
"require_approval": False,
|
||||
"require_membership": False,
|
||||
"require_membership_hidden": False,
|
||||
"require_membership_types": [],
|
||||
@@ -508,6 +509,7 @@ def test_item_create_with_variation(token_client, organizer, event, item, catego
|
||||
"en": "Comment"
|
||||
},
|
||||
"active": True,
|
||||
"require_approval": True,
|
||||
"require_membership": False,
|
||||
"require_membership_hidden": False,
|
||||
"require_membership_types": [],
|
||||
@@ -525,6 +527,7 @@ def test_item_create_with_variation(token_client, organizer, event, item, catego
|
||||
new_item = Item.objects.get(pk=resp.data['id'])
|
||||
assert new_item.variations.first().value.localize('de') == "Kommentar"
|
||||
assert new_item.variations.first().value.localize('en') == "Comment"
|
||||
assert new_item.variations.first().require_approval is True
|
||||
assert set(new_item.variations.first().sales_channels) == set(get_all_sales_channels().keys())
|
||||
|
||||
|
||||
@@ -1212,6 +1215,7 @@ TEST_VARIATIONS_RES = {
|
||||
"position": 0,
|
||||
"default_price": None,
|
||||
"price": "23.00",
|
||||
"require_approval": False,
|
||||
"require_membership": False,
|
||||
"require_membership_hidden": False,
|
||||
"require_membership_types": [],
|
||||
@@ -1230,6 +1234,7 @@ TEST_VARIATIONS_UPDATE = {
|
||||
"description": None,
|
||||
"position": 1,
|
||||
"default_price": "20.0",
|
||||
"require_approval": False,
|
||||
"require_membership": False,
|
||||
"require_membership_hidden": False,
|
||||
"require_membership_types": [],
|
||||
|
||||
@@ -2797,6 +2797,46 @@ class CheckoutTestCase(BaseCheckoutTestCase, TestCase):
|
||||
with scopes_disabled():
|
||||
self.assertEqual(Order.objects.first().locale, 'de')
|
||||
|
||||
def test_variation_require_approval(self):
|
||||
self.workshop2a.require_approval = True
|
||||
self.workshop2a.save()
|
||||
with scopes_disabled():
|
||||
cr1 = CartPosition.objects.create(
|
||||
event=self.event, cart_id=self.session_key, item=self.workshop2, variation=self.workshop2a,
|
||||
price=0, expires=now() + timedelta(minutes=10)
|
||||
)
|
||||
|
||||
response = self.client.post('/%s/%s/checkout/confirm/' % (self.orga.slug, self.event.slug), follow=True)
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select(".thank-you")), 1)
|
||||
with scopes_disabled():
|
||||
self.assertFalse(CartPosition.objects.filter(id=cr1.id).exists())
|
||||
self.assertEqual(Order.objects.count(), 1)
|
||||
self.assertEqual(Order.objects.first().status, Order.STATUS_PENDING)
|
||||
self.assertTrue(Order.objects.first().require_approval)
|
||||
self.assertEqual(OrderPosition.objects.count(), 1)
|
||||
self.assertEqual(Invoice.objects.count(), 0)
|
||||
|
||||
def test_item_with_variations_require_approval(self):
|
||||
self.workshop2.require_approval = True
|
||||
self.workshop2.save()
|
||||
with scopes_disabled():
|
||||
cr1 = CartPosition.objects.create(
|
||||
event=self.event, cart_id=self.session_key, item=self.workshop2, variation=self.workshop2a,
|
||||
price=0, expires=now() + timedelta(minutes=10)
|
||||
)
|
||||
|
||||
response = self.client.post('/%s/%s/checkout/confirm/' % (self.orga.slug, self.event.slug), follow=True)
|
||||
doc = BeautifulSoup(response.content.decode(), "lxml")
|
||||
self.assertEqual(len(doc.select(".thank-you")), 1)
|
||||
with scopes_disabled():
|
||||
self.assertFalse(CartPosition.objects.filter(id=cr1.id).exists())
|
||||
self.assertEqual(Order.objects.count(), 1)
|
||||
self.assertEqual(Order.objects.first().status, Order.STATUS_PENDING)
|
||||
self.assertTrue(Order.objects.first().require_approval)
|
||||
self.assertEqual(OrderPosition.objects.count(), 1)
|
||||
self.assertEqual(Invoice.objects.count(), 0)
|
||||
|
||||
|
||||
class QuestionsTestCase(BaseCheckoutTestCase, TestCase):
|
||||
|
||||
|
||||
Reference in New Issue
Block a user