forked from CGM_Public/pretix_original
Allow variations to override item meta data (#2965)
This commit is contained in:
@@ -73,6 +73,7 @@ def test_full_clone_same_organizer():
|
||||
assert item1.meta_data
|
||||
item2 = event.items.create(category=category, tax_rule=tax_rule, name="T-shirt", default_price=15)
|
||||
item2v = item2.variations.create(value="red", default_price=15)
|
||||
item2v.meta_values.create(property=item_meta, value="Bar")
|
||||
item2.require_membership_types.add(membership_type)
|
||||
ItemAddOn.objects.create(base_item=item1, addon_category=category)
|
||||
ItemBundle.objects.create(base_item=item1, bundled_item=item2, bundled_variation=item2v)
|
||||
@@ -147,6 +148,7 @@ def test_full_clone_same_organizer():
|
||||
assert copied_item1.tax_rule == copied_event.tax_rules.get()
|
||||
assert copied_item1.category == copied_event.categories.get()
|
||||
assert copied_item1.meta_data == item1.meta_data
|
||||
assert copied_item2.variations.get().meta_data == item2v.meta_data
|
||||
assert copied_item1.hidden_if_available == copied_q2
|
||||
assert copied_item1.grant_membership_type == membership_type
|
||||
assert copied_item2.variations.count() == 1
|
||||
|
||||
@@ -1962,6 +1962,32 @@ class ItemTest(TestCase):
|
||||
assert not Item.objects.filter_available().exists()
|
||||
assert Item.objects.filter_available(voucher=v).exists()
|
||||
|
||||
@classscope(attr='o')
|
||||
def test_meta_data_inheritance(self):
|
||||
prop = self.event.item_meta_properties.create(name="day", default="Monday")
|
||||
i = Item.objects.create(
|
||||
event=self.event, name="Ticket", default_price=23,
|
||||
active=True, available_until=now() + timedelta(days=1),
|
||||
)
|
||||
v = i.variations.create(value="Day 1")
|
||||
|
||||
assert i.meta_data == {"day": "Monday"}
|
||||
assert v.meta_data == {"day": "Monday"}
|
||||
|
||||
i.meta_values.create(property=prop, value="Tuesday")
|
||||
i = Item.objects.get(pk=i.pk)
|
||||
v = ItemVariation.objects.get(pk=v.pk)
|
||||
|
||||
assert i.meta_data == {"day": "Tuesday"}
|
||||
assert v.meta_data == {"day": "Tuesday"}
|
||||
|
||||
v.meta_values.create(property=prop, value="Wednesday")
|
||||
i = Item.objects.get(pk=i.pk)
|
||||
v = ItemVariation.objects.get(pk=v.pk)
|
||||
|
||||
assert i.meta_data == {"day": "Tuesday"}
|
||||
assert v.meta_data == {"day": "Wednesday"}
|
||||
|
||||
|
||||
class EventTest(TestCase):
|
||||
@classmethod
|
||||
|
||||
Reference in New Issue
Block a user