Prise en charge de l'attribut mailExterieur comme redirection.
This commit is contained in:
parent
60d7087c60
commit
962d9df0f3
5 changed files with 100 additions and 54 deletions
|
@ -392,11 +392,11 @@ def set_etudes(adher):
|
|||
dialog(arg)
|
||||
return set_etudes(adher)
|
||||
|
||||
def set_mail(adher):
|
||||
def set_contact(adher):
|
||||
u"""
|
||||
Choix d'une adresse mail crans ou extérieure.
|
||||
Retourne ensuite le résultat de :
|
||||
* set_mail_ext si adresse ext
|
||||
* set_mail si adresse ext
|
||||
* set_compte si compte crans
|
||||
"""
|
||||
if u'Nounou' in adher.droits() and not isadm:
|
||||
|
@ -406,7 +406,7 @@ def set_mail(adher):
|
|||
return
|
||||
|
||||
if not isinstance(adher, Club) and not adher.adherentPayant():
|
||||
set_mail_ext(adher)
|
||||
set_mail(adher)
|
||||
return
|
||||
|
||||
while 1:
|
||||
|
@ -426,31 +426,72 @@ def set_mail(adher):
|
|||
elif result[0].split()[1] == u'un':
|
||||
if not set_compte(adher): break
|
||||
else:
|
||||
if not set_mail_ext(adher): break
|
||||
if not set_mail(adher): break
|
||||
|
||||
def set_mail_ext(adher):
|
||||
u"""
|
||||
Demande l'adresse mail extérieure d'un adhérent
|
||||
def set_mail(adher):
|
||||
"""Demande l'adresse mail extérieure d'un adhérent
|
||||
"""
|
||||
default = adher.mail()
|
||||
if default.endswith('@crans.org'):
|
||||
# C'était une adresse crans
|
||||
default = ''
|
||||
|
||||
arg = u'--title "Adresse mail extérieure pour %s" ' % adher.Nom()
|
||||
arg = u'--title "Adresse mail pour %s" ' % adher.Nom()
|
||||
arg += u'--inputbox "Adresse : " 0 0 "%s"' % default
|
||||
annul, result = dialog(arg)
|
||||
if annul: return 1
|
||||
|
||||
try: adher.mail(result[0])
|
||||
except ValueError, c:
|
||||
arg = u'--title "Adresse mail de %s" ' % adher.Nom()
|
||||
arg += u'--msgbox "%s\n\n\n" 0 0' % to_unicode(c.args[0])
|
||||
dialog(arg)
|
||||
return set_mail(adher)
|
||||
|
||||
def set_mail_ext(adher):
|
||||
"""Récupère une éventuelle adresse de redirection en cas de choix de compte
|
||||
Crans. Permet en règle générale d'ajouter un mail extérieur au moins pour
|
||||
les récupérations de mot de passe ou autre.
|
||||
|
||||
"""
|
||||
if not adher.compte():
|
||||
return 0
|
||||
|
||||
if u'Nounou' in adher.droits() and not isadm:
|
||||
arg = u'--title "Adresse mail extérieure de %s" ' % adher.Nom()
|
||||
arg += u'--msgbox "Vous n\'avez pas les droits necessaires pour effectuer cette opération.\n\n\n" 0 0'
|
||||
dialog(arg)
|
||||
return
|
||||
|
||||
no = False
|
||||
|
||||
if 'compte' in adher.modifs:
|
||||
arg = u'--title "Redirection des mails de %s" ' % (adher.Nom(),)
|
||||
arg += u'--colors --yesno '
|
||||
arg += u'"L\'adhérent souhaite-t-il mettre en place une redirection de ses emails vers une autre boîte ?\n'
|
||||
arg += u'Cette redirection lui permettra aussi de récupérer son mot de passe Crans en cas de perte de celui-ci." '
|
||||
arg += u'0 0'
|
||||
no, _ = dialog(arg)
|
||||
|
||||
if no:
|
||||
return 0
|
||||
|
||||
arg = u'--title "Adresse mail extérieure pour %s" ' % adher.Nom()
|
||||
arg += u'--inputbox "Adresse : " 0 0 "%s"' % default
|
||||
annul, result = dialog(arg)
|
||||
if annul:
|
||||
return 1
|
||||
|
||||
try:
|
||||
adher.email_exterieur(result[0])
|
||||
except ValueError as c:
|
||||
arg = u'--title "Adresse mail extérieure de %s" ' % adher.Nom()
|
||||
arg += u'--msgbox "%s\n\n\n" 0 0' % to_unicode(c.args[0])
|
||||
dialog(arg)
|
||||
return set_mail_ext(adher)
|
||||
|
||||
def set_etat_civil(adher):
|
||||
u"""
|
||||
"""
|
||||
Modifie l'état-civil (nom, prénom) d'un adhérent.
|
||||
"""
|
||||
if u'Nounou' in adher.droits() and not isadm:
|
||||
|
@ -502,7 +543,7 @@ def set_etat_civil(adher):
|
|||
# L'utilisateur n'utilise pas son compte, on le supprime...
|
||||
adher.supprimer_compte()
|
||||
# ..et on le recrée (ou on met une adresse mail extérieure)
|
||||
if set_mail(adher):
|
||||
if set_contact(adher):
|
||||
# Le changement d'adresse a été annulé, on recommence tout
|
||||
adher.restore()
|
||||
return set_etat_civil(adher)
|
||||
|
@ -2027,7 +2068,7 @@ def new_adher(adher):
|
|||
* set_bases
|
||||
* set_etudes
|
||||
* set_admin
|
||||
* set_mail
|
||||
* set_contact
|
||||
* set_rque
|
||||
Retourne 1 si annulation.
|
||||
"""
|
||||
|
@ -2035,12 +2076,15 @@ def new_adher(adher):
|
|||
while True:
|
||||
if set_bases(adher): return 1
|
||||
|
||||
steps = [set_etudes,
|
||||
set_adhesion,
|
||||
set_connexion,
|
||||
set_admin,
|
||||
set_mail,
|
||||
set_rque]
|
||||
steps = [
|
||||
set_etudes,
|
||||
set_adhesion,
|
||||
set_connexion,
|
||||
set_admin,
|
||||
set_contact,
|
||||
set_mail_ext,
|
||||
set_rque,
|
||||
]
|
||||
|
||||
step = 0
|
||||
while step < len(steps):
|
||||
|
@ -2084,6 +2128,8 @@ def modif_adher(adher):
|
|||
arg += u'"Telephone" "Changement de numéro de téléphone" '
|
||||
if payant:
|
||||
arg += u'"Mail" "Créer un compte ou changer l\'adresse mail de contact" '
|
||||
if 'cransAccount' in adher._data['objectClass']:
|
||||
arg += u'"MailExt" "Ajouter une adresse mail de contact extérieur." '
|
||||
arg += u'"Alias" "Créer ou supprimer un alias mail" '
|
||||
arg += u'"GPGFingerprint" "Ajouter ou supprimer une empreinte GPG" '
|
||||
arg += u'"Remarque" "Ajouter ou modifer un commentaire" '
|
||||
|
@ -2111,7 +2157,9 @@ def modif_adher(adher):
|
|||
elif res[0] == 'Administratif':
|
||||
set_admin(adher)
|
||||
elif res[0] == 'Mail':
|
||||
set_mail(adher)
|
||||
set_contact(adher)
|
||||
elif res[0] == 'MailExt':
|
||||
set_mail_ext(adher)
|
||||
elif res[0] == 'Remarque':
|
||||
set_rque(adher)
|
||||
elif res[0] == 'Droits':
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue