diff --git a/gestion/affich_tools.py b/gestion/affich_tools.py index e84b03b2..6133ab24 100755 --- a/gestion/affich_tools.py +++ b/gestion/affich_tools.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # -*- coding: iso-8859-15 -*- -""" Collection de fonction/classe pour avoir un bel affichage +""" Collection de fonction/classe pour avoir un bel affichage Copyright (C) Frédéric Pauget Licence : GPLv2 @@ -31,9 +31,9 @@ else: stdout_atty = sys.stdout.isatty() -def dialog(backtitle,arg) : +def dialog(backtitle,arg,dialogrc='') : """ Affiche la boite de dialogue défine avec les arguments fournis - (cf man dialog) + (cf man dialog) si tout se déroule bien retourne : [ 0, [ reponse(s) ] ] si annulatin retourne : @@ -42,14 +42,13 @@ def dialog(backtitle,arg) : si erreur dans les arguments raise RuntimeError """ f = tempfile.NamedTemporaryFile() - cmd = u'LANG=fr_FR@euro /usr/bin/dialog --backtitle "%s" --cancel-label "Retour" %s 2>%s' % (backtitle,arg,f.name) + cmd = u'%s LANG=fr_FR@euro /usr/bin/dialog --backtitle "%s" --cancel-label "Retour" %s 2>%s' % (dialogrc, backtitle,arg,f.name) res = os.system(cmd.encode('iso-8859-15','ignore')) if res == 256 : # Annuler f.close() return [ 1, [] ] - # Lecture du fichier de résultat et effacement try: result=f.readlines() @@ -57,7 +56,6 @@ def dialog(backtitle,arg) : except : result = [ "n'importe quoi", ''] res = 65280 - # Traitement if res==65280 and result: # Erreur dans les arguments @@ -66,12 +64,11 @@ def dialog(backtitle,arg) : # Appui sur ESC arg1 = u'--title "Annulation" --yesno "Quitter ?\nLes dernières modifications seront perdues." 6 48' print backtitle - cmd = u'/usr/bin/dialog --backtitle "%s" %s' % (backtitle,arg1) + cmd = u'%s /usr/bin/dialog --backtitle "%s" %s' % (dialogrc, backtitle,arg1) res = os.system(cmd.encode('iso-8859-15','ignore') ) if res==0 : sys.exit(0) else : return dialog(backtitle,arg) elif not result : result=[''] - return [ 0, result ] def coul(txt, col=None): @@ -127,7 +124,7 @@ def cprint(txt, col='blanc', newline=True): def tableau(data, titre=None, largeur=None, alignement=None, format=None): """ Retourne une chaine formatée repésentant un tableau. - + data : liste de listes, chacune contenant les valeurs d'une ligne titre : liste des titres diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index b0528606..f7e22b25 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -8,7 +8,7 @@ et adh Copyright (C) Frédéric Pauget Licence : GPLv2 -Les fonctions set_* permettent de définir certains +Les fonctions set_* permettent de définir certains paramètres liés à un adhérent ou une machine, elles posent les questions puis apellent la méthode adpatée de la classe adhérent ou machine. Elles prennent toute une instances de cette classe en paramètre. @@ -38,11 +38,6 @@ import user_tests isadm = user_tests.isadm() isdeconnecteur = user_tests.isdeconnecteur() -dlg = dialog.Dialog() - -def dialog(arg): - return affich_tools.dialog(u'Gestion des adhérents et machines du Crans', arg) - db = crans_ldap() droits = db.search("uid=%s" % script_utilisateur)['adherent'][0].droits() isimprimeur = u"Imprimeur" in droits @@ -50,11 +45,27 @@ iscontroleur = u'Tresorier' in droits isbureau = u'Bureau' in droits encoding = sys.stdin.encoding or 'ISO-8859-15' +if u'Nounou' in droits: + if os.path.exists(os.path.expanduser('~/.dialogrc')): + dialogrc='~/.dilalogrc' + else: + dialogrc='/etc/dialog.rc' + dlg = dialog.Dialog(DIALOGRC=dialogrc) + dialog_theme='DIALOGRC='+dialogrc +else: + dlg = dialog.Dialog() + dialog_theme='' + + +def dialog(arg): + return affich_tools.dialog(u'Gestion des adhérents et machines du Crans', arg, dialog_theme) + + ######################################################################### ## Fonctions de remplissage ou modification des paramètres d'un adhérent def set_bases(adher): - """ + """ Définition des paramètres de bases d'un adhérent : * Nom * Prenom