grandlyon: generate static geojson files from demands
This commit is contained in:
parent
6ea998bdb2
commit
798fe826c5
|
@ -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)
|
Loading…
Reference in New Issue