2 # -*- coding: utf-8 -*-
4 # Mise en place dans Apache :
5 # ScriptAlias /cgi-bin/list2form.py /usr/local/lib/list2form.py
10 cgitb
.enable(display
=0, logdir
="/tmp")
13 from wcs
.qommon
.misc
import simplify
15 simplify
= lambda s
: 'url-name'
19 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
20 <title>Convertisseur de liste vers un formulaire w.c.s</title>
23 <h1>Convertisseur de liste vers un formulaire w.c.s</h1>
24 <form action="%(SCRIPT_NAME)s" method="POST" enctype="multipart/form-data">
25 <table cellborder="0" cellpadding="5">
27 <td>Fichier à convertir :<br />
28 (format texte ou CSV, encodage UTF-8)</td>
29 <td><input type="file" name="filename" /></td>
32 <td>Supprimer la première ligne du fichier :</td>
33 <td><input type="checkbox" name="delete_first" checked="on" /></td>
36 <td>Nom du formulaire :</td>
37 <td><input type="text" name="form_name" size="40" value="Etablissements origine AOR BAP 2011" /></td>
40 <td>Nom du champ liste :</td>
41 <td><select name="field_name">
42 <option>Etablissement d'origine (membre de l'AUF)</option>
43 <option>Etablissement d'accueil (membre de l'AUF)</option>
48 <td><input type="submit" value="Convertir" /></td>
55 WCS_FORM
= """<?xml version="1.0" encoding="utf-8"?>
57 <name>%(form_name)s</name>
58 <url_name>%(url_name)s</url_name>
59 <category>Pour importation</category>
60 <only_allow_one>true</only_allow_one>
61 <allow_drafts>false</allow_drafts>
62 <discussion>false</discussion>
63 <confirmation>true</confirmation>
64 <signing>false</signing>
67 <label>%(field_name)s</label>
69 <required>True</required>
70 <hint>Veuillez faire un choix dans la liste...</hint>
71 <in_listing>True</in_listing>
74 </prefill><wsf_prefill_explicit>False</wsf_prefill_explicit>
77 </items><show_as_radio>False</show_as_radio>
82 WCS_ITEM
= """ <item>%s</item>"""
86 for l
in fd
.readlines():
94 for l
in csv
.reader(fd
):
100 form
= cgi
.FieldStorage()
101 if form
and form
['filename'].type in ('text/plain','text/csv'):
102 delete_first
= form
.getvalue('delete_first')
103 conv_func
= form
['filename'].type.split('/')[-1] + '2list'
104 item_list
= globals()[conv_func
](form
['filename'].file)
107 form_name
= form
.getvalue('form_name')
108 url_name
= simplify(form_name
)
109 file_name
= '%s.wcs' % url_name
111 'form_name': cgi
.escape(form_name
),
112 'url_name': cgi
.escape(url_name
),
113 'field_name': cgi
.escape(form
.getvalue('field_name')),
114 'item_list': '\n'.join([WCS_ITEM
% cgi
.escape(i
) for i
in item_list
]),
116 #print "Location: https://preprod-formulaires.auf.org/admin/forms/import\r\n",
117 print "Content-Type: application/x-wcs-form; name=\"%s\"\r\n" % file_name
,
118 print "Content-Disposition: attachment; filename=\"%s\"\r\n\r\n" % file_name
,
119 print WCS_FORM
% info
,
121 print "Content-Type: text/html; charset=utf-8\r\n\r\n",
122 print HTML_FORM
% os
.environ
,