'Compte':{'text':"Gestion du compte crans","adherent":"proprio","callback":TailCall(self.proprio_compte,update_obj='adherent'),'help':"Création/Suppression/Activation/Désactivation du compte, gestion des alias mails crans du compte"},
'GPGFingerprint':{'text':'Ajouter ou supprimer une empeinte GPG','attribut':attributs.gpgFingerprint},
'Remarques':{'text':'Ajouter ou supprimer une remarque à cet adhérent','attribut':attributs.info},
...
...
@@ -577,10 +577,10 @@ class Dialog(proprio.Dialog):
raiseEnvironmentError("On ne crée pas un adhérent en lui supprimant des machines et un compte")
defbox(values={}):
return(self.dialog.DIALOG_OK,"")
deftodo(output,adherent,success_cont,cont):
ifadherent.get('solde',[0])[0]>0:
self.dialog.msgbox("Solde de l'adhérent %s€ strictement positif, impossible de supprimer le compte\nRepasser le solde à 0€ pour supprimer le compte."%adherent.get('solde',[0])[0],
title=u"Déménagement de %s %s"%(adherent['prenom'][0],adherent["nom"][0]),
width=50,timeout=self.timeout)
raiseContinue(cont)
elifself.confirm_item(
item=adherent,
text=u"Supprimer toutes les machines et du compte crans de l'adhérent ci-dessous ?\n\n",
text_bottom=u"\nLa chambre de l'adhérent passera de plus en EXT.",
title=u"Déménagement de %s %s"%(adherent['prenom'][0],adherent["nom"][0]),
"0":{'text':"Déménagement sur le campus",'callback':self.adherent_chambre_campus,'help':"Déménagement vers une chambre sur le campus, on ne demande que le bâtiment et la chambre"},
"1":{'text':"Déménagement à l'extérieur en conservant les machines","callback":TailCall(self.adherent_chambre_ext,keep_machine=True,keep_compte=True),"help":"Pour concerver ses machines, il faut donner un adresse postale complète"},
"2":{'text':"Départ du campus en conservant son compte","callback":TailCall(self.adherent_chambre_ext,keep_machine=False,keep_compte=True),"help":"Supprime les machines mais concerve le compte crans, l'adresse passe en EXT sans plus d'information"},
"3":{'text':"Départ du campus en supprimant son compte","callback":TailCall(self.adherent_chambre_ext,keep_machine=False,keep_compte=False),"help":"Supprime les machines et le compte crans, l'adhérent reste dans la base de donnée, il est possible de mettre une redirection du mail crans vers une autre adresse dans bcfg2"},
}
menu_order=[str(i)foriinrange(4)]
defbox(default_item=None):
returnself.dialog.menu(
"Quel est le type du déménagement ?",
width=0,
height=0,
menu_height=0,
timeout=self.timeout,
item_help=1,
default_item=str(default_item),
title="Déménagement de %s %s"%(adherent['prenom'][0],adherent["nom"][0]),
'Compte':{'text':"Gestion du compte crans","club":"proprio","callback":TailCall(self.proprio_compte,update_obj='club'),'help':"Création/Suppression/Activation/Désactivation du compte, gestion des alias mails crans du compte"},
'Remarques':{'text':'Ajouter ou supprimer une remarque à ce club','attribut':attributs.info},
'Blackliste':{'text':'Modifier les blacklist de ce club','callback':self.modif_club_blacklist},
...
...
@@ -70,7 +74,7 @@ class Dialog(proprio.Dialog):
'Supprimer':{'text':"Supprimer le club de la base de donnée",'callback':TailCall(self.delete_club,del_cont=cont(proprio=None))},
@@ -75,8 +82,13 @@ class Dialog(machine.Dialog, blacklist.Dialog):
# Sinon on propage l'erreur pour l'afficher à l'utilisateur
else:
raise
ifisinstance(proprio,objets.adherent):
titre="Le compte ne sera créé que lors de l'enregistrement des données\n\nL'adresse mail de l'adhérent est : %s\nL'adhérent possède également l'alias : \n%s\n"%(proprio['mail'][0],proprio['canonicalAlias'][0])
else:
titre="Le compte ne sera créé que lors de l'enregistrement des données"
self.dialog.msgbox(
text="Le compte ne sera créé que lors de l'enregistrement des données\n\nL'adresse mail de l'adhérent est : %s\nL'adhérent possède également l'alias :\n%s\n"%(proprio['mail'][0],proprio['canonicalAlias'][0]),
text=titre,
title="Création du compte de %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),
width=75,
height=12,timeout=self.timeout,
...
...
@@ -181,17 +193,21 @@ class Dialog(machine.Dialog, blacklist.Dialog):
"""Permet la suppression du compte crans d'un proprio"""
deftodo(proprio,self_cont,cont):
ifforceorself.confirm_item(item=proprio,title="Voulez vous vraiement supprimer le compte de %s %s ?"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),defaultno=True):
(code,mail)=self.dialog.inputbox(
text="Il faut choisir une nouvelle adresse de contact.\n(On regarde s'il y a une adresse optionnel)",
title="Choix d'une adresse de contact pour %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),
init=str(proprio.get("mailExt",[""])[0]),
width=50,timeout=self.timeout)
ifnotcode==self.dialog.DIALOG_OK:
raiseContinue(cont)
elifnotmail:
raiseValueError("Il faut entrer une adresse mail")
ifisinstance(proprio,objets.adherent):
(code,mail)=self.dialog.inputbox(
text="Il faut choisir une nouvelle adresse de contact.\n(On regarde s'il y a une adresse optionnel)",
title="Choix d'une adresse de contact pour %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),
init=str(proprio.get("mailExt",[""])[0]),
width=50,timeout=self.timeout)
ifnotcode==self.dialog.DIALOG_OK:
raiseContinue(cont)
elifnotmail:
raiseValueError("Il faut entrer une adresse mail")
raiseEnvironmentError("On ne crée pas un adhérent en lui supprimant des machines et un compte")
defbox(values={}):
return(self.dialog.DIALOG_OK,"")
deftodo(output,proprio,success_cont,cont):
ifproprio.get('solde',[0])[0]>0:
self.dialog.msgbox("Solde de l'adhérent %s€ strictement positif, impossible de supprimer le compte\nRepasser le solde à 0€ pour supprimer le compte."%proprio.get('solde',[0])[0],
title=u"Déménagement de %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),
width=50,timeout=self.timeout)
raiseContinue(cont)
elifself.confirm_item(
item=proprio,
text=u"Supprimer toutes les machines et du compte crans de l'adhérent ci-dessous ?\n\n",
text_bottom=u"\nLa chambre de l'adhérent passera de plus en EXT.",
title=u"Déménagement de %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),
"0":{'text':"Déménagement sur le campus",'callback':self.proprio_chambre_campus,'help':"Déménagement vers une chambre sur le campus, on ne demande que le bâtiment et la chambre"},
"1":{'text':"Déménagement à l'extérieur en conservant les machines","callback":TailCall(self.proprio_chambre_ext,keep_machine=True,keep_compte=True),"help":"Pour concerver ses machines, il faut donner un adresse postale complète"},
"2":{'text':"Départ du campus en conservant son compte","callback":TailCall(self.proprio_chambre_ext,keep_machine=False,keep_compte=True),"help":"Supprime les machines mais concerve le compte crans, l'adresse passe en EXT sans plus d'information"},
"3":{'text':"Départ du campus en supprimant son compte","callback":TailCall(self.proprio_chambre_ext,keep_machine=False,keep_compte=False),"help":"Supprime les machines et le compte crans, l'adhérent reste dans la base de donnée, il est possible de mettre une redirection du mail crans vers une autre adresse dans bcfg2"},
}
menu_order=[str(i)foriinrange(4)]
defbox(default_item=None):
returnself.dialog.menu(
"Quel est le type du déménagement ?",
width=0,
height=0,
menu_height=0,
timeout=self.timeout,
item_help=1,
default_item=str(default_item),
title="Déménagement de %s %s"%(proprio.get('prenom',[''])[0],proprio["nom"][0]),