diff --git a/src/pretix/api/serializers/order.py b/src/pretix/api/serializers/order.py index 7eedbd3177..ddacf7f3ec 100644 --- a/src/pretix/api/serializers/order.py +++ b/src/pretix/api/serializers/order.py @@ -1718,6 +1718,13 @@ class OrderCreateSerializer(I18nAwareModelSerializer): answ.options.add(*options) if use_reusable_medium: + for op in use_reusable_medium.linked_orderpositions.all(): + use_reusable_medium.log_action( + 'pretix.reusable_medium.linked_orderposition.removed', + data={ + 'linked_orderposition': op.pk, + } + ) use_reusable_medium.linked_orderpositions.set([pos]) use_reusable_medium.log_action( 'pretix.reusable_medium.linked_orderposition.changed', diff --git a/src/pretix/control/logdisplay.py b/src/pretix/control/logdisplay.py index 4c142dcd1f..84e3365ae8 100644 --- a/src/pretix/control/logdisplay.py +++ b/src/pretix/control/logdisplay.py @@ -744,6 +744,7 @@ class CoreUserImpersonatedLogEntryType(UserImpersonatedLogEntryType): 'pretix.reusable_medium.created.auto': _('The reusable medium has been created automatically.'), 'pretix.reusable_medium.changed': _('The reusable medium has been changed.'), 'pretix.reusable_medium.linked_orderposition.added': _('A new ticket has been added to the medium.'), + 'pretix.reusable_medium.linked_orderposition.removed': _('A ticket has been removed from the medium.'), 'pretix.reusable_medium.linked_orderposition.changed': _('The medium has been connected to a new ticket.'), 'pretix.reusable_medium.linked_giftcard.changed': _('The medium has been connected to a new gift card.'), 'pretix.email.error': _('Sending of an email has failed.'),