grandlyon: add "+1" hack support scripts (#19000)

This commit is contained in:
Frédéric Péters 2017-10-01 12:00:08 +02:00
parent fdca4a388a
commit 6898318f82
2 changed files with 48 additions and 0 deletions

View File

@ -0,0 +1,25 @@
import json
import sys
from wcs.formdef import FormDef
if len(sys.argv) == 2:
data = json.load(open(sys.argv[1]))
else:
data = json.load(sys.stdin)
for key in data:
formdef = FormDef.get_by_urlname(key)
plus1_field_id = None
for field in formdef.workflow.backoffice_fields_formdef.fields:
if field.varname == 'plus1':
plus1_field_id = field.id
break
if not plus1_field_id:
continue
dataclass = formdef.data_class()
for data_id, data_count in data[key].items():
formdata = dataclass.get(data_id)
if str(data_count) != formdata.data.get(plus1_field_id):
formdata.data[plus1_field_id] = str(data_count)
formdata.store()

View File

@ -0,0 +1,23 @@
#! /usr/bin/env python
import json
from passerelle.apps.jsondatastore.models import JsonDataStore, JsonData
plus1_store = JsonDataStore.objects.get(slug='plus1')
formdefs = {}
for data in JsonData.objects.filter(datastore=plus1_store):
if not 'reference' in data.content:
continue
if not ':' in data.content['reference']:
continue
formdef_slug, formdata_id = data.content['reference'].split(':')
if not formdef_slug in formdefs:
formdefs[formdef_slug] = {}
if not formdata_id in formdefs[formdef_slug]:
formdefs[formdef_slug][formdata_id] = 0
formdefs[formdef_slug][formdata_id] = formdefs[formdef_slug][formdata_id] + 1
print json.dumps(formdefs)