[gest_crans_lc] Lisibilité : retour à la ligne pour les grandes lignes.
* Et une typo
This commit is contained in:
parent
c3d4308ae4
commit
7921d6e46a
1 changed files with 52 additions and 19 deletions
|
@ -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))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue