[gest_crans2.py,dialogwizard] propreté ++

darcs-hash:20090929153951-bd074-139e274dc1bfc33cb3d07deadbc9d7723daaaed8.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-09-29 17:39:51 +02:00
parent 932ce0e70b
commit f5bae74159
2 changed files with 102 additions and 86 deletions

View file

@ -38,7 +38,8 @@ sys.path.append('/usr/scripts')
from ldap_crans import crans_ldap, script_utilisateur from ldap_crans import crans_ldap, script_utilisateur
import user_tests import user_tests
from config import ann_scol from config import ann_scol
from crans.dialogwizard.wizard import Scenario, Running, step_scenario, unit_scenario from crans.dialogwizard.wizard import Scenario, Running, \
step_scenario, unit_scenario
from crans.dialogwizard.dialogwizard import DialogStepGenerator, error_handler from crans.dialogwizard.dialogwizard import DialogStepGenerator, error_handler
db = crans_ldap() db = crans_ldap()
@ -60,45 +61,49 @@ dsgen = DialogStepGenerator(u'Gestion des adhérents et machines du Crans')
## Fonctions de remplissage ou modification des paramètres d'un adhérent ## Fonctions de remplissage ou modification des paramètres d'un adhérent
prompt_new_adher = \ prompt_new_adher = \
dsgen.form_step (u"Inscription adhérent", '', dsgen.form_step (
[{'var': 'nom', 'label': 'Nom :', 'field_len': 20}, u"Inscription adhérent", '',
{'var': 'prenom', 'label': u'Prénom :', 'field_len': 20}, [{'var': 'nom', 'label': 'Nom :', 'field_len': 20},
{'var': 'tel', 'label': u'Numéro de téléphone', 'field_len': 13}, {'var': 'prenom', 'label': u'Prénom :', 'field_len': 20},
{'var': 'chbre', 'label': u'Chambre (EXT si pas sur le campus) :', 'field_len': 5} ]) {'label': u'Numéro de téléphone', 'var': 'tel', 'field_len': 13},
{'label': u'Chambre (EXT si pas sur le campus) :',
'var': 'chbre', 'field_len': 5} ])
prompt_addr_ext = \ prompt_addr_ext = \
dsgen.form_step (u"Adresse extérieure de %(nom)s", '', dsgen.form_step (
[{'var': 'addr1', 'label': 'Adresse', 'field_len': 40}, u"Adresse extérieure de %(nom)s", '',
{'var': 'addr2', 'label': '', 'field_len': 40}, [{'var': 'addr1', 'label': 'Adresse', 'field_len': 40},
{'var': 'addr3', 'label': 'Code Postal :', 'field_len': 6}, {'var': 'addr2', 'label': '', 'field_len': 40},
{'var': 'addr4', 'label': 'Ville :', 'field_len': 20}]) {'var': 'addr3', 'label': 'Code Postal :', 'field_len': 6},
{'var': 'addr4', 'label': 'Ville :', 'field_len': 20}])
def prompt_etudes(): def prompt_etudes():
etab_step = \ etab_step = \
dsgen.select_step(u'Études de %(nom)s (1/3)', dsgen.select_step(
u"Choisissez l'établissement :", u'Études de %(nom)s (1/3)',
'etud1', u"Choisissez l'établissement :",
[("ENS", u"ENS -- École Normale Supérieure de Cachan "), 'etud1',
("IUT Cachan", u"IUT Cachan"), [("ENS", u"ENS -- École Normale Supérieure de Cachan"),
("Maximilien Sorre", u"Maximilien Sorre"), ("IUT Cachan", u"IUT Cachan"),
("Gustave Eiffel", u"Gustave Eiffel"), ("Maximilien Sorre", u"Maximilien Sorre"),
("P1", u"P1 -- Université Panthéon Sorbonne"), ("Gustave Eiffel", u"Gustave Eiffel"),
("P2", u"P2 -- Université Panthéon Assas"), ("P1", u"P1 -- Université Panthéon Sorbonne"),
("P3", u"P3 -- Université de la Sorbonne Nouvelle"), ("P2", u"P2 -- Université Panthéon Assas"),
("P4", u"P4 -- Université Paris Sorbonne"), ("P3", u"P3 -- Université de la Sorbonne Nouvelle"),
("P5", u"P5 -- Université René Descartes"), ("P4", u"P4 -- Université Paris Sorbonne"),
("P6", u"P6 -- Université Pierre et Marie Curie"), ("P5", u"P5 -- Université René Descartes"),
("P7", u"P7 -- Université Denis Diderot"), ("P6", u"P6 -- Université Pierre et Marie Curie"),
("P8", u"P8 -- Université Vincennes Saint Denis"), ("P7", u"P7 -- Université Denis Diderot"),
("P9", u"P9 -- Université Paris Dauphine"), ("P8", u"P8 -- Université Vincennes Saint Denis"),
("P10", u"P10 -- Université de Nanterre"), ("P9", u"P9 -- Université Paris Dauphine"),
("P11", u"P11 -- Université de Paris Sud (Orsay)"), ("P10", u"P10 -- Université de Nanterre"),
("P12", u"P12 -- Université Val de Marne"), ("P11", u"P11 -- Université de Paris Sud (Orsay)"),
("P13", u"P13 -- Université Paris Nord"), ("P12", u"P12 -- Université Val de Marne"),
("IUFM", u"IUFM"), ("P13", u"P13 -- Université Paris Nord"),
("Personnel ENS", u"Personnel ENS"), ("IUFM", u"IUFM"),
("Personnel CROUS", u"Personnel CROUS"), ("Personnel ENS", u"Personnel ENS"),
("autre", u"autre")]) ("Personnel CROUS", u"Personnel CROUS"),
("autre", u"autre")])
etab_other = \ etab_other = \
dsgen.input_step(u'Études de %(nom)s (1/3)', dsgen.input_step(u'Études de %(nom)s (1/3)',
@ -120,7 +125,8 @@ def prompt_etudes():
year_step = \ year_step = \
dsgen.input_step(u"Études de %(nom)s (2/3)", dsgen.input_step(u"Études de %(nom)s (2/3)",
u"Année adminstrative :\nET UNIQUEMENT l'ANNEE : la section sera demandée après.", u"Année adminstrative :\nET UNIQUEMENT l'ANNEE :"
"la section sera demandée après.",
'etud2') 'etud2')
section_step = \ section_step = \
@ -129,45 +135,51 @@ def prompt_etudes():
'etud3') 'etud3')
section_step = \ section_step = \
dsgen.select_step(u'Études de %(nom)s (3/3)', dsgen.select_step(
u'Choisissez la section :', u'Études de %(nom)s (3/3)',
'etud3', u'Choisissez la section :',
[ ("A0", "Informatique"), 'etud3',
("A1", "Mathématiques"), [ ("A0", "Informatique"),
("A2", "Physique fondamentale"), ("A1", "Mathématiques"),
("A''2", "Chimie"), ("A2", "Physique fondamentale"),
{'label': "A'2", 'item': "Physique appliquée", ("A''2", "Chimie"),
'show_cond': (lambda d: d['etud2'] in ['3','4'])}, {'label': "A'2", 'item': "Physique appliquée",
("A3", "Biochimie"), 'show_cond': (lambda d: d['etud2'] in ['3','4'])},
{'label': "B123", 'item':"Technologie mécanique", ("A3", "Biochimie"),
'show_cond': (lambda d: d['etud2'] == '1') }, {'label': "B123", 'item':"Technologie mécanique",
{'label': "B1", 'item': "Mécanique", 'show_cond': (lambda d: d['etud2'] == '1') },
'show_cond': (lambda d: d['etud2'] in ['2','3','4'])}, {'label': "B1", 'item': "Mécanique",
{'label': "B2", 'item': "Génie civil", 'show_cond': (lambda d: d['etud2'] in ['2','3','4'])},
'show_cond': (lambda d: d['etud2'] in ['2','3','4'])}, {'label': "B2", 'item': "Génie civil",
{'label': "B3", 'item': "Génie mécanique", 'show_cond': (lambda d: d['etud2'] in ['2','3','4'])},
'show_cond': (lambda d: d['etud2'] in ['2','3','4'])}, {'label': "B3", 'item': "Génie mécanique",
("EEA", "Électronique, électrotechnique et automatique"), 'show_cond': (lambda d: d['etud2'] in ['2','3','4'])},
("C", "Art et création industrielle"), ("EEA", "Électronique, électrotechnique et automatique"),
("D2", "Economie gestion"), ("C", "Art et création industrielle"),
("D3", "Sciences sociales"), ("D2", "Economie gestion"),
("E", "Anglais") ]) ("D3", "Sciences sociales"),
("E", "Anglais") ])
labo_step = \ labo_step = \
dsgen.select_step(u'Études de %(nom)s (3/3)', dsgen.select_step(
u'Choisissez le laboratoire :', u'Études de %(nom)s (3/3)',
'etud3', u'Choisissez le laboratoire :',
[ ("CMLA", u"Centre de Mathématiques et de Leurs Applications"), 'etud3',
("GAPP", u"Groupe d'Analyse des Politiques Publiques"), [ ("CMLA", u"Centre de Mathématiques et de Leurs Applications"),
("IDHE", u"Institutions et Dynamiques Historiques de l'Economie"), ("GAPP", u"Groupe d'Analyse des Politiques Publiques"),
("LBPA", u"Laboratoire de Biotechnologies et Pharmacologie génétique Appliquées"), ("IDHE", u"Institutions et Dynamiques Historiques de l'Economie"),
("LMT", u"Laboratoire de Mécanique et Technologie"), ("LBPA", u"Laboratoire de Biotechnologies "
("LPQM", u"Laboratoire de Photonique Quantique et Moléculaire"), u"et Pharmacologie génétique Appliquées"),
("LSV", u"Laboratoire de Spécification et Vérification"), ("LMT", u"Laboratoire de Mécanique et Technologie"),
("LURPA", u"Laboratoire Universitaire de Recherche en Production Automatisée"), ("LPQM", u"Laboratoire de Photonique Quantique et Moléculaire"),
("PPSM", u"Laboratoire de Photophysique et Photochimie Supramoléculaires et Macromoléculaires"), ("LSV", u"Laboratoire de Spécification et Vérification"),
("SATIE", u"Systèmes et Applications des Technologies de l'Information et de l'Energie"), ("LURPA", u"Laboratoire Universitaire de Recherche "
("STEF", u"Sciences Techniques Education Formation") ]) u"en Production Automatisée"),
("PPSM", u"Laboratoire de Photophysique et "
u"Photochimie Supramoléculaires et Macromoléculaires"),
("SATIE", u"Systèmes et Applications des Technologies"
u" de l'Information et de l'Energie"),
("STEF", u"Sciences Techniques Education Formation") ])
etudes_scenar = Scenario() etudes_scenar = Scenario()
etudes_scenar.nest(etab_step) etudes_scenar.nest(etab_step)
@ -198,20 +210,25 @@ prompt_connexion = \
('2', 'Inscription gratuite')]) ('2', 'Inscription gratuite')])
prompt_papiers = \ prompt_papiers = \
dsgen.checklist_step('', u'État administratif de %(nom)s', dsgen.checklist_step(
[('carte', u"Carte d'étudiant %s-%s fourniee" % (ann_scol, ann_scol+1)), '', u'État administratif de %(nom)s',
('paiement%s' % ann_scol, u'Cotisation %s réglée et charte signée' % ann_scol), [('carte', u"Carte d'étudiant %s-%s fourniee" % (ann_scol, ann_scol+1)),
{'var': 'chartema', 'item': u'Charte des membres actifs signée', ('paiement%s' % ann_scol, u'Cotisation %s réglée et charte signée' % ann_scol),
'show_cond': (lambda d: isbureau or isadm)}, {'var': 'chartema', 'item': u'Charte des membres actifs signée',
{'var': '+p', 'item': u'Paiement et charte vérifiées', 'show_cond': (lambda d: isbureau or isadm)},
'show_cond': (lambda d: iscontroleur)}, {'var': '+p', 'item': u'Paiement et charte vérifiées',
{'var': '+c', 'item': u"Carte d'étudiant vérifiée", 'show_cond': (lambda d: iscontroleur)},
'show_cond': (lambda d: iscontroleur)} {'var': '+c', 'item': u"Carte d'étudiant vérifiée",
]) 'show_cond': (lambda d: iscontroleur)}
])
prompt_login = \ prompt_login = \
dsgen.input_step(u'Choix du login pour %(nom)s', dsgen.input_step(u'Choix du login pour %(nom)s',
u'Le choix du login doit faire au maximum 15 caractères\nIl ne doit *pas* être un pseudo ou un prénom, mais doit être relié au nom de famille\nSeuls les caractères alphabétiques et le - sont autorisés', 'login') u'Le choix du login doit faire au maximum 15 caractères\n'
u"Il ne doit *pas* être un pseudo ou un prénom,"
u'mais doit être relié au nom de famille\n'
u'Seuls les caractères alphabétiques et le - sont autorisés',
'login')
prompt_mailaddress = \ prompt_mailaddress = \
dsgen.input_step(u'Addresse mail extérieure de %(nom)s', dsgen.input_step(u'Addresse mail extérieure de %(nom)s',

View file

@ -14,8 +14,7 @@ def really_quit(dico):
raise EndScenario("game over!", data = dico) raise EndScenario("game over!", data = dico)
def error_handler(exc): def error_handler(exc):
sexc = (str(exc)) dialog.Dialog().msgbox(str(exc), width=0, height =0, title = 'Erreur :')
dialog.Dialog().msgbox(sexc, title = 'Erreur :')
raise TryAgain() raise TryAgain()
class DialogStepGenerator: class DialogStepGenerator: