api: check file fields when creating geojson (#89831) #1428

Merged
fpeters merged 1 commits from wip/89831-geojson-none-file into main 2024-04-22 10:02:00 +02:00
Owner
No description provided.
fpeters added 1 commit 2024-04-21 09:03:20 +02:00
fpeters force-pushed wip/89831-geojson-none-file from fc2afbed9a to 318fd9bc58 2024-04-21 09:44:07 +02:00 Compare
fpeters reviewed 2024-04-21 09:55:43 +02:00
@ -3048,6 +3048,65 @@ def test_api_geojson_formdata_related_field(pub, local_user):
assert properties['item - foobar'] == 'test.txt'
def test_api_geojson_formdata_file_in_block_field(pub, local_user):
Author
Owner

Le bug se révèle être sutr la situation d'un bloc de champs, avec un champ fichier, et une colonne (et de ce fait une propriété dans le geosjon) configurée pour afficher le champ fichier du bloc de champs.

Le bug se révèle être sutr la situation d'un bloc de champs, avec un champ fichier, et une colonne (et de ce fait une propriété dans le geosjon) configurée pour afficher le champ fichier du bloc de champs.
@ -3051,0 +3090,4 @@
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson?filter=all&1=on', user=local_user))
assert len(resp.json['features']) == 1
assert resp.json['features'][0]['properties']['id'] == '1-1'
assert resp.json['features'][0]['properties']['display_fields'][0]['value'] == 'test.txt'
Author
Owner

En reproduisant, je me suis rendu compte que la sortie pour le bloc en lui-même, dans le geojson, n'était pas exploitable, donc plutôt juste inclure la valeur "display".

En reproduisant, je me suis rendu compte que la sortie pour le bloc en lui-même, dans le geojson, n'était pas exploitable, donc plutôt juste inclure la valeur "display".
@ -3051,0 +3097,4 @@
assert len(resp.json['features']) == 1
assert resp.json['features'][0]['properties']['id'] == '1-1'
assert resp.json['features'][0]['properties']['display_fields'][0]['value'] == 'test.txt'
assert 'download?f=1$0$123' in resp.json['features'][0]['properties']['display_fields'][0]['html_value']
Author
Owner

Ici ça correspond au cas précis de la trace sentry.

Ici ça correspond au cas précis de la trace sentry.
@ -3051,0 +3104,4 @@
assert len(resp.json['features']) == 1
properties = {x['label']: x['value'] for x in resp.json['features'][0]['properties']['display_fields']}
assert properties['test'] == 'test.txt'
assert 'file' not in properties
Author
Owner

Avec full=on, les champs des blocs de champs se trouvaient mis au même niveau que les autres champs, ça pouvait amener une certaine confusion dans les propriétés, j'ai opté pour que full=on ne crée pas de propriétés pour les champs des blocs de champs.

Avec full=on, les champs des blocs de champs se trouvaient mis au même niveau que les autres champs, ça pouvait amener une certaine confusion dans les propriétés, j'ai opté pour que full=on ne crée pas de propriétés pour les champs des blocs de champs.
fpeters changed title from WIP: api: check file fields when creating geojson (#89831) to api: check file fields when creating geojson (#89831) 2024-04-21 09:55:47 +02:00
lguerin approved these changes 2024-04-22 09:55:21 +02:00
fpeters merged commit 4e0b3469f1 into main 2024-04-22 10:02:00 +02:00
fpeters deleted branch wip/89831-geojson-none-file 2024-04-22 10:02:00 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/wcs#1428
No description provided.