0001-api-allow-empty-guardian_external_id-parameter-66332.patch
chrono/api/serializers.py | ||
---|---|---|
314 | 314 |
required=False, child=serializers.SlugField(max_length=160, allow_blank=False) |
315 | 315 |
) |
316 | 316 |
user_external_id = serializers.CharField(required=False, max_length=250, allow_blank=False) |
317 |
guardian_external_id = serializers.CharField(required=False, max_length=250, allow_blank=False)
|
|
317 |
guardian_external_id = serializers.CharField(required=False, max_length=250, allow_blank=True)
|
|
318 | 318 | |
319 | 319 |
def validate(self, attrs): |
320 | 320 |
super().validate(attrs) |
... | ... | |
327 | 327 |
raise ValidationError( |
328 | 328 |
{'user_external_id': _('This field is required when using "subscribed" parameter.')} |
329 | 329 |
) |
330 |
if 'guardian_external_id' in attrs and not user_external_id:
|
|
330 |
if attrs.get('guardian_external_id') and not user_external_id:
|
|
331 | 331 |
raise serializers.ValidationError( |
332 | 332 |
{'user_external_id': _('This field is required when using "guardian_external_id" parameter.')} |
333 | 333 |
) |
... | ... | |
358 | 358 | |
359 | 359 |
class MultipleAgendasDatetimesSerializer(AgendaOrSubscribedSlugsMixin, DatetimesSerializer): |
360 | 360 |
show_past_events = serializers.BooleanField(default=False) |
361 |
guardian_external_id = serializers.CharField(max_length=250, required=False) |
|
362 | 361 |
with_status = serializers.BooleanField(default=False) |
363 |
guardian_external_id = serializers.CharField(max_length=250, required=False) |
|
364 | 362 |
check_overlaps = serializers.BooleanField(default=False) |
365 | 363 | |
366 | 364 |
def validate(self, attrs): |
tests/api/datetimes/test_events_multiple_agendas.py | ||
---|---|---|
712 | 712 |
resp = app.get('/api/agendas/datetimes/', params={'subscribed': 'all', 'user_external_id': 'child_id'}) |
713 | 713 |
assert len(resp.json['data']) == 2 |
714 | 714 | |
715 |
# empty guardian_external_id parameter is ignored |
|
716 |
resp = app.get( |
|
717 |
'/api/agendas/datetimes/?guardian_external_id=', |
|
718 |
params={'subscribed': 'all', 'user_external_id': 'child_id'}, |
|
719 |
) |
|
720 |
assert len(resp.json['data']) == 2 |
|
721 | ||
715 | 722 |
# add shared custody agenda |
716 | 723 |
father = Person.objects.create(user_external_id='father_id', first_name='John', last_name='Doe') |
717 | 724 |
mother = Person.objects.create(user_external_id='mother_id', first_name='Jane', last_name='Doe') |
718 |
- |