Use media_policy from item, not as a checkinrpc parameter

This commit is contained in:
Maximilian Richt
2026-06-01 09:58:32 +02:00
committed by Raphael Michel
parent b2380f794e
commit f6ab4195c4
3 changed files with 4 additions and 6 deletions

View File

@@ -90,7 +90,6 @@ class CheckinRPCRedeemInputSerializer(serializers.Serializer):
answers = serializers.JSONField(required=False, allow_null=True) answers = serializers.JSONField(required=False, allow_null=True)
media_type = serializers.ChoiceField(required=False, choices=MEDIA_TYPES) media_type = serializers.ChoiceField(required=False, choices=MEDIA_TYPES)
media_identifier = serializers.CharField(required=False) media_identifier = serializers.CharField(required=False)
media_policy = serializers.ChoiceField(required=False, choices=Item.MEDIA_POLICIES)
media_action = serializers.ChoiceField(required=False, choices=[ media_action = serializers.ChoiceField(required=False, choices=[
('append', 'append'), ('append', 'append'),
('replace', 'replace'), ('replace', 'replace'),

View File

@@ -457,7 +457,7 @@ def _checkin_list_position_queryset(checkinlists, ignore_status=False, ignore_pr
def _redeem_process(*, checkinlists, raw_barcode, answers_data, datetime, force, checkin_type, ignore_unpaid, nonce, def _redeem_process(*, checkinlists, raw_barcode, answers_data, datetime, force, checkin_type, ignore_unpaid, nonce,
untrusted_input, user, auth, expand, pdf_data, request, questions_supported, canceled_supported, untrusted_input, user, auth, expand, pdf_data, request, questions_supported, canceled_supported,
source_type='barcode', legacy_url_support=False, simulate=False, gate=None, use_order_locale=False, source_type='barcode', legacy_url_support=False, simulate=False, gate=None, use_order_locale=False,
media_type=None, media_identifier=None, media_policy=None, media_action=None): media_type=None, media_identifier=None, media_action=None):
if not checkinlists: if not checkinlists:
raise ValidationError('No check-in list passed.') raise ValidationError('No check-in list passed.')
@@ -805,13 +805,12 @@ def _redeem_process(*, checkinlists, raw_barcode, answers_data, datetime, force,
locale = op.order.event.settings.locale locale = op.order.event.settings.locale
with language(locale): with language(locale):
try: try:
if all(k is not None for k in [media_type, media_identifier, media_policy, media_action]) and not media: if all(k is not None for k in [media_type, media_identifier, media_action]) and not media:
with transaction.atomic(): with transaction.atomic():
media = perform_media_exchange( media = perform_media_exchange(
organizer=request.organizer, organizer=request.organizer,
media_type=media_type, media_type=media_type,
media_identifier=media_identifier, media_identifier=media_identifier,
media_policy=media_policy,
media_action=media_action, media_action=media_action,
op=op, op=op,
) )
@@ -1079,7 +1078,6 @@ class CheckinRPCRedeemView(views.APIView):
legacy_url_support=False, legacy_url_support=False,
media_type=s.validated_data.get('media_type'), media_type=s.validated_data.get('media_type'),
media_identifier=s.validated_data.get('media_identifier'), media_identifier=s.validated_data.get('media_identifier'),
media_policy=s.validated_data.get('media_policy'),
media_action=s.validated_data.get('media_action'), media_action=s.validated_data.get('media_action'),
) )

View File

@@ -72,8 +72,9 @@ def get_keysets_for_organizer(organizer):
return sets return sets
def perform_media_exchange(organizer, media_type, media_identifier, media_policy, media_action, op): def perform_media_exchange(organizer, media_type, media_identifier, media_action, op):
medium = None medium = None
media_policy = op.item.media_policy
if media_policy in [Item.MEDIA_POLICY_REUSE, Item.MEDIA_POLICY_REUSE_OR_NEW]: if media_policy in [Item.MEDIA_POLICY_REUSE, Item.MEDIA_POLICY_REUSE_OR_NEW]:
try: try: