geojson: full param to get all fields (#50283)

This commit is contained in:
Lauréline Guérin 2021-01-19 10:43:18 +01:00
parent 67abf4f379
commit 34ab42bb41
No known key found for this signature in database
GPG Key ID: 1FAB9B9B4F93D473
2 changed files with 15 additions and 1 deletions

View File

@ -2136,6 +2136,7 @@ def test_api_geojson_formdata(pub, local_user):
assert 'features' in resp.json
assert len(resp.json['features']) == 10
display_fields = resp.json['features'][0]['properties']['display_fields']
assert len(display_fields) == 5
for field in display_fields:
if field['label'] == 'Number':
assert field['varname'] == 'id'
@ -2153,6 +2154,16 @@ def test_api_geojson_formdata(pub, local_user):
assert field['varname'] is None
assert field['value'] == "test.txt"
assert field['html_value'] == '<div class="file-field"><a download="test.txt" href="http://example.net/backoffice/management/test/28/download?f=1"><span>test.txt</span></a></div>'
field_varnames = [f['varname'] for f in display_fields]
assert 'foobar' not in field_varnames
# check full=on
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson?full=on', user=local_user))
assert len(resp.json['features']) == 10
display_fields = resp.json['features'][0]['properties']['display_fields']
assert len(display_fields) == 8
field_varnames = [f['varname'] for f in display_fields]
assert 'foobar' in field_varnames
# check with a filter
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson?filter=done', user=local_user))

View File

@ -2101,7 +2101,10 @@ class FormPage(Directory):
user = get_user_from_api_query_string('geojson')
selected_filter = self.get_filter_from_query()
fields = self.get_fields_from_query()
if get_request().form.get('full') == 'on':
fields = list(self.get_formdef_fields())
else:
fields = self.get_fields_from_query()
criterias = self.get_criterias_from_query()
query = get_request().form.get('q')