diff --git a/gestion/gest_crans_lc.py b/gestion/gest_crans_lc.py index 01cc5dbb..65d94461 100755 --- a/gestion/gest_crans_lc.py +++ b/gestion/gest_crans_lc.py @@ -143,7 +143,12 @@ class TailCall(object) : self.kwargs = kwargs def __str__(self): - return "TailCall<%s(%s%s%s)>" % (self.call.func_name, ', '.join(repr(a) for a in self.args), ', ' if self.args and self.kwargs else '', ', '.join("%s=%s" % (repr(k),repr(v)) for (k,v) in self.kwargs.items())) + return "TailCall<%s(%s%s%s)>" % ( + self.call.func_name, + ', '.join(repr(a) for a in self.args), + ', ' if self.args and self.kwargs else '', + ', '.join("%s=%s" % (repr(k),repr(v)) for (k,v) in self.kwargs.items()) + ) def copy(self): ''' @@ -258,7 +263,12 @@ class GestCrans(object): if droit in self.conn.droits: break else: - sys.stderr.write(u"%s ne possède aucun des droits :\n * %s\nnécessaire à utiliser ce programme\n" % (self.conn.current_login, '\n * '.join(allowed_right))) + sys.stderr.write( + u"%s ne possède aucun des droits :\n * %s\nnécessaire à utiliser ce programme\n" % ( + self.conn.current_login, + '\n * '.join(allowed_right) + ) + ) sys.exit(1) _dialog = None @@ -308,7 +318,10 @@ class GestCrans(object): except DialogTerminatedBySignal as e: signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C if e[1] == 11: - self.dialog.msgbox("La fenêtre dialog à été fermée par une erreur de segmentation", timeout=self.timeout, title="Erreur rencontrée", width=73, height=10) + self.dialog.msgbox( + "La fenêtre dialog à été fermée par une erreur de segmentation", + timeout=self.timeout, title="Erreur rencontrée", width=73, height=10 + ) raise Continue(cancel_cont) else: raise @@ -322,7 +335,7 @@ class GestCrans(object): def handle_dialog_result(self, code, output, cancel_cont, error_cont, codes_todo=[]): """ Gère les fonctions traitant les résultat d'appels à dialog. - s'occupe de gérer les exceptions, Ctrl-C, propagation de certaine exceptions, l'appuis sur annuler. + s'occupe de gérer les exceptions, Ctrl-C, propagation de certaine exceptions, l'appuis sur annuler. Le code à exécuté lui ai passé via la liste codes_todo, qui doit contenir une liste de triple : (code de retour dialog, fonction à exécuter, liste des arguements de la fonction) la fonction est appelée sur ses arguements si le code retourné par dialog correspond. @@ -348,14 +361,16 @@ class GestCrans(object): # En cas d'une autre erreur, on l'affiche et on retourne au menu d'édition except (Exception, ldap.OBJECT_CLASS_VIOLATION) as e: signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C - self.dialog.msgbox("%s" % unicode_of_Error(e), timeout=self.timeout,title="Erreur rencontrée", width=73, height=10) + self.dialog.msgbox("%s" % unicode_of_Error(e), timeout=self.timeout, + title="Erreur rencontrée", width=73, height=10) raise Continue(error_cont) except KeyboardInterrupt: signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C raise Continue(cancel_cont) # En cas de code de retour dialog non attendu, on prévient et on retourne au menu d'édition - self.dialog.msgbox("Le code de retour dialog est %s, c'est étrange" % code, timeout=self.timeout, title="Erreur rencontrée", width=73, height=10) + self.dialog.msgbox("Le code de retour dialog est %s, c'est étrange" % code, + timeout=self.timeout, title="Erreur rencontrée", width=73, height=10) raise Continue(error_cont) @tailcaller @@ -369,7 +384,12 @@ class GestCrans(object): choices = [('new', 'Ajouter une nouvelle blackliste')] index = 0 for bl in obj['blacklist']: - choices.append((str(index), coul("%s [%s]" % (bl['type'], bl['comm']), 'rouge' if bl['actif'] else None, dialog=True))) + choices.append( + (str(index), + coul("%s [%s]" % (bl['type'], bl['comm']), 'rouge' if bl['actif'] else None, + dialog=True) + ) + ) index+=1 return self.dialog.menu( "Éditer une blacklist ou en ajouter une nouvelle ?\n(les blacklistes actives apparaissent en rouge)", @@ -428,7 +448,8 @@ class GestCrans(object): if tag in config.blacklist_items: return tag else: - self.dialog.msgbox("%s n'est pas une blacklist" % tag, timeout=self.timeout, title="Erreur rencontrée", width=73, height=10) + self.dialog.msgbox("%s n'est pas une blacklist" % tag, timeout=self.timeout, + title="Erreur rencontrée", width=73, height=10) raise Continue(retry_cont) (code, tag) = self.handle_dialog(cont, box) @@ -443,9 +464,11 @@ class GestCrans(object): @tailcaller def get_timestamp(self, title, text, cont, hour=-1, minute=-1, second=-1, day=0, month=0, year=0): """Fait choisir une date et une heure et retourne le tuple (year, month, day, hour, minute, second)""" - retry_cont = TailCall(self.get_timestamp, title=title, text=text, cont=cont, hour=hour, minute=minute, second=second, day=day, month=month, year=year) + retry_cont = TailCall(self.get_timestamp, title=title, text=text, cont=cont, hour=hour, + minute=minute, second=second, day=day, month=month, year=year) def get_date(day, month, year): - (code, output) = self.dialog.calendar(text, day=day, month=month, year=year, timeout=self.timeout, title=title) + (code, output) = self.dialog.calendar(text, day=day, month=month, year=year, + timeout=self.timeout, title=title) if code in (self.dialog.DIALOG_CANCEL, self.dialog.DIALOG_ESC): raise Continue(cont) elif output: @@ -454,7 +477,8 @@ class GestCrans(object): else: raise EnvironmentError("Pourquoi je n'ai pas de date ?") def get_time(hour, minute, second, day, month, year): - (code, output) = self.dialog.timebox(text, timeout=self.timeout, hour=hour, minute=minute, second=second) + (code, output) = self.dialog.timebox(text, timeout=self.timeout, hour=hour, + minute=minute, second=second) if code in (self.dialog.DIALOG_CANCEL, self.dialog.DIALOG_ESC): raise Continue(retry_cont(day=day, month=month, year=year)) elif output: @@ -466,9 +490,11 @@ class GestCrans(object): (hour, minute, second) = get_time(hour, minute, second, day, month, year) return (year, month, day) + (hour, minute, second) - def edit_blacklist(self, obj, title, update_obj, cont, bl=None, tag=None, bl_type=None, debut=None, fin=None, comm=None): + def edit_blacklist(self, obj, title, update_obj, cont, bl=None, tag=None, bl_type=None, + debut=None, fin=None, comm=None): """Pour éditer les blacklistes d'un objet lc_ldap""" - self_cont = TailCall(self.edit_blacklist, obj=obj, title=title, update_obj=update_obj, cont=cont, bl=bl, tag=tag, bl_type=bl_type, debut=debut, fin=fin, comm=comm) + self_cont = TailCall(self.edit_blacklist, obj=obj, title=title, update_obj=update_obj, + cont=cont, bl=bl, tag=tag, bl_type=bl_type, debut=debut, fin=fin, comm=comm) # Si bl ou tag ne sont pas définit on les demande if bl is None or tag is None: bl_type = None @@ -485,19 +511,25 @@ class GestCrans(object): if tag == 'new': # Si debut n'est pas encore spécifié, on le demande if debut is None: - debut_tuple = self.get_timestamp(title=title, text="Choisir le début de la blacklist", cont=self_cont(bl=bl, tag=tag, bl_type=None, debut=None, fin=None, comm=None)) + debut_tuple = self.get_timestamp(title=title, text="Choisir le début de la blacklist", + cont=self_cont(bl=bl, tag=tag, bl_type=None, debut=None, fin=None, comm=None)) debut = int(time.mktime(time.struct_time(debut_tuple + (0, 0, -1)))) # Idem pour fin if fin is None: - if self.dialog.yesno("Mettre une date de fin ?", title=title, timeout=self.timeout) == self.dialog.DIALOG_OK: - fin_tuple = self.get_timestamp(title=title, text="Choisir la date de fin :", cont=self_cont(bl=bl, tag=tag, bl_type=bl_type, debut=None, fin=None, comm=None)) + if self.dialog.yesno("Mettre une date de fin ?", title=title, + timeout=self.timeout) == self.dialog.DIALOG_OK: + fin_tuple = self.get_timestamp(title=title, text="Choisir la date de fin :", + cont=self_cont(bl=bl, tag=tag, bl_type=bl_type, + debut=None, fin=None, comm=None)) fin = int(time.mktime(time.struct_time(debut_tuple + (0, 0, -1)))) else: fin = '-' bl['debut']=debut bl['fin']=fin - bl['comm']=self.get_comment(title=title, text="Commentaire ?", cont=self_cont(bl=bl, tag=tag, bl_type=bl['type'], debut=debut, fin=None, comm=None)) - if self.confirm_item(item=attributs.attrify(bl, 'blacklist', self.conn), title="Ajouter la blacklist ?"): + bl['comm']=self.get_comment(title=title, text="Commentaire ?", + cont=self_cont(bl=bl, tag=tag, bl_type=bl['type'], debut=debut, fin=None, comm=None)) + if self.confirm_item(item=attributs.attrify(bl, 'blacklist', self.conn), + title="Ajouter la blacklist ?"): try: with self.conn.search(dn=obj.dn, scope=0, mode='rw')[0] as obj: obj['blacklist'].append(bl) @@ -509,7 +541,8 @@ class GestCrans(object): raise # En cas d'une autre erreur, on l'affiche et on retourne except (Exception, ldap.OBJECT_CLASS_VIOLATION) as e: - self.dialog.msgbox("%s" % unicode_of_Error(e), timeout=self.timeout, title="Erreur rencontrée", width=73) + self.dialog.msgbox("%s" % unicode_of_Error(e), timeout=self.timeout, + title="Erreur rencontrée", width=73) raise Continue(self_cont(obj=obj)) else: raise Continue(self_cont(bl=None, obj=obj))