modif de gest_crans pour les inscriptions gratuites

darcs-hash:20080908215827-af139-d647a87d700c60ffb04463f1abf588176479fe3b.gz
This commit is contained in:
Jeremie Dimino 2008-09-08 23:58:27 +02:00
parent 07fa621324
commit 84f99bf6ea

View file

@ -22,6 +22,7 @@ Retournent None si pas d'objet trouv
To = ['fred@crans.org', 'glondu@crans.org', 'bos@crans.org', 'dimino@crans.org', 'salles@crans.org', 'cohen@crans.org'] To = ['fred@crans.org', 'glondu@crans.org', 'bos@crans.org', 'dimino@crans.org', 'salles@crans.org', 'cohen@crans.org']
import string, os, sys import string, os, sys
import dialog
from whos import aff from whos import aff
import signal, getopt import signal, getopt
from time import strftime, strptime, localtime, mktime from time import strftime, strptime, localtime, mktime
@ -37,6 +38,8 @@ import user_tests
isadm = user_tests.isadm() isadm = user_tests.isadm()
isdeconnecteur = user_tests.isdeconnecteur() isdeconnecteur = user_tests.isdeconnecteur()
dlg = dialog.Dialog()
def dialog(arg): def dialog(arg):
return affich_tools.dialog(u'Gestion des adhérents et machines du Crans', arg) return affich_tools.dialog(u'Gestion des adhérents et machines du Crans', arg)
@ -357,6 +360,10 @@ def set_mail(adher):
dialog(arg) dialog(arg)
return return
if not isinstance(adher, Club) and not adher.adherentPayant():
set_mail_ext(adher)
return
while 1: while 1:
arg = u'--title "Adresse mail de %s" ' % adher.Nom() arg = u'--title "Adresse mail de %s" ' % adher.Nom()
arg += u'--menu "Adresse mail de l\'adhérent :" 0 0 0 ' arg += u'--menu "Adresse mail de l\'adhérent :" 0 0 0 '
@ -935,6 +942,18 @@ def on_off(condition):
else: else:
return 'off' return 'off'
def set_type_de_connexion(adherent):
"""
Définition du type de connexion: gratuite limité ou normale.
"""
if isinstance(adherent, Club): return
annul, result = dlg.menu(u"Type de connexion",
choices=[("1", u"Connexion normale"),
("2", u"Connexion gratuite")])
if annul: return 1
adherent.adherentPayant(result == "1")
def set_admin(proprio): def set_admin(proprio):
""" """
Définition de l'état administratif : carte d'étudiant, paiement Définition de l'état administratif : carte d'étudiant, paiement
@ -963,11 +982,14 @@ def set_admin(proprio):
else: else:
texte.append(u'Carte vérifiée') texte.append(u'Carte vérifiée')
if isinstance(proprio, Club) or proprio.adherentPayant():
if paiement_ok == 'off' or iscontroleur: if paiement_ok == 'off' or iscontroleur:
checklist.append(u'"2" "Cotisation %d/%d réglée et charte signée" "%s"' % checklist.append(u'"2" "Cotisation %d/%d réglée et charte signée" "%s"' %
(ann_scol, ann_scol+1, paiement)) (ann_scol, ann_scol+1, paiement))
else: else:
texte.append(u'Cotisation/charte vérifiées') texte.append(u'Cotisation/charte vérifiées')
else:
texte.append(u'Adhérent non payant')
# TODO: controle pour le précâblage # TODO: controle pour le précâblage
if config.precab: if config.precab:
@ -1422,26 +1444,22 @@ def new_adher(adher):
* set_rque * set_rque
Retourne 1 si annulation. Retourne 1 si annulation.
""" """
step = 1
while 1: while True:
if step == 1:
if set_bases(adher): return 1 if set_bases(adher): return 1
steps = [set_etudes,
set_type_de_connexion,
set_admin,
set_mail,
set_rque]
step = 0
while step < len(steps):
if steps[step](adher): step -= 1
else: step += 1 else: step += 1
if step == 2:
if set_etudes(adher): step -= 1 if not confirm(adher): break
else: step += 1
if step == 3:
if set_admin(adher): step -= 1
else: step += 1
if step == 4:
if set_mail(adher): step -= 1
else: step += 1
if step == 5:
if set_rque(adher): step -= 1
else: step += 1
if step == 6:
if confirm(adher): step = 1
else: break
arg = u'--title "Inscription Mailing liste de communication ENS" --yesno "\nInscrire l\'adhérent à la mailing liste de communication de l\'ENS ?\n\n\n" 0 0' arg = u'--title "Inscription Mailing liste de communication ENS" --yesno "\nInscrire l\'adhérent à la mailing liste de communication de l\'ENS ?\n\n\n" 0 0'
no, res = dialog(arg) no, res = dialog(arg)
@ -1462,9 +1480,13 @@ def modif_adher(adher):
arg += u'--msgbox "ERREUR : la chambre de cet adhérent est inconnue !\n\n\n" 0 0' arg += u'--msgbox "ERREUR : la chambre de cet adhérent est inconnue !\n\n\n" 0 0'
dialog(arg) dialog(arg)
else: else:
payant = not isinstance(adher, Club) and not adher.adherentPayant()
arg = u'--title "Modification de %s" ' % adher.Nom() arg = u'--title "Modification de %s" ' % adher.Nom()
arg += u'--menu "Que souhaitez vous modifier ?" 0 0 0 ' arg += u'--menu "Que souhaitez vous modifier ?" 0 0 0 '
arg += u'"Administratif" "Précâblage, carte d\'étudiant, études" ' arg += u'"Administratif" "Précâblage, carte d\'étudiant, études" '
if not payant:
arg += u'"Connexion" "Changer de type de connexion(gratuit->payant)" '
if adher.compte(): changement_compte = u", compte sur zamok" if adher.compte(): changement_compte = u", compte sur zamok"
else: changement_compte = u"" else: changement_compte = u""
arg += u'"État-civil" "Nom, prénom%s" ' % changement_compte arg += u'"État-civil" "Nom, prénom%s" ' % changement_compte
@ -1474,6 +1496,7 @@ def modif_adher(adher):
arg += u'"Chambre" "Déménagement" ' arg += u'"Chambre" "Déménagement" '
arg += u'"Etudes" "Changement d\'année ou de filière" ' 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'"Téléphone" "Changement de numéro de téléphone" '
if payant:
arg += u'"Mail" "Créer un compte ou changer l\'adresse mail de contact" ' 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'"Alias" "Créer ou supprimer un alias mail" '
arg += u'"Remarque" "Ajouter ou modifer un commentaire" ' arg += u'"Remarque" "Ajouter ou modifer un commentaire" '
@ -1510,6 +1533,8 @@ def modif_adher(adher):
set_blackliste(adher) set_blackliste(adher)
elif res[0] == 'Charte des MA' : elif res[0] == 'Charte des MA' :
set_charte_MA(adher) set_charte_MA(adher)
elif res[0] == 'Connexion':
adher.adherentPayant(dlg.yesno(u"Passer à un compte payant ?") == 0)
elif res[0] == 'Adresse' or res[0] == 'Chambre': elif res[0] == 'Adresse' or res[0] == 'Chambre':
arg = u'--title "Déménagement de %s" ' % adher.Nom() arg = u'--title "Déménagement de %s" ' % adher.Nom()
arg += u'--menu "Question :" 0 0 0 ' arg += u'--menu "Question :" 0 0 0 '
@ -1982,8 +2007,15 @@ def menu_principal():
# déjà une machine fixe, sauf si on est membre actif # déjà une machine fixe, sauf si on est membre actif
# (expérimental) # (expérimental)
# On récupère la liste des machines fixes if not isinstance(proprio, Club) and not proprio.adherentPayant():
if proprio.__class__ == Club or not proprio.machines_fixes() or proprio.droits(): # Les gens qui ne paient pas n'ont le droit qu'à une
# seule machine fixe
if proprio.machines_fixes():
dlg.msgbox(u"Le type de compte de cet adhérent ne lui permet pas d'avoir de machine suplémentaire")
continue
else:
choix = "Fixe"
elif isinstance(proprio, Club) or not proprio.machines_fixes() or proprio.droits():
arg = u'--title "Nouvelle machine" ' arg = u'--title "Nouvelle machine" '
arg += u'--menu "Type de machine ?" 0 0 0 ' arg += u'--menu "Type de machine ?" 0 0 0 '
arg += u'"Fixe" "Machine fixe" ' arg += u'"Fixe" "Machine fixe" '