diff --git a/pretix_public_registrations/signals.py b/pretix_public_registrations/signals.py index 3e9c6af0bd3b5ef1c860efe926f4c60df2a05067..6a9ffae4fd60ae844dd60da6824feffb82a71d65 100644 --- a/pretix_public_registrations/signals.py +++ b/pretix_public_registrations/signals.py @@ -4,6 +4,7 @@ from django.template.loader import get_template from django.utils.translation import ugettext_lazy as _ from django.urls import resolve, reverse from django_gravatar.helpers import get_gravatar_url +from pretix.base.signals import event_copy_data from pretix.presale.signals import ( question_form_fields, front_page_bottom, process_response, html_head ) @@ -130,3 +131,21 @@ def navbar_settings(sender, request=None, **kwargs): }), 'active': url.namespace == 'plugins:pretix_public_registrations' and url.url_name == 'settings', }] + + +@receiver(signal=event_copy_data, dispatch_uid="public_registrations_event_copy_data") +def event_copy_public_registrations_data(sender, other, item_map, question_map, **_): + sender.settings.set( + 'public_registrations_items', + [ + str(item_map[int(old_id)].pk) + for old_id in other.settings.get('public_registrations_items') + ] + ) + sender.settings.set( + 'public_registrations_questions', + [ + str(question_map[int(old_id)].pk) + for old_id in other.settings.get('public_registrations_questions') + ] + )