[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.PageEditor import PageEditor
|
||||||
from MoinMoin.formatter.text_html import Formatter
|
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():
|
class Field():
|
||||||
"""Une classe pour représenter les champs
|
"""Une classe pour représenter les champs
|
||||||
|
|
||||||
|
@ -50,11 +112,13 @@ class Field():
|
||||||
error_msg=''
|
error_msg=''
|
||||||
error_field=''
|
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.id = id
|
||||||
self.prompt = html.Text(prompt)
|
self.prompt = html.Text(prompt)
|
||||||
self.default = default
|
self.default = default
|
||||||
self.input_type = input_type
|
self.input_type = input_type
|
||||||
|
self.CLASS= CLASS
|
||||||
if check != None: self.check_hook = check
|
if check != None: self.check_hook = check
|
||||||
else: self.check_hook = (lambda x: True)
|
else: self.check_hook = (lambda x: True)
|
||||||
|
|
||||||
|
@ -77,7 +141,7 @@ class Field():
|
||||||
return ok
|
return ok
|
||||||
|
|
||||||
def render(self, request, parser):
|
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))
|
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
||||||
|
|
||||||
input = html.INPUT(type=self.input_type,name=self.id,value=self.default)
|
input = html.INPUT(type=self.input_type,name=self.id,value=self.default)
|
||||||
|
@ -92,107 +156,24 @@ class Field():
|
||||||
return champ
|
return champ
|
||||||
|
|
||||||
class MenuField(Field):
|
class MenuField(Field):
|
||||||
etablissements = [ ("ENS", u"ENS Cachan"),
|
def __init__(self, id, prompt, fields):
|
||||||
("IUT Cachan", u"IUT Cachan"),
|
Field.__init__(self, id, prompt)
|
||||||
("Maximilien Sorre", u"Maximilien Sorre"),
|
self.fields = fields
|
||||||
("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 render(self, request, parser):
|
def render(self, request, parser):
|
||||||
variants = [ '', '1', '2', '2bis', '2ter' ]
|
champ = html.UL(CLASS="formulaire_field_%s" % self.id)
|
||||||
for i in variants:
|
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
||||||
eval('champ%s = html.UL(CLASS="formulaire_field")' %i)
|
menu = html.SELECT(NAME=self.id, onchange='TestEtudes()')
|
||||||
eval('champ%s.append(html.LI(CLASS="formulaire_id").append(self.prompt%s))'% (i,i))
|
for opt, legend in self.fields:
|
||||||
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))
|
menu.append(html.OPTION(VALUE=opt).append(legend))
|
||||||
return menu
|
champ.append(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))
|
|
||||||
|
|
||||||
if self.error_txt:
|
if self.error_txt:
|
||||||
error = wikiutil.renderText(request, parser, self.error_txt)
|
error = wikiutil.renderText(request, parser, self.error_txt)
|
||||||
champ.append(html.LI(CLASS="formulaire_error").append(error))
|
champ.append(html.LI(CLASS="formulaire_error").append(error))
|
||||||
|
|
||||||
if self.error_msg:
|
if self.error_msg:
|
||||||
request.add_msg(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):
|
class PasswordField(Field):
|
||||||
|
@ -215,7 +196,7 @@ class PasswordField(Field):
|
||||||
champ = html.UL(CLASS="formulaire_field")
|
champ = html.UL(CLASS="formulaire_field")
|
||||||
champ.append(html.LI(CLASS="formulaire_id").append(self.prompt))
|
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(CLASS="formulaire_input").append(input))
|
||||||
champ.append(html.LI().append('<img name="verdict" />'))
|
champ.append(html.LI().append('<img name="verdict" />'))
|
||||||
|
|
||||||
|
@ -291,13 +272,21 @@ class FormulaireInscription():
|
||||||
mac_field.ip = ip
|
mac_field.ip = ip
|
||||||
|
|
||||||
|
|
||||||
self.champs = [ Field("nom", "Nom", check=is_name),
|
self.champs = [
|
||||||
|
Field("nom", "Nom", check=is_name),
|
||||||
Field("prenom", u"Prénom", check=is_name),
|
Field("prenom", u"Prénom", check=is_name),
|
||||||
Field("tel", u"Numéro de téléphone", check=is_phonenumber),
|
Field("tel", u"Numéro de téléphone", check=is_phonenumber),
|
||||||
PasswordField("pass", u"Mot de passe", input_type='password'),
|
PasswordField("pass", u"Mot de passe", input_type='password'),
|
||||||
Field("dns", u"Nom de votre ordinateur", check=is_dns),
|
Field("dns", u"Nom de votre ordinateur", check=is_dns),
|
||||||
mac_field,
|
mac_field,
|
||||||
MenuField('etablissement', u"Choisissez votre établissement d'études")
|
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")
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue