wcs : ajustements pour le passage de la révision 1959 à la 2182.
authorProgfou <jean-christophe.andre@auf.org>
Fri, 23 Sep 2011 20:10:20 +0000 (03:10 +0700)
committerProgfou <jean-christophe.andre@auf.org>
Fri, 23 Sep 2011 20:10:20 +0000 (03:10 +0700)
wcs/wcs-extract

index 1147ba2..e082f74 100755 (executable)
@@ -65,7 +65,10 @@ def extract_fields(formdef, output_directory):
     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])
@@ -101,7 +104,8 @@ def extract_data(formdef, output_directory):
         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())),
@@ -157,14 +161,14 @@ def extract_data(formdef, output_directory):
                 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')
@@ -181,7 +185,7 @@ def extract_data(formdef, output_directory):
         # 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.",