diff --git a/gestion/dialog/adherent.py b/gestion/dialog/adherent.py index 91296a81..ab889c2c 100644 --- a/gestion/dialog/adherent.py +++ b/gestion/dialog/adherent.py @@ -51,7 +51,7 @@ class Dialog(proprio.Dialog): 'Supprimer':[a.nounou, a.bureau], } menu = { - 'Administratif' : {'text' : "Adhésion, carte étudiant, chartes", "callback":self.adherent_administratif}, + 'Administratif' : {'text' : "Adhésion, chartes", "callback":self.adherent_administratif}, 'Personnel' : {'text' : "Nom, prénom, téléphone... (ajouter l'age ?)", 'callback':self.adherent_personnel}, 'Études' : {'text' : "Étude en cours", "callback":self.adherent_etudes}, 'Chambre' : {'text' : 'Déménagement', "callback":self.adherent_chambre}, @@ -124,17 +124,13 @@ class Dialog(proprio.Dialog): "Adhésion": [a.cableur, a.nounou], 'Connexion': [a.cableur, a.nounou], "Charte MA" : [a.nounou, a.bureau], - "Carte Étudiant" : [a.nounou, a.cableur, a.tresorier], } menu = { "Adhésion" : {"text":"Pour toute réadhésion *sans* connexion.", "help":"", "callback":self.adherent_adhesion}, 'Connexion' : {'text': "Mise à jour de l'accès Internet (effectue la réadhésion si besoin)", "help":"", 'callback':self.adherent_connexion}, - "Carte Étudiant" : {"text" : "Validation de la carte étudiant", "help":"", "callback":self.adherent_carte_etudiant}, "Charte MA" : {"text" : "Signature de la charte des membres actifs", "help":'', "callback":self.adherent_charte}, } menu_order = ["Adhésion", 'Connexion'] - if self.has_right(a.tresorier, adherent) or not adherent.carte_controle(): - menu_order.append("Carte Étudiant") menu_order.append("Charte MA") def box(default_item=None): return self.dialog.menu( @@ -484,76 +480,6 @@ class Dialog(proprio.Dialog): return self.proprio_choose_paiement(proprio=adherent, cont=self_cont, cancel_cont=lcont) return cont - def adherent_carte_etudiant(self, cont, adherent, values={}, cancel_cont=None): - # Dictionnaire décrivant quelle est la valeur booléenne à donner à l'absence de l'attribut - a = attributs - choices = [] - if self.has_right(a.tresorier, adherent) or not adherent.carte_controle(): - choices.append((a.carteEtudiant.ldap_name, "Carte étudiant présentée", 1 if adherent[a.carteEtudiant.ldap_name] or values.get(a.carteEtudiant.ldap_name, False) else 0)) - if self.has_right(a.tresorier, adherent): - choices.append(("controleCarte", "La carte a-t-elle été controlée", 1 if adherent.carte_controle() or values.get("controleCarte", False) else 0)) - - if not choices: - self.dialog.msgbox("Carte d'étudiant déjà validée et non modifiable", title="Gestion de la carte étudiant", width=0, height=0) - if cancel_cont: - cancel_cont(cont=cont) - try: - cont(cancel_cont=cancel_cont) - except TypeError: - pass - raise Continue(cont) - - def box(): - return self.dialog.checklist("Gestion de la carte étudiant", - height=0, - width=0, - timeout=self.timeout, - list_height=7, - choices=choices, - title="Gestion de la carte étudiant") - - def todo(values, adherent, cont): - # On met à jour chaque attribut si sa valeur à changé - with self.conn.search(dn=adherent.dn, scope=0, mode='rw')[0] as adherent: - # Si on est trésorier et que controleCarte a changer on enregistre le changement - if self.has_right(a.tresorier, adherent) and values["controleCarte"] and not adherent.carte_controle(): - if adherent["controle"]: - adherent["controle"] = u"c%s" % adherent["controle"][0] - else: - adherent["controle"] = u"c" - elif self.has_right(a.tresorier, adherent) and not values["controleCarte"] and adherent.carte_controle(): - adherent["controle"] = unicode(adherent["controle"][0]).replace('c','') - if not adherent["controle"][0]: - adherent["controle"] = [] - # Si la carte n'est pas validé ou qu'on est trésorier, on sauvegarde les changements - if values[a.carteEtudiant.ldap_name] and not adherent[a.carteEtudiant.ldap_name] and (not adherent.carte_controle() or self.has_right(a.tresorier, adherent)): - adherent[a.carteEtudiant.ldap_name] = u"TRUE" - elif not values[a.carteEtudiant.ldap_name] and adherent[a.carteEtudiant.ldap_name] and (not adherent.carte_controle() or self.has_right(a.tresorier, adherent)): - adherent[a.carteEtudiant.ldap_name] = [] - if adherent["controle"]: - adherent["controle"] = unicode(adherent["controle"][0]).replace('c','') - if not adherent["controle"][0]: - adherent["controle"] = [] - adherent.validate_changes() - adherent.history_gen() - adherent.save() - # On s'en va en mettant à jour dans la continuation la valeur de obj - raise Continue(cont(adherent=adherent)) - - (code, output) = self.handle_dialog(cont, box) - # On transforme la liste des cases dialog cochée en dictionnnaire - values = dict((a[0], a[0] in output) for a in choices) - - # Une continuation que l'on suivra si quelque chose se passe mal - retry_cont = TailCall(self.adherent_carte_etudiant, adherent=adherent, cont=cont, values=values) - - return self.handle_dialog_result( - code=code, - output=output, - cancel_cont=cancel_cont if cancel_cont else cont, - error_cont=retry_cont, - codes_todo=[([self.dialog.DIALOG_OK], todo, [values, adherent, cont])] - ) def adherent_charte(self, cont, adherent): a = attributs attribs = [a.charteMA] @@ -917,13 +843,11 @@ class Dialog(proprio.Dialog): """Crée un adhérent et potentiellement son compte crans avec lui""" def mycont(adherent=None, **kwargs): if adherent: - # Une fois l'adhérent créé, on vois s'il donne sa carte étudiant et s'il adhére/prend la connexion internet + # Une fois l'adhérent créé, on vois s'il adhére/prend la connexion internet #adh_cont = TailCall(self.modif_adherent, cont=cont, adherent=adherent) conn_cont = TailCall(self.adherent_connexion, cont=cont(proprio=adherent), adherent=adherent) - carte_cont = TailCall(self.adherent_carte_etudiant, cont=conn_cont, adherent=adherent) - etude_cont = TailCall(self.adherent_etudes, cont=carte_cont, adherent=adherent) + etude_cont = TailCall(self.adherent_etudes, cont=conn_cont, adherent=adherent) etude_cont(cancel_cont=etude_cont) - carte_cont(cancel_cont=etude_cont) # Comme on crée une facture, pas de retour possible conn_cont(cancel_cont=conn_cont) raise Continue(etude_cont)