manager: fix check page with bad extra data values (#74872)
gitea/chrono/pipeline/head This commit looks good Details

This commit is contained in:
Lauréline Guérin 2023-03-02 11:11:46 +01:00
parent ebc237cf56
commit c35dffb1bb
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
3 changed files with 3 additions and 4 deletions

View File

@ -724,7 +724,6 @@ def make_booking(event, payload, extra_data, primary_booking=None, in_waiting_li
def get_extra_data(request, payload):
extra_data = {}
for k, v in request.data.items():
print(k, v)
if k not in payload:
if isinstance(v, (list, dict)):
raise APIErrorBadRequest(N_('wrong type for extra_data %s value') % k)

View File

@ -2543,7 +2543,7 @@ class EventCheckView(ViewableAgendaMixin, DetailView):
).values_list('extra_data', flat=True)
for extra_data in list(extra_data_from_booked) + list(extra_data_from_subscriptions):
for k, v in extra_data.items():
if k in agenda_filters:
if k in agenda_filters and not isinstance(v, (list, dict)):
filters[k].add(v)
filters = sorted(filters.items())
filters = {k: sorted(list(v)) for k, v in filters}

View File

@ -1758,7 +1758,7 @@ def test_event_check_filters(check_types, app, admin_user):
user_external_id='user:1',
user_first_name='User',
user_last_name='foo-val1 bar-none presence',
extra_data={'foo': 'val1'},
extra_data={'foo': 'val1', 'bar': ['val1']}, # bar is ignored, wrong value
user_was_present=True,
)
Booking.objects.create(
@ -1837,7 +1837,7 @@ def test_event_check_filters(check_types, app, admin_user):
user_external_id='subscription:1',
user_first_name='Subscription',
user_last_name='foo-val1 bar-none',
extra_data={'foo': 'val1'},
extra_data={'foo': 'val1', 'bar': ['val1']}, # bar is ignored, wrong value
date_start=event.start_datetime,
date_end=event.start_datetime + datetime.timedelta(days=1),
)