16 |
16 |
from wcs.admin.settings import UserFieldsFormDef
|
17 |
17 |
from wcs.api_access import ApiAccess
|
18 |
18 |
from wcs.blocks import BlockDef
|
|
19 |
from wcs.carddef import CardDef
|
19 |
20 |
from wcs.categories import Category
|
20 |
21 |
from wcs.data_sources import NamedDataSource
|
21 |
22 |
from wcs.formdata import Evolution
|
... | ... | |
2397 |
2398 |
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson', user=local_user), status=404)
|
2398 |
2399 |
|
2399 |
2400 |
|
|
2401 |
def test_api_geojson_formdata_related_field(pub, local_user):
|
|
2402 |
pub.role_class.wipe()
|
|
2403 |
role = pub.role_class(name='test')
|
|
2404 |
role.store()
|
|
2405 |
|
|
2406 |
# add role to user
|
|
2407 |
local_user.roles = [role.id]
|
|
2408 |
local_user.store()
|
|
2409 |
|
|
2410 |
CardDef.wipe()
|
|
2411 |
carddef = CardDef()
|
|
2412 |
carddef.name = 'test'
|
|
2413 |
carddef.fields = [
|
|
2414 |
fields.FileField(id='1', label='foobar', type='file'),
|
|
2415 |
]
|
|
2416 |
carddef.digest_templates = {'default': 'plop'}
|
|
2417 |
carddef.store()
|
|
2418 |
|
|
2419 |
FormDef.wipe()
|
|
2420 |
formdef = FormDef()
|
|
2421 |
formdef.name = 'test'
|
|
2422 |
formdef.workflow_roles = {'_receiver': role.id}
|
|
2423 |
formdef.fields = [
|
|
2424 |
fields.ItemField(
|
|
2425 |
id='1', label='item', type='item', varname='foo', data_source={'type': 'carddef:test'}
|
|
2426 |
),
|
|
2427 |
]
|
|
2428 |
formdef.geolocations = {'base': 'Location'}
|
|
2429 |
formdef.store()
|
|
2430 |
|
|
2431 |
data_class = formdef.data_class()
|
|
2432 |
data_class.wipe()
|
|
2433 |
upload = PicklableUpload('test.txt', 'text/plain', 'ascii')
|
|
2434 |
upload.receive([b'base64me'])
|
|
2435 |
carddata = carddef.data_class()()
|
|
2436 |
carddata.data = {'1': upload}
|
|
2437 |
carddata.just_created()
|
|
2438 |
carddata.store()
|
|
2439 |
|
|
2440 |
formdata = formdef.data_class()()
|
|
2441 |
formdata.data = {'1': str(carddata.id)}
|
|
2442 |
formdata.data['1_display'] = formdef.fields[0].store_display_value(formdata.data, '1')
|
|
2443 |
formdata.data['1_structured'] = formdef.fields[0].store_structured_value(formdata.data, '1')
|
|
2444 |
formdata.geolocations = {'base': {'lat': 48, 'lon': 2}}
|
|
2445 |
formdata.just_created()
|
|
2446 |
formdata.store()
|
|
2447 |
|
|
2448 |
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson?filter=all', user=local_user))
|
|
2449 |
assert len(resp.json['features']) == 1
|
|
2450 |
assert resp.json['features'][0]['properties']['id'] == '1-1'
|
|
2451 |
|
|
2452 |
# check full=on
|
|
2453 |
resp = get_app(pub).get(sign_uri('/api/forms/test/geojson?filter=all&full=on', user=local_user))
|
|
2454 |
assert len(resp.json['features']) == 1
|
|
2455 |
properties = {x['label']: x['value'] for x in resp.json['features'][0]['properties']['display_fields']}
|
|
2456 |
assert properties['item - foobar'] == 'test.txt'
|
|
2457 |
|
|
2458 |
|
2400 |
2459 |
def test_api_distance_filter(pub, local_user):
|
2401 |
2460 |
pub.role_class.wipe()
|
2402 |
2461 |
role = pub.role_class(name='test')
|
2403 |
|
-
|