[gest_crans_lc] Lisibilité : retour à la ligne pour les grandes lignes.

* Et une typo
This commit is contained in:
Valentin Samir 2014-04-01 15:12:41 +02:00 committed by Pierre-Elliott Bécue
parent c3d4308ae4
commit 7921d6e46a

View file

@ -143,7 +143,12 @@ class TailCall(object) :
self.kwargs = kwargs self.kwargs = kwargs
def __str__(self): 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): def copy(self):
''' '''
@ -258,7 +263,12 @@ class GestCrans(object):
if droit in self.conn.droits: if droit in self.conn.droits:
break break
else: 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) sys.exit(1)
_dialog = None _dialog = None
@ -308,7 +318,10 @@ class GestCrans(object):
except DialogTerminatedBySignal as e: except DialogTerminatedBySignal as e:
signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C
if e[1] == 11: 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) raise Continue(cancel_cont)
else: else:
raise raise
@ -322,7 +335,7 @@ class GestCrans(object):
def handle_dialog_result(self, code, output, cancel_cont, error_cont, codes_todo=[]): def handle_dialog_result(self, code, output, cancel_cont, error_cont, codes_todo=[]):
""" """
Gère les fonctions traitant les résultat d'appels à dialog. 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 : 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) (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. 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 # En cas d'une autre erreur, on l'affiche et on retourne au menu d'édition
except (Exception, ldap.OBJECT_CLASS_VIOLATION) as e: except (Exception, ldap.OBJECT_CLASS_VIOLATION) as e:
signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C 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) raise Continue(error_cont)
except KeyboardInterrupt: except KeyboardInterrupt:
signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C signal.signal(signal.SIGINT, signal.SIG_IGN) # Pas de Ctrl-C
raise Continue(cancel_cont) raise Continue(cancel_cont)
# En cas de code de retour dialog non attendu, on prévient et on retourne au menu d'édition # 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) raise Continue(error_cont)
@tailcaller @tailcaller
@ -369,7 +384,12 @@ class GestCrans(object):
choices = [('new', 'Ajouter une nouvelle blackliste')] choices = [('new', 'Ajouter une nouvelle blackliste')]
index = 0 index = 0
for bl in obj['blacklist']: 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 index+=1
return self.dialog.menu( return self.dialog.menu(
"Éditer une blacklist ou en ajouter une nouvelle ?\n(les blacklistes actives apparaissent en rouge)", "É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: if tag in config.blacklist_items:
return tag return tag
else: 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) raise Continue(retry_cont)
(code, tag) = self.handle_dialog(cont, box) (code, tag) = self.handle_dialog(cont, box)
@ -443,9 +464,11 @@ class GestCrans(object):
@tailcaller @tailcaller
def get_timestamp(self, title, text, cont, hour=-1, minute=-1, second=-1, day=0, month=0, year=0): 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)""" """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): 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): if code in (self.dialog.DIALOG_CANCEL, self.dialog.DIALOG_ESC):
raise Continue(cont) raise Continue(cont)
elif output: elif output:
@ -454,7 +477,8 @@ class GestCrans(object):
else: else:
raise EnvironmentError("Pourquoi je n'ai pas de date ?") raise EnvironmentError("Pourquoi je n'ai pas de date ?")
def get_time(hour, minute, second, day, month, year): 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): if code in (self.dialog.DIALOG_CANCEL, self.dialog.DIALOG_ESC):
raise Continue(retry_cont(day=day, month=month, year=year)) raise Continue(retry_cont(day=day, month=month, year=year))
elif output: elif output:
@ -466,9 +490,11 @@ class GestCrans(object):
(hour, minute, second) = get_time(hour, minute, second, day, month, year) (hour, minute, second) = get_time(hour, minute, second, day, month, year)
return (year, month, day) + (hour, minute, second) 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""" """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 # Si bl ou tag ne sont pas définit on les demande
if bl is None or tag is None: if bl is None or tag is None:
bl_type = None bl_type = None
@ -485,19 +511,25 @@ class GestCrans(object):
if tag == 'new': if tag == 'new':
# Si debut n'est pas encore spécifié, on le demande # Si debut n'est pas encore spécifié, on le demande
if debut is None: 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)))) debut = int(time.mktime(time.struct_time(debut_tuple + (0, 0, -1))))
# Idem pour fin # Idem pour fin
if fin is None: if fin is None:
if self.dialog.yesno("Mettre une date de fin ?", title=title, timeout=self.timeout) == self.dialog.DIALOG_OK: if self.dialog.yesno("Mettre une date de fin ?", title=title,
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)) 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)))) fin = int(time.mktime(time.struct_time(debut_tuple + (0, 0, -1))))
else: else:
fin = '-' fin = '-'
bl['debut']=debut bl['debut']=debut
bl['fin']=fin 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)) bl['comm']=self.get_comment(title=title, text="Commentaire ?",
if self.confirm_item(item=attributs.attrify(bl, 'blacklist', self.conn), title="Ajouter la blacklist ?"): 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: try:
with self.conn.search(dn=obj.dn, scope=0, mode='rw')[0] as obj: with self.conn.search(dn=obj.dn, scope=0, mode='rw')[0] as obj:
obj['blacklist'].append(bl) obj['blacklist'].append(bl)
@ -509,7 +541,8 @@ class GestCrans(object):
raise raise
# En cas d'une autre erreur, on l'affiche et on retourne # En cas d'une autre erreur, on l'affiche et on retourne
except (Exception, ldap.OBJECT_CLASS_VIOLATION) as e: 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)) raise Continue(self_cont(obj=obj))
else: else:
raise Continue(self_cont(bl=None, obj=obj)) raise Continue(self_cont(bl=None, obj=obj))