0b14d373b3ce8d2982ec5a49d96eb688d9623f0a
2 # -*- coding: utf-8 -*-
7 cgitb
.enable(display
=0, logdir
="/tmp")
10 from qommon
.misc
import simplify
12 simplify
= lambda s
: 'url-name'
16 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
17 <title>Convertisseur de liste vers un formulaire w.c.s</title>
20 <h1>Convertisseur de liste vers un formulaire w.c.s</h1>
21 <form action="%(SCRIPT_NAME)s" method="POST" enctype="multipart/form-data">
22 <table cellborder="0" cellpadding="5">
24 <td>Fichier à convertir :<br />
25 (format texte ou CSV, encodage UTF-8)</td>
26 <td><input type="file" name="filename" /></td>
29 <td>Supprimer la première ligne du fichier :</td>
30 <td><input type="checkbox" name="delete_first" checked="on" /></td>
33 <td>Nom du formulaire :</td>
34 <td><input type="text" name="form_name" size="40" value="Etablissements origine AOR BAP 2011" /></td>
37 <td>Nom du champ liste :</td>
38 <td><select name="field_name">
39 <option>Etablissement d'origine (membre de l'AUF)</option>
40 <option>Etablissement d'accueil (membre de l'AUF)</option>
45 <td><input type="submit" value="Convertir" /></td>
52 WCS_FORM
= """<?xml version="1.0" encoding="utf-8"?>
54 <name>%(form_name)s</name>
55 <url_name>%(url_name)s</url_name>
56 <category>Pour importation</category>
57 <only_allow_one>true</only_allow_one>
58 <allow_drafts>false</allow_drafts>
59 <discussion>false</discussion>
60 <confirmation>true</confirmation>
61 <signing>false</signing>
64 <label>%(field_name)s</label>
66 <required>True</required>
67 <hint>Veuillez faire un choix dans la liste...</hint>
68 <in_listing>True</in_listing>
71 </prefill><wsf_prefill_explicit>False</wsf_prefill_explicit>
74 </items><show_as_radio>False</show_as_radio>
79 WCS_ITEM
= """ <item>%s</item>"""
83 for l
in fd
.readlines():
91 for l
in csv
.reader(fd
):
97 form
= cgi
.FieldStorage()
98 if form
and form
['filename'].type in ('text/plain','text/csv'):
99 delete_first
= form
.getvalue('delete_first')
100 conv_func
= form
['filename'].type.split('/')[-1] + '2list'
101 item_list
= globals()[conv_func
](form
['filename'].file)
104 form_name
= form
.getvalue('form_name')
105 url_name
= simplify(form_name
)
106 file_name
= '%s.wcs' % url_name
108 'form_name': cgi
.escape(form_name
),
109 'url_name': cgi
.escape(url_name
),
110 'field_name': cgi
.escape(form
.getvalue('field_name')),
111 'item_list': '\n'.join([WCS_ITEM
% cgi
.escape(i
) for i
in item_list
]),
113 #print "Location: https://preprod-formulaires.auf.org/admin/forms/import\r\n",
114 print "Content-Type: application/x-wcs-form; name=\"%s\"\r\n" % file_name
,
115 print "Content-Disposition: attachment; filename=\"%s\"\r\n\r\n" % file_name
,
116 print WCS_FORM
% info
,
118 print "Content-Type: text/html; charset=utf-8\r\n\r\n",
119 print HTML_FORM
% os
.environ
,