52 lines
1.9 KiB
Python
52 lines
1.9 KiB
Python
import json
|
|
import sys
|
|
|
|
output_filename = sys.argv[1]
|
|
|
|
print('output to', output_filename)
|
|
|
|
thematique_slug = '13ave-thematiques'
|
|
dispositif_slug = '13ave-dispositifs'
|
|
reponse_type_slug = '13ave-dga-p-reponses-types'
|
|
|
|
from wcs.carddef import CardDef
|
|
|
|
data = {}
|
|
|
|
Thematique = CardDef.get_by_urlname(thematique_slug).data_class()
|
|
Dispositif = CardDef.get_by_urlname(dispositif_slug).data_class()
|
|
ReponseType = CardDef.get_by_urlname(reponse_type_slug).data_class()
|
|
|
|
data['thematique'] = [{
|
|
'digest': thematique.digest,
|
|
'name': thematique.data[thematique.formdef.fields[0].id]
|
|
} for thematique in Thematique.select()]
|
|
dispositifs = Dispositif.select()
|
|
for dispositif in dispositifs:
|
|
# reconstruct 2_display
|
|
field_id = str(dispositif.formdef.fields[1].id)
|
|
dispositif.data[field_id + '_display'] = dispositif.formdef.fields[1].store_display_value(dispositif.data, field_id)
|
|
dispositif.set_auto_fields()
|
|
|
|
data['dispositif'] = [{
|
|
'digest': dispositif.digest,
|
|
'name': dispositif.data[dispositif.formdef.fields[0].id],
|
|
'thematique': dispositif.data[dispositif.formdef.fields[1].id + '_display'],
|
|
} for dispositif in dispositifs]
|
|
|
|
data['reponse_type'] = []
|
|
|
|
for reponse_type in ReponseType.select():
|
|
# reconstruct 2_display
|
|
field_id = str(reponse_type.formdef.fields[1].id)
|
|
reponse_type.data[field_id + '_display'] = reponse_type.formdef.fields[1].store_display_value(reponse_type.data, field_id)
|
|
data['reponse_type'].append({
|
|
'digest': reponse_type.digest + str(reponse_type.data[reponse_type.formdef.fields[1].id + '_display']),
|
|
'title': reponse_type.data[reponse_type.formdef.fields[0].id],
|
|
'dispositif': reponse_type.data[reponse_type.formdef.fields[1].id + '_display'],
|
|
'message': reponse_type.data[reponse_type.formdef.fields[2].id],
|
|
})
|
|
|
|
with open(output_filename, 'w') as fd:
|
|
json.dump(data, fd, indent=2)
|