[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

@ -31,7 +31,7 @@ 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 :
@ -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):

View file

@ -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,6 +45,22 @@ 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