[affich_tools, gest_crans] dialog tait moche

Maintenant les nounous peuvent utiliser des thmes plus jolis...

darcs-hash:20081012181354-bd074-f6cdb3a92f4ca07a8a748464836bdce6c8bd4621.gz
This commit is contained in:
Antoine Durand-Gasselin 2008-10-12 20:13:54 +02:00
parent 1483129492
commit 89e30ae3d3
2 changed files with 24 additions and 16 deletions

View file

@ -1,7 +1,7 @@
#!/usr/bin/env python #!/usr/bin/env python
# -*- coding: iso-8859-15 -*- # -*- 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 Copyright (C) Frédéric Pauget
Licence : GPLv2 Licence : GPLv2
@ -31,9 +31,9 @@ else:
stdout_atty = sys.stdout.isatty() 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 """ Affiche la boite de dialogue défine avec les arguments fournis
(cf man dialog) (cf man dialog)
si tout se déroule bien retourne : si tout se déroule bien retourne :
[ 0, [ reponse(s) ] ] [ 0, [ reponse(s) ] ]
si annulatin retourne : si annulatin retourne :
@ -42,14 +42,13 @@ def dialog(backtitle,arg) :
si erreur dans les arguments raise RuntimeError si erreur dans les arguments raise RuntimeError
""" """
f = tempfile.NamedTemporaryFile() 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')) res = os.system(cmd.encode('iso-8859-15','ignore'))
if res == 256 : if res == 256 :
# Annuler # Annuler
f.close() f.close()
return [ 1, [] ] return [ 1, [] ]
# Lecture du fichier de résultat et effacement # Lecture du fichier de résultat et effacement
try: try:
result=f.readlines() result=f.readlines()
@ -57,7 +56,6 @@ def dialog(backtitle,arg) :
except : except :
result = [ "n'importe quoi", ''] result = [ "n'importe quoi", '']
res = 65280 res = 65280
# Traitement # Traitement
if res==65280 and result: if res==65280 and result:
# Erreur dans les arguments # Erreur dans les arguments
@ -66,12 +64,11 @@ def dialog(backtitle,arg) :
# Appui sur ESC # Appui sur ESC
arg1 = u'--title "Annulation" --yesno "Quitter ?\nLes dernières modifications seront perdues." 6 48' arg1 = u'--title "Annulation" --yesno "Quitter ?\nLes dernières modifications seront perdues." 6 48'
print backtitle 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') ) res = os.system(cmd.encode('iso-8859-15','ignore') )
if res==0 : sys.exit(0) if res==0 : sys.exit(0)
else : return dialog(backtitle,arg) else : return dialog(backtitle,arg)
elif not result : result=[''] elif not result : result=['']
return [ 0, result ] return [ 0, result ]
def coul(txt, col=None): 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): def tableau(data, titre=None, largeur=None, alignement=None, format=None):
""" """
Retourne une chaine formatée repésentant un tableau. Retourne une chaine formatée repésentant un tableau.
data : liste de listes, chacune contenant les valeurs d'une ligne data : liste de listes, chacune contenant les valeurs d'une ligne
titre : liste des titres titre : liste des titres

View file

@ -8,7 +8,7 @@ et adh
Copyright (C) Frédéric Pauget Copyright (C) Frédéric Pauget
Licence : GPLv2 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 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. 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. Elles prennent toute une instances de cette classe en paramètre.
@ -38,11 +38,6 @@ import user_tests
isadm = user_tests.isadm() isadm = user_tests.isadm()
isdeconnecteur = user_tests.isdeconnecteur() 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() db = crans_ldap()
droits = db.search("uid=%s" % script_utilisateur)['adherent'][0].droits() droits = db.search("uid=%s" % script_utilisateur)['adherent'][0].droits()
isimprimeur = u"Imprimeur" in droits isimprimeur = u"Imprimeur" in droits
@ -50,11 +45,27 @@ iscontroleur = u'Tresorier' in droits
isbureau = u'Bureau' in droits isbureau = u'Bureau' in droits
encoding = sys.stdin.encoding or 'ISO-8859-15' 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 ## Fonctions de remplissage ou modification des paramètres d'un adhérent
def set_bases(adher): def set_bases(adher):
""" """
Définition des paramètres de bases d'un adhérent : Définition des paramètres de bases d'un adhérent :
* Nom * Nom
* Prenom * Prenom