From ed6fbf67f79f138107cbefeb7054f48a02be8299 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Thu, 28 Apr 2022 12:52:34 +0200 Subject: [PATCH] Clone discounts when cloning events --- src/pretix/base/models/event.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 7501b63b83..a34e128a71 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -700,7 +700,7 @@ class Event(EventMixin, LoggedModel): from ..signals import event_copy_data from . import ( - Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, Question, + Discount, Item, ItemAddOn, ItemBundle, ItemCategory, ItemMetaValue, Question, Quota, ) @@ -810,6 +810,16 @@ class Event(EventMixin, LoggedModel): q.variations.add(variation_map[v.pk]) self.items.filter(hidden_if_available_id=oldid).update(hidden_if_available=q) + for d in Discount.objects.filter(event=other).prefetch_related('condition_limit_products'): + items = list(d.condition_limit_products.all()) + d.pk = None + d.event = self + d.save() + d.log_action('pretix.object.cloned') + for i in items: + if i.pk in item_map: + d.condition_limit_products.add(item_map[i.pk]) + question_map = {} for q in Question.objects.filter(event=other).prefetch_related('items', 'options'): items = list(q.items.all())