Compare commits
1 commit
master
...
cleanup-ge
Author | SHA1 | Date | |
---|---|---|---|
![]() |
1fc605c7e0 |
1 changed files with 87 additions and 38 deletions
|
@ -883,57 +883,106 @@ def set_mail_ext(adher):
|
|||
|
||||
def set_etat_civil(adher):
|
||||
"""
|
||||
Modifie l'état-civil (nom, prénom) d'un adhérent.
|
||||
Modifie l'état-civil (nom, prénom) d'un adhérent si l'utilisateur est en
|
||||
droit de le faire.
|
||||
|
||||
Paramètres:
|
||||
- ``adher`` : instance de la classe :py:class:`ldap_crans.Adherent`
|
||||
|
||||
Utilises:
|
||||
- :py:func:`dialog`
|
||||
- :py:class:`ldap_crans.Adherent`
|
||||
- :py:func:`set_mail`
|
||||
|
||||
Peut lever:
|
||||
- :py:exc:`ValueError`
|
||||
|
||||
Retournes:
|
||||
- None ou 1 (en cas de problème)
|
||||
- ``adher``
|
||||
"""
|
||||
if u'Nounou' in adher.droits() and not isadm:
|
||||
arg = u'--title "Adresse mail 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
|
||||
# Si l'adhérent à modifier est Nounou et que l'utilisateur n'est pas
|
||||
# administrateur au sens de :py:func:`user_test.isadm`, on dit à
|
||||
# l'utilisateur qu'il est bien mignon mais qu'il a pas le droit.
|
||||
arguments_echec = [
|
||||
"--title", "Adresse mail de " + adher.Nom(),
|
||||
"--msgbox", "T'es bien mignon(ne) mais t'as le droit de faire ça.\n" + \
|
||||
"Il faut être administrateur pour modifier le mail d'une nounou.\n\n\n", "0", "0"
|
||||
]
|
||||
|
||||
# Affichage de la boîte dialogue de "NOPE"
|
||||
dialog(arguments_echec)
|
||||
return 1
|
||||
|
||||
# Construction de la boite de dialogue
|
||||
arg = u'--title "État-civil de %s" ' % adher.Nom()
|
||||
arg += u'--form "" 0 0 0 '
|
||||
arg += u'"Nom :" 1 1 "%s" 1 13 20 20 ' % adher.nom()
|
||||
arg += u'"Prénom :" 2 1 "%s" 2 13 20 20 ' % adher.prenom()
|
||||
arguments = [
|
||||
"--title", "État-civil de" + adher.Nom(),
|
||||
"--form", "", "0", "0", "0",
|
||||
"Nom :", "1", "1", adher.nom(), "1", "13", "20", "20",
|
||||
"Prénom :", "2", "1", adher.prenom(), "2", "13", "20", "20"
|
||||
]
|
||||
|
||||
# Affichage
|
||||
annul, result = dialog(arg)
|
||||
if annul: return
|
||||
# Affichage de la boîte de dialogue
|
||||
code_erreur, sortie = dialog(arguments)
|
||||
|
||||
# Traitement
|
||||
err = ''
|
||||
try: adher.nom(result[0])
|
||||
except ValueError, c: err += c.args[0] + '\n'
|
||||
if code_erreur:
|
||||
# Si le code d'erreur vaut 1, donc si l'utilisateur a annulé
|
||||
return 1
|
||||
|
||||
try: adher.prenom(result[1])
|
||||
except ValueError, c: err += c.args[0] + '\n'
|
||||
# Gestion des erreurs
|
||||
erreur = ''
|
||||
try:
|
||||
# Tentative de peuplement de la variable nom
|
||||
adher.nom(result[0])
|
||||
except ValueError as exception:
|
||||
erreur += exception.args[0] + '\n'
|
||||
|
||||
# Des erreurs ?
|
||||
if err:
|
||||
arg = u'--title "État-civil de %s" ' % adher.Nom()
|
||||
arg += u'--msgbox "%s\n\n" 0 0' % to_unicode(err)
|
||||
dialog(arg)
|
||||
# On redemande
|
||||
try:
|
||||
# Tentative de peuplement de la variable prenom
|
||||
adher.prenom(result[1])
|
||||
except ValueError as exception:
|
||||
erreur += exception.args[0] + '\n'
|
||||
|
||||
if erreur:
|
||||
# Construction de la liste des arguments à passer à dialog pour
|
||||
# construire une boîte d'erreur
|
||||
arguments_echec = [
|
||||
"--title", "État-civil de " + adher.Nom(),
|
||||
"--msgbox", to_unicode(erreur) + "\n\n", "0", "0"
|
||||
]
|
||||
# Affichage de la boîte de dialogue
|
||||
dialog(arguments_echec)
|
||||
|
||||
# Et on recommence tout le processus
|
||||
return set_etat_civil(adher)
|
||||
|
||||
# On change éventuellement le compte
|
||||
# Si l'état civil est modifié, on veut pouvoir (éventuellement) modifier
|
||||
# le compte Crans de l'adhérent (s'il en a un)
|
||||
if adher.compte():
|
||||
# On demande au câbleur s'il faut garder le compte ou pas
|
||||
arg = u'--title "Modification du compte de %s" ' % adher.Nom()
|
||||
arg += u'--colors --defaultno --yesno "Changer le login de l\'adhérent ?\n'
|
||||
arg += u'Son login actuel est %s.\n\n' % adher.compte()
|
||||
arg += u'Choisir Oui si l\'adhérent n\'a jamais utilisé son compte.\n\n'
|
||||
arg += u'\Zr\Z1AVERTISSEMENT :\n'
|
||||
arg += u'Le changement de login entraîne la suppression irréversible du compte, '
|
||||
arg += u'et donc de tous les fichiers, mails, etc. associés !\Z0\ZR\n\n\n" '
|
||||
arg += u'0 0'
|
||||
no = not dialog(arg)[0]
|
||||
# Si l'adhérent a un compte Crans, on prépare la liste des arguments
|
||||
# à passer au programme dialog.
|
||||
arguments = [
|
||||
"--title", "Modification du compte de " + adher.Nom(),
|
||||
"--colors", "--defaultno", "--yesno",
|
||||
"Changer le login de l'adhérent ?\n" + \
|
||||
"Son login actuel est " + adher.compte() + ".\n\n" + \
|
||||
"Choisir Oui si l'adhérent n'a jamais utilisé son compte.\n\n" + \
|
||||
# \Zr\Z1 et \Zn sont là pour faire l'effet stabilo rouge
|
||||
"\Zr\Z1AVERTISSEMENT :\n" + \
|
||||
"Le changement de login entraîne la suppression irréversible " + \
|
||||
"du compte et donc de tous les fichiers, mails, etc associés !\Zn\n\n\n",
|
||||
"0", "0"
|
||||
]
|
||||
|
||||
if no:
|
||||
# L'utilisateur n'utilise pas son compte, on le supprime...
|
||||
# Affichage de la boîte de dialogue
|
||||
non, _ = dialog(arguments)
|
||||
|
||||
if not non:
|
||||
# Si l'utilisateur a dit "Oui", c'est que l'adhérent n'utilise pas
|
||||
# son compte et que l'on peut le supprimer.
|
||||
adher.supprimer_compte()
|
||||
# ..et on le recrée (ou on met une adresse mail extérieure)
|
||||
# …et on le recrée (ou on met une adresse mail extérieure)
|
||||
if set_mail(adher):
|
||||
# Le changement d'adresse a été annulé, on recommence tout
|
||||
adher.restore()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue