diff --git a/src/pretix/api/views/media.py b/src/pretix/api/views/media.py index 8b16a44da7..3f71dea7db 100644 --- a/src/pretix/api/views/media.py +++ b/src/pretix/api/views/media.py @@ -157,7 +157,6 @@ class ReusableMediaViewSet(viewsets.ModelViewSet): type=s.validated_data["type"], identifier=s.validated_data["identifier"], ) - m.linked_orderpositions = None # not relevant for cross-organizer m.customer = None # not relevant for cross-organizer s = self.get_serializer(m) return Response({"result": s.data}) diff --git a/src/tests/api/test_checkinrpc.py b/src/tests/api/test_checkinrpc.py index 9fb79cfa67..8591837ef4 100644 --- a/src/tests/api/test_checkinrpc.py +++ b/src/tests/api/test_checkinrpc.py @@ -286,12 +286,12 @@ def test_by_secret_special_chars(token_client, organizer, clist, event, order): @pytest.mark.django_db def test_by_medium(token_client, organizer, clist, event, order): with scopes_disabled(): - ReusableMedium.objects.create( + rm = ReusableMedium.objects.create( type="barcode", identifier="abcdef", organizer=organizer, - linked_orderposition=order.positions.first(), ) + rm.linked_orderpositions.add(order.positions.first()) resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) assert resp.status_code == 201 assert resp.data['status'] == 'ok' @@ -318,12 +318,13 @@ def test_by_medium_not_connected(token_client, organizer, clist, event, order): @pytest.mark.django_db def test_by_medium_wrong_event(token_client, organizer, clist, event, order2): with scopes_disabled(): - ReusableMedium.objects.create( + rm = ReusableMedium.objects.create( type="barcode", identifier="abcdef", organizer=organizer, linked_orderposition=order2.positions.first(), ) + rm.linked_orderpositions.add(order2.positions.first()) resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) assert resp.status_code == 404 assert resp.data['status'] == 'error' @@ -337,12 +338,12 @@ def test_by_medium_wrong_event(token_client, organizer, clist, event, order2): @pytest.mark.django_db def test_by_medium_wrong_type(token_client, organizer, clist, event, order): with scopes_disabled(): - ReusableMedium.objects.create( + rm = ReusableMedium.objects.create( type="nfc_uid", identifier="abcdef", organizer=organizer, - linked_orderposition=order.positions.first(), ) + rm.linked_orderpositions.add(order.positions.first()) resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) assert resp.status_code == 404 assert resp.data['status'] == 'error' @@ -355,13 +356,13 @@ def test_by_medium_wrong_type(token_client, organizer, clist, event, order): @pytest.mark.django_db def test_by_medium_inactive(token_client, organizer, clist, event, order): with scopes_disabled(): - ReusableMedium.objects.create( + rm = ReusableMedium.objects.create( type="barcode", identifier="abcdef", organizer=organizer, active=False, - linked_orderposition=order.positions.first(), ) + rm.linked_orderpositions.add(order.positions.first()) resp = _redeem(token_client, organizer, clist, "abcdef", {"source_type": "barcode"}) assert resp.status_code == 404 assert resp.data['status'] == 'error' diff --git a/src/tests/api/test_order_create.py b/src/tests/api/test_order_create.py index f3f1d7e3ef..50f1d04233 100644 --- a/src/tests/api/test_order_create.py +++ b/src/tests/api/test_order_create.py @@ -3086,7 +3086,7 @@ def test_order_create_use_medium(token_client, organizer, event, item, quota, qu with scopes_disabled(): o = Order.objects.get(code=resp.data['code']) medium.refresh_from_db() - assert o.positions.first() == medium.linked_orderposition + assert o.positions.first() == medium.linked_orderpositions.first() assert resp.data['positions'][0]['pdf_data']['medium_identifier'] == medium.identifier @@ -3133,7 +3133,7 @@ def test_order_create_create_medium(token_client, organizer, event, item, quota, i = resp.data['positions'][0]['pdf_data']['medium_identifier'] assert i m = organizer.reusable_media.get(identifier=i) - assert m.linked_orderposition == o.positions.first() + assert m.linked_orderpositions.first() == o.positions.first() assert m.type == "barcode" diff --git a/src/tests/api/test_reusable_media.py b/src/tests/api/test_reusable_media.py index 2938e524a6..0b6ed4fe7e 100644 --- a/src/tests/api/test_reusable_media.py +++ b/src/tests/api/test_reusable_media.py @@ -92,7 +92,7 @@ TEST_MEDIUM_RES = { "active": True, "expires": None, "customer": None, - "linked_orderposition": None, + "linked_orderpositions": None, "linked_giftcard": None, "notes": None, "info": {}, @@ -138,7 +138,7 @@ def test_medium_detail(token_client, organizer, event, medium, giftcard, custome ticket = event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True, personalized=True) op = o.positions.create(item=ticket, price=Decimal("14")) - medium.linked_orderposition = op + medium.linked_orderpositions.add(op) medium.linked_giftcard = giftcard medium.customer = customer medium.save() @@ -419,7 +419,7 @@ def test_medium_lookup_cross_organizer(token_client, organizer, organizer2, org2 ticket = org2_event.items.create(name='Early-bird ticket', category=None, default_price=23, admission=True, personalized=True) op = o.positions.create(item=ticket, price=Decimal("14")) - medium2.linked_orderposition = op + medium2.linked_orderpositions.add(op) medium2.linked_giftcard = giftcard2 medium2.save()