grandlyon: generate static geojson files from demands

This commit is contained in:
Frédéric Péters 2017-09-22 17:29:46 +02:00
parent 6ea998bdb2
commit 798fe826c5
1 changed files with 34 additions and 0 deletions

View File

@ -0,0 +1,34 @@
import json
import os
from quixote import get_publisher
from qommon.misc import JSONEncoder
from qommon.storage import Contains
from wcs.categories import Category
from wcs.formdef import FormDef
from wcs.backoffice.management import geojson_formdatas
geojson_dir = os.path.join(get_publisher().app_dir, 'geojsons')
if not os.path.exists(geojson_dir):
os.mkdir(geojson_dir)
category = [x for x in Category.select() if x.name == 'Signalements'][0]
for formdef in FormDef.select():
if not formdef.category_id == category.id:
continue
applied_filters = ['wf-%s' % x.id for x in formdef.workflow.get_not_endpoint_status()]
formdatas = formdef.data_class().select([Contains('status', applied_filters)])
geojson = geojson_formdatas(formdatas)
for feature in geojson['features']:
formdata_id = feature['properties']['url'].split('/')[-2]
formdata = formdef.data_class().get(formdata_id)
formdata_vars = formdata.get_substitution_variables()
feature['properties']['message'] = formdata_vars['form_var_message']
json.dump(geojson, open(os.path.join(geojson_dir, formdef.url_name + '.json'), 'w'),
indent=2, cls=JSONEncoder)