[wiki/inscription.py] bon choix d'etudes
darcs-hash:20090706170352-bd074-6b795b38663b331e6c41da9855fe34a304f9f4ca.gz
This commit is contained in:
parent
fbbf0295eb
commit
7e46d3e60c
1 changed files with 93 additions and 104 deletions
|
@ -40,6 +40,68 @@ from MoinMoin.Page import Page
|
|||
from MoinMoin.PageEditor import PageEditor
|
||||
from MoinMoin.formatter.text_html import Formatter
|
||||
|
||||
ETABLISSEMENTS = [ ("ENS", u"ENS Cachan"),
|
||||
("IUT Cachan", u"IUT Cachan"),
|
||||
("Maximilien Sorre", u"Maximilien Sorre"),
|
||||
("Gustave Eiffel", u"Gustave Eiffel"),
|
||||
("P1", u"Paris I"),
|
||||
("P2", u"Paris II"),
|
||||
("P3", u"Paris III"),
|
||||
("P4", u"Paris IV"),
|
||||
("P5", u"Paris V"),
|
||||
("P6", u"Paris VI"),
|
||||
("P7", u"Paris VII"),
|
||||
("P8", u"Paris VIII"),
|
||||
("P9", u"Paris IX"),
|
||||
("P10", u"Paris X"),
|
||||
("P11", u"Paris XI"),
|
||||
("P12", u"Paris XII"),
|
||||
("P13", u"Paris XIII"),
|
||||
("IUFM", u"IUFM"),
|
||||
("other", u"Autre...") ]
|
||||
|
||||
LABOS = [ ("CMLA", u"CMLA - Centre de Mathématiques et de Leurs Applications"),
|
||||
("GAPP", u"GAPP - Groupe d'Analyse des Politiques Publiques"),
|
||||
("IDHE", u"IDHE - Institutions et Dynamiques Historiques de l'Economie"),
|
||||
("LBPA", u"LBPA - Laboratoire de Biotechnologies et Pharmacologie génétique Appliquées"),
|
||||
("LMT", u"LMT - Laboratoire de Mécanique et Technologie"),
|
||||
("LPQM", u"LPQM - Laboratoire de Photonique Quantique et Moléculaire"),
|
||||
("LSV", u"LSV - Laboratoire de Spécification et Vérification"),
|
||||
("LURPA", u"LURPA - Laboratoire Universitaire de Recherche en Production Automatisée"),
|
||||
("PPSM", u"PPSM - Laboratoire de Photophysique et Photochimie Supramoléculaires et Macromoléculaires"),
|
||||
("SATIE", u"SATIE - Systèmes et Applications des Technologies de l\'Information et de l'Energie"),
|
||||
("STEF", u"STEF - Sciences Techniques Education Formation") ]
|
||||
|
||||
ANNEE_ENS = [ ("1", u"1A (license)"), ("2", u"2A (master 1)"),
|
||||
("3", u"3A (agrégation)"), ("4", u"4A (master 2)"),
|
||||
("5", u"5A (thèse 1)"), ("6", u"6A (thèse 2)"),
|
||||
("7", u"7A (thèse 3)"), ("8", u"8A+") ]
|
||||
|
||||
ANNEE_ETUDE = [ ("-2", u"Seconde"), ("-1", u"Première"), ("0", u"Terminale"),
|
||||
("1", u"BAC+1 (L1)"), ("2", u"BAC+2 (L2)"), ("3", u"BAC+3 (L3)"),
|
||||
("4", u"BAC+4 (M1)"), ("5", u"BAC+5 (M2)"), ("6", u"BAC+6 (thèse 1)"),
|
||||
("7", u"BAC+7 (thèse 2)"), ("8", u"BAC+8 (thèse 3)"), ("9", "Autre") ]
|
||||
|
||||
SECTIONS_ENS = [ ("A0", u"A0 - Informatique"),
|
||||
("A1", u"A1 - Mathématiques"),
|
||||
("A2", u"A2 - Physique fondamentale"),
|
||||
("A'2", u"A'2 - Physique appliquée"),
|
||||
("A''2", u"A''2 - Chimie"),
|
||||
("A3", u"A3 - Biochimie"),
|
||||
("EEA", u"EEA"),
|
||||
("B123", u"B123 - Technologie mécanique"),
|
||||
("B1", u"B1 - Mécanique"),
|
||||
("B2", u"B2 - Génie civil"),
|
||||
("B3", u"B3 - Génie mécanique"),
|
||||
("B1", u"B1 - Mécanique"),
|
||||
("B2", u"B2 - Génie civil"),
|
||||
("B3", u"B3 - Génie mécanique"),
|
||||
("B4", u"B4 - Génie électrique"),
|
||||
("C", u"C - Art et création industrielle"),
|
||||
("D2", u"D2 - Economie gestion"),
|
||||
("D3", u"D3 - Sciences sociales"),
|
||||
("E", u"E - Anglais") ]
|
||||
|
||||
class Field():
|
||||
"""Une classe pour représenter les champs
|
||||
|
||||
|
@ -50,11 +112,13 @@ class Field():
|
|||
error_msg=''
|
||||
error_field=''
|
||||
|
||||
def __init__(self, id, prompt, default = "", input_type = "text", check=None):
|
||||
def __init__(self, id, prompt, default = "", input_type = "text",
|
||||
check=None, CLASS="formulaire_field"):
|
||||
self.id = id
|
||||
self.prompt = html.Text(prompt)
|
||||
self.default = default
|
||||
self.input_type = input_type
|
||||
self.CLASS= CLASS
|
||||
if check != None: self.check_hook = check
|
||||
else: self.check_hook = (lambda x: True)
|
||||
|
||||
|
@ -77,7 +141,7 @@ class Field():
|
|||
return ok
|
||||
|
||||
def render(self, request, parser):
|
||||
champ = html.UL(CLASS="formulaire_field")
|
||||
champ = html.UL(CLASS=self.CLASS)
|
||||
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
||||
|
||||
input = html.INPUT(type=self.input_type,name=self.id,value=self.default)
|
||||
|
@ -92,107 +156,24 @@ class Field():
|
|||
return champ
|
||||
|
||||
class MenuField(Field):
|
||||
etablissements = [ ("ENS", u"ENS Cachan"),
|
||||
("IUT Cachan", u"IUT Cachan"),
|
||||
("Maximilien Sorre", u"Maximilien Sorre"),
|
||||
("Gustave Eiffel", u"Gustave Eiffel"),
|
||||
("P1", u"Paris I"),
|
||||
("P2", u"Paris II"),
|
||||
("P3", u"Paris III"),
|
||||
("P4", u"Paris IV"),
|
||||
("P5", u"Paris V"),
|
||||
("P6", u"Paris VI"),
|
||||
("P7", u"Paris VII"),
|
||||
("P8", u"Paris VIII"),
|
||||
("P9", u"Paris IX"),
|
||||
("P10", u"Paris X"),
|
||||
("P11", u"Paris XI"),
|
||||
("P12", u"Paris XII"),
|
||||
("P13", u"Paris XIII"),
|
||||
("IUFM", u"IUFM") ]
|
||||
|
||||
labos = [ ("CMLA", u"CMLA - Centre de Mathématiques et de Leurs Applications"),
|
||||
("GAPP", u"GAPP - Groupe d'Analyse des Politiques Publiques"),
|
||||
("IDHE", u"IDHE - Institutions et Dynamiques Historiques de l'Economie"),
|
||||
("LBPA", u"LBPA - Laboratoire de Biotechnologies et Pharmacologie génétique Appliquées"),
|
||||
("LMT", u"LMT - Laboratoire de Mécanique et Technologie"),
|
||||
("LPQM", u"LPQM - Laboratoire de Photonique Quantique et Moléculaire"),
|
||||
("LSV", u"LSV - Laboratoire de Spécification et Vérification"),
|
||||
("LURPA", u"LURPA - Laboratoire Universitaire de Recherche en Production Automatisée"),
|
||||
("PPSM", u"PPSM - Laboratoire de Photophysique et Photochimie Supramoléculaires et Macromoléculaires"),
|
||||
("SATIE", u"SATIE - Systèmes et Applications des Technologies de l\'Information et de l'Energie"),
|
||||
("STEF", u"STEF - Sciences Techniques Education Formation") ]
|
||||
|
||||
annee_ens = [ ("1", u"1A (license)"), ("2", u"2A (master 1)"),
|
||||
("3", u"3A (agrégation)"), ("4", u"4A (master 2)"),
|
||||
("5", u"5A (thèse 1)"), ("6", u"6A (thèse 2)"),
|
||||
("7", u"7A (thèse 3)"), ("8", u"8A+") ]
|
||||
|
||||
annee = [ ("-2", u"Seconde"), ("-1", u"Première"), ("0", u"Terminale"),
|
||||
("1", u"BAC+1 (L1)"), ("2", u"BAC+2 (L2)"), ("3", u"BAC+3 (L3)"),
|
||||
("4", u"BAC+4 (M1)"), ("5", u"BAC+5 (M2)"), ("6", u"BAC+6 (thèse 1)"),
|
||||
("7", u"BAC+7 (thèse 2)"), ("8", u"BAC+8 (thèse 3)"), ("9", "Autre") ]
|
||||
|
||||
sections = [ ("A0", u"A0 - Informatique"),
|
||||
("A1", u"A1 - Mathématiques"),
|
||||
("A2", u"A2 - Physique fondamentale"),
|
||||
("A'2", u"A'2 - Physique appliquée"),
|
||||
("A''2", u"A''2 - Chimie"),
|
||||
("A3", u"A3 - Biochimie"),
|
||||
("EEA", u"EEA"),
|
||||
("B123", u"B123 - Technologie mécanique"),
|
||||
("B1", u"B1 - Mécanique"),
|
||||
("B2", u"B2 - Génie civil"),
|
||||
("B3", u"B3 - Génie mécanique"),
|
||||
("B1", u"B1 - Mécanique"),
|
||||
("B2", u"B2 - Génie civil"),
|
||||
("B3", u"B3 - Génie mécanique"),
|
||||
("B4", u"B4 - Génie électrique"),
|
||||
("C", u"C - Art et création industrielle"),
|
||||
("D2", u"D2 - Economie gestion"),
|
||||
("D3", u"D3 - Sciences sociales"),
|
||||
("E", u"E - Anglais") ]
|
||||
|
||||
prompt1 = u"Choisissez votre année d'étude"
|
||||
prompt2 = u"Choisissez votre filière"
|
||||
prompt2bis = u"Précisez votre filière"
|
||||
prompt2ter= u"Précisez votre laboratoire"
|
||||
def __init__(self, id, prompt, fields):
|
||||
Field.__init__(self, id, prompt)
|
||||
self.fields = fields
|
||||
|
||||
def render(self, request, parser):
|
||||
variants = [ '', '1', '2', '2bis', '2ter' ]
|
||||
for i in variants:
|
||||
eval('champ%s = html.UL(CLASS="formulaire_field")' %i)
|
||||
eval('champ%s.append(html.LI(CLASS="formulaire_id").append(self.prompt%s))'% (i,i))
|
||||
def gen_menu(nom, champs, **kw):
|
||||
menu = html.SELECT(NAME=nom, **kw)
|
||||
for opt, legend in champs:
|
||||
menu.append(html.OPTION(VALUE=opt).append(legend))
|
||||
return menu
|
||||
|
||||
menu = gen_menu('etablissement', self.etablissements,
|
||||
onchange='TestEtudes(document.forms.preinscription.etablissement.value)')
|
||||
champ.append(html.LI(CLASS="formulaire_input").append(menu))
|
||||
|
||||
menu = gen_menu('annee', self.annee)
|
||||
champ1.append(html.LI(CLASS="nens_input").append(menu))
|
||||
|
||||
menu = gen_menu('annee_ens', self.annee_ens,
|
||||
onchange='TestAnnee(document.forms.preinscription.annee_ens.value)')
|
||||
champ2.append(html.LI(CLASS="ens_input").append(menu))
|
||||
|
||||
menu = gen_menu('section_ens', self.sections)
|
||||
champ2bis.append(html.LI(CLASS="ens_yinput").append(menu))
|
||||
|
||||
menu = gen_menu('labo_ens', self.labos)
|
||||
champ2ter.append(html.LI(CLASS="ens_oinput").append(menu))
|
||||
|
||||
champ = html.UL(CLASS="formulaire_field_%s" % self.id)
|
||||
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
||||
menu = html.SELECT(NAME=self.id, onchange='TestEtudes()')
|
||||
for opt, legend in self.fields:
|
||||
menu.append(html.OPTION(VALUE=opt).append(legend))
|
||||
champ.append(menu)
|
||||
if self.error_txt:
|
||||
error = wikiutil.renderText(request, parser, self.error_txt)
|
||||
champ.append(html.LI(CLASS="formulaire_error").append(error))
|
||||
|
||||
if self.error_msg:
|
||||
request.add_msg(self.error_msg)
|
||||
return (u'%s\n'* len(variants)) % (eval('champ'+i) for i in variants)
|
||||
return champ
|
||||
|
||||
|
||||
class PasswordField(Field):
|
||||
|
@ -215,7 +196,7 @@ class PasswordField(Field):
|
|||
champ = html.UL(CLASS="formulaire_field")
|
||||
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
||||
|
||||
input = html.INPUT(type=self.input_type,onchange="testPassword(document.forms.preinscription.pass.value)", name=self.id)
|
||||
input = html.INPUT(type=self.input_type,onchange="testPassword()", name=self.id)
|
||||
champ.append(html.LI(CLASS="formulaire_input").append(input))
|
||||
champ.append(html.LI().append('<img name="verdict" />'))
|
||||
|
||||
|
@ -291,14 +272,22 @@ class FormulaireInscription():
|
|||
mac_field.ip = ip
|
||||
|
||||
|
||||
self.champs = [ Field("nom", "Nom", check=is_name),
|
||||
Field("prenom", u"Prénom", check=is_name),
|
||||
Field("tel", u"Numéro de téléphone", check=is_phonenumber),
|
||||
PasswordField("pass", u"Mot de passe", input_type='password'),
|
||||
Field("dns", u"Nom de votre ordinateur", check=is_dns),
|
||||
mac_field,
|
||||
MenuField('etablissement', u"Choisissez votre établissement d'études")
|
||||
]
|
||||
self.champs = [
|
||||
Field("nom", "Nom", check=is_name),
|
||||
Field("prenom", u"Prénom", check=is_name),
|
||||
Field("tel", u"Numéro de téléphone", check=is_phonenumber),
|
||||
PasswordField("pass", u"Mot de passe", input_type='password'),
|
||||
Field("dns", u"Nom de votre ordinateur", check=is_dns),
|
||||
mac_field,
|
||||
MenuField('etablissement', u"Établissement d'études", ETABLISSEMENTS),
|
||||
Field("etablissement_autre", u"Précisez votre établissement d'études",
|
||||
check=is_name, CLASS='formulaire_field_etablissement_autre'),
|
||||
MenuField('annee_ens', u"Année scolaire à l'ENS", ANNEE_ENS),
|
||||
MenuField('annee', u"Choisissez votre année scolaire", ANNEE_ETUDE),
|
||||
MenuField('section_ens', u"Section", SECTIONS_ENS),
|
||||
MenuField('labo', u"Laboratoire", LABOS),
|
||||
Field("section", u"Précisez votre section", CLASS="formulaire_field_section")
|
||||
]
|
||||
|
||||
|
||||
def _create_form(request, parser, formulaire):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue