[dialogwizard,gest_crans2] on utilise True et Flase pour cocher

Ignore-this: c1a8930338b851e26506652dd09db5d8

darcs-hash:20090916190224-bd074-087e2f6b311e24d212376f10e3fa45a6d151ab01.gz
This commit is contained in:
Antoine Durand-Gasselin 2009-09-16 21:02:24 +02:00
parent 42b74ec0e3
commit a62d0a2257
3 changed files with 37 additions and 26 deletions

View file

@ -40,12 +40,13 @@ import os, sys#, string
# import re # import re
# #
# import affich_tools, config # import affich_tools, config
from config import ann_scol
# from lock import make_lock, remove_lock # from lock import make_lock, remove_lock
from ldap_crans import crans_ldap, script_utilisateur#, blacklist_items, ann_scol, droits_possibles, droits_critiques, smtpserv, #from ldap_crans import crans_ldap, script_utilisateur#, blacklist_items, ann_scol, droits_possibles, droits_critiques, smtpserv,
sys.path.append('/usr/scripts') sys.path.append('/usr/scripts')
from lib.dialogwizard.wizard import Scenario, Running, step_scenario, unit_scenario from lib.dialogwizard.wizard import Scenario, Running, step_scenario, unit_scenario
from lib.dialogwizard.dialogwizard import DialogStepGenerator from lib.dialogwizard.dialogwizard import DialogStepGenerator
from ldap_crans import Adherent #, AssociationCrans, Club #from ldap_crans import Adherent #, AssociationCrans, Club
# from ldap_crans import Machine, MachineFixe, MachineWifi, MachineCrans, BorneWifi # from ldap_crans import Machine, MachineFixe, MachineWifi, MachineCrans, BorneWifi
# import user_tests # import user_tests
@ -201,17 +202,23 @@ def prompt_etudes(name):
return etudes_scenar return etudes_scenar
# prompt_connexion = \ prompt_connexion = \
# dsgen.form_step (u"Type de connexion", dsgen.select_step (u"Type de connexion",
# u'Inscription adhérent', u'Inscription adhérent',
# 'typ', [('1', 'Adhésion'), 'typ', [('1', 'Adhésion'),
# ('2', 'Inscription gratuite')]) ('2', 'Inscription gratuite')])
prompt_papiers = \ prompt_papiers = \
dsgen.checklist_step('', u'État administratif de %(nom)s', dsgen.checklist_step('', u'État administratif de %(nom)s',
[('carte', u"Carte d'étudiant %s-%s fourniee" % (ann_scol, ann_scol+1)), [('carte', u"Carte d'étudiant %s-%s fourniee" % (ann_scol, ann_scol+1)),
('paiement%s' % ann_scol, u'Cotisation %s réglée et charte signée' % ann_scol), ('paiement%s' % ann_scol, u'Cotisation %s réglée et charte signée' % ann_scol),
('chartema', u'Charte des membres actifs signée')]) {'var': 'chartema', 'item': u'Charte des membres actifs signée',
'show_cond': (lambda d: isbureau or isadm)},
{'var': '+p', 'item': u'Paiement et charte vérifiées',
'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',
@ -226,16 +233,16 @@ dummy_scenar.nest(prompt_new_adher)
dummy_scenar.nest(prompt_addr_ext) dummy_scenar.nest(prompt_addr_ext)
dummy_scenar.quote(prompt_etudes('toto')) dummy_scenar.quote(prompt_etudes('toto'))
Running(dummy_scenar).run() print Running(dummy_scenar).run()
def inscrit_in_ldap(adherent): # def inscrit_in_ldap(adherent):
"""Prend en argument un dictionnaire, et l'inscrit dans la base ldap # """Prend en argument un dictionnaire, et l'inscrit dans la base ldap
#
Les champs suivants ont OBLIGATOIRES: # Les champs suivants ont OBLIGATOIRES:
nom, prenom, chbre, mail, login # nom, prenom, chbre, mail, login
#
Les champs suivants sont OPTIONNELS: # Les champs suivants sont OPTIONNELS:
carte, paiementYEAR, tel, etud1, etud2, etud3, addr1, addr2, addr3, addr4 # carte, paiementYEAR, tel, etud1, etud2, etud3, addr1, addr2, addr3, addr4
""" # """
#
adher = Adherent() # adher = Adherent()

View file

@ -70,16 +70,20 @@ class DialogStepGenerator():
sliste = [] sliste = []
for c in liste: for c in liste:
try: try:
sliste.append((c[0], c[1], dico.get(c[0], 'off'))) if dico.get(c[0], False): checked = 'on'
else: checked = 'off'
sliste.append((c[0], c[1], checked))
except Exception,e: except Exception,e:
if c.get('show_cond', lambda x : True)(dico): if c.get('show_cond', lambda x : True)(dico):
sliste.append((c['var'], c['item'], dico.get(c['var'], 'off'))) if dico.get(c['var'], False): checked = 'on'
else: checked = 'off'
sliste.append((c['var'], c['item'], checked))
rc, res = self.d.checklist(enonce, title = title, choices = sliste, **kw) rc, res = self.d.checklist(enonce, title = title, choices = sliste, **kw)
self._check_rc(rc) self._check_rc(rc)
for tag, item, status in liste: for tag, item, status in liste:
if tag in res: if tag in res:
dico[tag] = 'on' dico[tag] = True
else: else:
dico[tag] = 'off' dico[tag] = False
return dico return dico
return Step(fn) return Step(fn)

View file

@ -90,15 +90,15 @@ def unit_scenario():
class Running: class Running:
u"""To run scenarios""" u"""To run scenarios"""
env = {}
defaults = {} defaults = {}
steps = None steps = None
stack = None stack = None
def __init__(self, scenario): def __init__(self, scenario, env = {}):
if not isinstance(scenario, Scenario): if not isinstance(scenario, Scenario):
raise TypeError("Can only run Scenarios") raise TypeError("Can only run Scenarios")
accu = scenario.steps accu = scenario.steps
self.env = env
# To avoid brain spots on the walls, we shall reverse the list # To avoid brain spots on the walls, we shall reverse the list
# of steps. # of steps.