Patchs divers + mise jour de l'annuaire

darcs-hash:20040902051057-d1718-2e5bc8684bcff38b4e56318930da345f0b58f6b4.gz
This commit is contained in:
bernat 2004-09-02 07:10:57 +02:00
parent 1ec186d9dd
commit a2411248dc
5 changed files with 128 additions and 76 deletions

View file

@ -64,10 +64,8 @@ def set_bases(adher) :
try : adher.tel(result[2])
except ValueError, c : err += c.args[0] + '\n'
try : c = adher.chbre(result[3])
except ValueError, c : err += c.args[0] + '\n'
except EnvironmentError, c : err += c.args[0] + '\n'
err += _set_chbre(adher,result[3])
# Des erreurs ?
if err :
@ -77,12 +75,39 @@ def set_bases(adher) :
# On redemande
return set_bases(adher)
if c =='EXT' :
if adher.chbre() =='EXT' :
# Il faut demander l'adresse extérieure
if set_addr_ext(adher) :
# Annulation
return set_bases(adher)
def _set_chbre(adher,chbre) :
""" Attribution de la chambre chbre à l'adhérent fourni
Retourne une chaine (unicode) avec l'erreur éventuelle
"""
if chbre=='????' :
# Réservé à un usage interne
return u'Chambre invalide\n'
try : c = adher.chbre(chbre)
except EnvironmentError, c : return c.args[0] + '\n'
except ValueError, c :
try :
squatteur = c.args[1]
aff(squatteur)
arg = u'--title "Inscription adhérent" '
arg+= u'--yesno "Un adhérent (%s) occupe déjà cette chambre.\n' % squatteur.Nom()
arg+= u'\nChanger la chambre de cet adhérent ?" 0 0'
no, res = dialog(arg)
if no : raise # On laisse l'erreur
squatteur.chbre('????')
squatteur.save()
return _set_chbre(adher,chbre) # On recommence, le géneur doit être parti.
except :
return c.args[0] + '\n'
return u''
def set_addr_ext(adher) :
""" Définition de l'adresse extérieure d'un adhérent
La chambre de cet adhérent doit être EXT, sinon erreur """
@ -359,15 +384,17 @@ def set_compte(adher) :
# Première tentative
err = 0
try : login = adher.compte(login)
except EnvironmentError, c : err = 1 # Locké
except ValueError, c :
try :
c.arg[1]
c.args[1]
# Le compte existe => 2ème tentative (1ere lettre prénom + nom)
login = adher.prenom()[0]+login
login = login.lower()
err =2
except : err = 1
except :
err = 1
except EnvironmentError, c : err = 1 # Locké
if err :
while 1:
# Mauvais login => on demande
@ -657,7 +684,7 @@ def set_admin(proprio) :
if card :
arg+= u'"1" "Carte d\'étudiant %d/%d fournie" "%s" ' % (ann_scol,ann_scol+1, carte)
arg+= u'"2" "Adhésion %d/%d réglée et charte signée" "%s" ' % (ann_scol,ann_scol+1,paid_now)
if config.precab :
if config.precab == 1 :
arg+= u'"3" "Adhésion %d/%d réglée et charte signée (précâblage)" "%s" ' % (ann_scol+1,ann_scol+2,precab)
annul , result = dialog(arg)
@ -950,26 +977,33 @@ def modif_adher(adher) :
"""
Modification de l'adhérent fourni (instance de adhérent)
Retourne 1 si annulation.
"""
arg = u'--title "Modification de %s" ' % adher.Nom()
arg+= u'--menu "Que souhaitez vous modifier ?" 0 0 0 '
arg+= u'"Admistratif" "Précâblage, carte d\'étudiant, études" '
if adher.chbre() == 'EXT' :
arg+= u'"Adresse" "Déménagement" '
"""
# Préliminaire : si la chambre est inconnue on force la question
if adher.chbre() =='????' :
res=['Chambre']
arg = u'--title "Modification de %s" ' % adher.Nom()
arg+= u'--msgbox "ERREUR : la chambre de cet adhérent est inconnue !\n\n\n" 0 0'
dialog(arg)
else :
arg+= u'"Chambre" "Déménagement" '
arg+= u'"Etudes" "Changement d\'année ou de filière" '
arg+= u'"Téléphone" "Changement de numéro de téléphone" '
arg+= u'"Mail" "Créer un compte ou changer l\'adresse mail de contact" '
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
arg+= u'"Remarque" "Ajouter ou modifer un commentaire" '
if isadm :
arg+= u'"Droits" "Modifier les droits alloués à cet adhérent" '
if isdeconnecteur :
arg+= u'"Blackliste" "Modifier la blackliste de cet adhérent" '
annul, res = dialog(arg)
arg = u'--title "Modification de %s" ' % adher.Nom()
arg+= u'--menu "Que souhaitez vous modifier ?" 0 0 0 '
arg+= u'"Admistratif" "Précâblage, carte d\'étudiant, études" '
if adher.chbre() == 'EXT' :
arg+= u'"Adresse" "Déménagement" '
else :
arg+= u'"Chambre" "Déménagement" '
arg+= u'"Etudes" "Changement d\'année ou de filière" '
arg+= u'"Téléphone" "Changement de numéro de téléphone" '
arg+= u'"Mail" "Créer un compte ou changer l\'adresse mail de contact" '
arg+= u'"Alias" "Créer ou supprimer un alias mail" '
arg+= u'"Remarque" "Ajouter ou modifer un commentaire" '
if isadm :
arg+= u'"Droits" "Modifier les droits alloués à cet adhérent" '
if isdeconnecteur :
arg+= u'"Blackliste" "Modifier la blackliste de cet adhérent" '
annul, res = dialog(arg)
if annul : return 1
if annul : return 1
if res[0]=='Etudes' :
set_etudes(adher)
@ -993,21 +1027,18 @@ def modif_adher(adher) :
annul,res = dialog(arg)
if annul : return 1
e=0
try :
c = adher.chbre(res[0])
if c =='EXT' :
e = _set_chbre(adher,res[0])
if e :
arg = u'--title "Déménagement de la %s" ' % adher.chbre()
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
dialog(arg)
else :
if adher.chbre() =='EXT' :
# Il faut demander l'adresse extérieure
if set_addr_ext(adher) :
# Annulation
continue
break
except EnvironmentError, c : e = c.args[0]
except ValueError, c : e = c.args[0]
if e :
arg = u'--title "Déménagement de la %s" ' % adher.chbre()
arg+= u'--msgbox "%s\n\n\n" 0 0' % e
dialog(arg)
elif res[0]=='Adresse' :
arg = u'--title "Déménagement de %s" ' % adher.Nom()
arg+= u'--menu "Question :" 0 0 0 '
@ -1409,15 +1440,16 @@ def menu_principal() :
annul , result = dialog(arg)
if annul : continue
choix=result[0]
if choix=='Fixe' :
try : becane = machine(proprio,'fixe')
except ValueError, c:
arg = '--title "Nouvelle machine" '
arg += '--msgbox "%s\n\n\n" 0 0' % c.args[0]
dialog(arg)
continue
elif choix=='Wifi' :
becane = machine(proprio,'wifi')
try :
if choix=='Fixe' :
becane = machine(proprio,'fixe')
elif choix=='Wifi' :
becane = machine(proprio,'wifi')
except ValueError, c:
arg = '--title "Nouvelle machine" '
arg += '--msgbox "%s\n\n\n" 0 0' % c.args[0]
dialog(arg)
continue
if set_machine(becane) :
# Annulation
del(becane) ; becane = None
@ -1434,7 +1466,13 @@ def menu_principal() :
elif choix=='mMc' :
# Modif machine courante
if set_machine(becane) :
if not proprio :
proprio = becane.proprietaire()
if proprio.chbre() == '????' :
arg = u'--title "Ajout d\'une machine" '
arg+= u'--msgbox "ERREUR : la chambre de %s est inconnue !\n\n\n" 0 0' % proprio.Nom()
dialog(arg)
elif set_machine(becane) :
# Annulation des modifs
becane.restore()