From 04e9c8a2264b48a596a30a87890b966163d7e667 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Wed, 4 Nov 2020 12:30:27 +0100 Subject: [PATCH] Copy ItemBundle when cloning events --- src/pretix/base/models/event.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index f6cd434702..b7f2726a49 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -507,7 +507,7 @@ class Event(EventMixin, LoggedModel): def copy_data_from(self, other): from ..signals import event_copy_data from . import ( - Item, ItemAddOn, ItemCategory, ItemMetaValue, Question, Quota, + Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, Question, Quota, ) self.plugins = other.plugins @@ -573,6 +573,14 @@ class Event(EventMixin, LoggedModel): ia.addon_category = category_map[ia.addon_category.pk] ia.save() + for ia in ItemBundle.objects.filter(base_item__event=other).prefetch_related('base_item', 'bundled_item', 'bundled_variation'): + ia.pk = None + ia.base_item = item_map[ia.base_item.pk] + ia.bundled_item = item_map[ia.bundled_item.pk] + if ia.bundled_variation: + ia.bundled_variation = variation_map[ia.bundled_variation.pk] + ia.save() + for q in Quota.objects.filter(event=other, subevent__isnull=True).prefetch_related('items', 'variations'): items = list(q.items.all()) vars = list(q.variations.all())