From 0b068f6d79b01300919e53f0f29b7922f98003f4 Mon Sep 17 00:00:00 2001 From: Raphael Michel Date: Tue, 18 Apr 2017 20:31:16 +0200 Subject: [PATCH] Copy add-ons during event cloning --- src/pretix/base/models/__init__.py | 4 ++-- src/pretix/base/models/event.py | 8 +++++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/pretix/base/models/__init__.py b/src/pretix/base/models/__init__.py index 4695875cb..b44ae4122 100644 --- a/src/pretix/base/models/__init__.py +++ b/src/pretix/base/models/__init__.py @@ -8,8 +8,8 @@ from .event import ( ) from .invoices import Invoice, InvoiceLine, invoice_filename from .items import ( - Item, ItemCategory, ItemVariation, Question, QuestionOption, Quota, - itempicture_upload_to, + Item, ItemAddOn, ItemCategory, ItemVariation, Question, QuestionOption, + Quota, itempicture_upload_to, ) from .log import LogEntry from .orders import ( diff --git a/src/pretix/base/models/event.py b/src/pretix/base/models/event.py index 29f80e49b..4d7a4df94 100644 --- a/src/pretix/base/models/event.py +++ b/src/pretix/base/models/event.py @@ -225,7 +225,7 @@ class Event(LoggedModel): ), tz) def copy_data_from(self, other): - from . import ItemCategory, Item, Question, Quota + from . import ItemAddOn, ItemCategory, Item, Question, Quota self.plugins = other.plugins self.save() @@ -254,6 +254,12 @@ class Event(LoggedModel): v.item = i v.save() + for ia in ItemAddOn.objects.filter(base_item__event=other).prefetch_related('base_item', 'addon_category'): + ia.pk = None + ia.base_item = item_map[ia.base_item.pk] + ia.addon_category = category_map[ia.addon_category.pk] + ia.save() + for q in Quota.objects.filter(event=other).prefetch_related('items', 'variations'): items = list(q.items.all()) vars = list(q.variations.all())