for field in formdef.fields:
if isinstance(field, TitleField) or isinstance(field, CommentField):
continue
- name = reduce_to_alnum(field.label,'_').lower()
+ if field.varname:
+ name = field.varname
+ else:
+ name = reduce_to_alnum(field.label,'_').lower()
if name in field_names.values(): # duplicat
field_names_duplicates[name] = field_names_duplicates.get(name, 1) + 1
name = '%s_%d' % (name, field_names_duplicates[name])
result = {
'num_dossier': object.id,
'wcs_status': object.status,
- 'wcs_workflow_status': object.get_workflow_status().name,
+ 'wcs_workflow_status': (object.status.startswith('wf-') and \
+ object.get_workflow_status().name or None),
'wcs_user_email': object.user.email,
'wcs_user_display_name': object.user.display_name,
#'wcs_last_modified': strftime('%Y-%m-%d %H:%M:%S', gmtime(object.last_modified())),
result[field_name] = "%s.%s" % (field_name, extension)
qfiles[field_name] = data.qfilename
else:
- logging.error("Type de champ inconnu '%s' pour '%s'.",
- field.__class__.__name__, field.label)
+ logging.error("Type de champ inconnu '%s' pour '%s' (%s).",
+ field.__class__.__name__, field.name, field.label)
raise RuntimeError
num_dossier = result['num_dossier']
- nom = reduce_to_alnum(result['nom']).upper()
- prenom = reduce_to_alnum(result['prenom']).upper()
- adel = result['adresse_electronique'].replace('@','-').lower()
+ nom = reduce_to_alnum(result.get('nom','sans-nom')).upper()
+ prenom = reduce_to_alnum(result.get('prenom','sans-prenom')).upper()
+ adel = result.get('adresse_electronique','sans-adel').replace('@','-').lower()
filename = "%04d-%s-%s-%s" % (num_dossier, nom, prenom, adel)
liste_dossiers.append(filename + '.json')
# génération du fichier JSON
jsonname = os.path.join(output_directory, 'data', filename + '.json')
f = open(jsonname, 'wb')
- f.write(json.dumps(result, ensure_ascii=False))
+ f.write(json.dumps(result, ensure_ascii=False).encode('utf-8'))
f.close()
logging.info("Dossier '%s' : %s.",