diff --git a/gestion/ressuscite.py b/gestion/ressuscite.py index 9b2ff7cc..687488f0 100755 --- a/gestion/ressuscite.py +++ b/gestion/ressuscite.py @@ -24,6 +24,7 @@ u"""Outil pour ressusciter des machines du cimetière.""" import os, sys import cPickle +import dialog sys.path.append('/usr/scripts/gestion') from ldap_crans import crans_ldap, MachineFixe, MachineWifi @@ -35,23 +36,19 @@ import user_tests db = crans_ldap() isadm = user_tests.isadm() -def dialog(arg): - return affich_tools.dialog(u'Ressusciter une machine', arg) +dlg = dialog.Dialog() +dlg.setBackgroundTitle('Ressusciter une machine') def menu_principal(): """Menu principal de l'interface.""" choix = '' while 1: - arg = u'--title "Ressusciter" ' - arg += u'--item-help --cancel-label "Quitter" ' - arg += u'--default-item "%s" ' % choix - arg += u'--menu "Que souhaitez vous faire ?" 0 55 13 ' - arg += u'"A" "Ressusciter à partir d\'un adhérent" "Rechercher les anciennes machines d\'un adhérent" ' - arg += u'"F" "Ressusciter à partir d\'un fichier" "Récupérer depuis un fichier du cimetière" ' - annul, result = dialog(arg) + annul, choix = dlg.menu(u"Que souhaitez vous faire ?", + choices=[("A",u"Ressusciter à partir d'un adhérent",u"Rechercher les anciennes machines d'un adhérent"), + ("F",u"Ressusciter à partir d'un fichier",u"Récupérer depuis un fichier du cimetière")], + item_help=1,title=u"Ressusciter") if annul: break - choix = result[0] if choix == 'A': # Ressusciter à partir d'un adhérent # On sélectionne l'adhérent @@ -75,17 +72,16 @@ def menu_principal(): # Ressusciter à partir d'un fichier fichier = None while 1: - arg = u'--title "Sélection du fichier" ' - arg += u'--inputbox "Vous pouvez aussi exécuter le script sur le fichier :\nressuscite [le fichier]\n\nFichier : " 0 0 "%s"' % "/home/cimetiere/Machine" - annul, result = dialog(arg) + annul, result = dlg.inputbox(width=54, height=12, + text=u"Vous pouvez aussi exécuter le script sur le fichier\nressuscite [le fichier]\n\nFichier : ", + init=u"/home/cimetiere/Machine", + title=u"Sélection du fichier") if annul: break try: - fichier = open(result[0], 'r') + fichier = open(result, 'r') break except: - arg = u'--title "Sélection du fichier" ' - arg += u'--msgbox "Fichier invalide\n\n\n" 0 0' - dialog(arg) + dlg.msgbox(text=u"Fichier invalide",title=u"Sélection du fichier") continue if fichier != None: machine = cPickle.load(fichier) @@ -100,14 +96,13 @@ def choixrecherche(condition=None): """Demande les types de machines à chercher, et effectue la recherche avec la condition.""" # On sélectionne le type de machine - arg = u'--title "Recherche de machine" ' - arg += u'--menu "Type de machine ?" 0 0 0 ' - arg += u'"Fixe" "Machine fixe" ' - arg += u'"Wifi" "Machine wireless" ' - arg += u'"Tous" "Rechercher les deux types" ' - annul, result = dialog(arg) + annul, choix = dlg.menu(u"Type de machine ?", + choices=[("Fixe",u"Machine fixe"), + ("Wifi",u"Machine wireless"), + ("Tous",u"Rechercher les deux types")], + title=u"Recherche de machine") if annul: return None - choix = result[0] + print choix # On cherche les machines machines = recherche(choix == 'Fixe' or choix == 'Tous', @@ -116,9 +111,7 @@ def choixrecherche(condition=None): # Pas de résultat if not machines: - arg = u'--title "Recherche" ' - arg += u'--msgbox "Aucun résultat.\n\n\n" 0 0' - dialog(arg) + dlg.msgbox(text=u"Aucun résultat",title=u"Recherche") return None return choixmachine(machines) @@ -157,21 +150,21 @@ def choixadherent(machine, oldadh=None): else: oldadhl = [oldadh] - arg = u'--title "Adhérent auquel rattacher la machine" ' - arg += u'--menu "Le propriétaire de la machine est %s.' % machine.proprio + arg = u'--title "" ' + arg += u'--menu "%s.' % machine.proprio # Est-ce que l'adhérent existe encore ? if (len(oldadhl) > 0 and str(machine.proprio) == "%s %s" % (oldadhl[0].prenom(), oldadhl[0].nom())): - arg += u'\nCet adhérent existe encore dans la base." 0 0 0 ' - arg += u'"Garder" "Ajouter à cet adhérent" ' - arg += u'"Autre" "Ajouter à un autre adhérent" ' + annul, choix = dlg.menu(u"Le propriétaire de la machine est %s" % machine.proprio, + choices=[("Garder",u"Ajouter à cet adhérent"), + ("Autre",u"Ajouter à un autre adhérent")], + title=u"Adhérent auquel rattacher la machine") else: - arg += u'\nCet adhérent n\'existe plus dans la base." 0 0 0 ' - arg += u'"Autre" "Ajouter à un autre adhérent" ' - annul, result = dialog(arg) + annul, choix = dlg.menu(u"Cet adhérent n'existe plus dans la base.", + choices=[("Autre",u"Ajouter à un autre adhérent")], + title=u"Adhérent auquel rattacher la machine") if not annul: - choix = result[0] if choix == "Garder": adh = oldadhl[0] else: @@ -246,18 +239,15 @@ def ressuscite(adh, oldmachine): except ValueError, c: if len(c.args)>1 and c.args[1] == 1 and isadm: # Mac en double - arg = u'--title "Adresse MAC" ' - arg += u'--yesno "L\'adresse MAC existe déjà, continuer ? \n" 0 0' - no, res = dialog(arg) + no, res = dlg.yesno(text=u"L'adresse MAC existe déjà, continuer ?", title=u"Adresse MAC") if not no: try: machine.mac(str(oldmachine.mac()), 1) except ValueError, c: err += c.args[0] + '\n' except EnvironmentError, c: err += c.args[0] + '\n' elif len(c.args)>1 and c.args[1] == 3 and isadm: # Mac douteuse - arg = u'--title "Adresse MAC" ' - arg += u'--yesno "L\'adresse MAC ne correspond à aucun constructeur, continuer ? \n" 0 0' - no, res = dialog(arg) + no, res = dlg.yesno(text=u"L\'adresse MAC ne correspond à aucun constructeur, continuer ?", + title=u"Adresse MAC") if not no: try: machine.mac(str(oldmachine.mac()), 1) except ValueError, c: err += c.args[0] + '\n' @@ -274,9 +264,7 @@ def ressuscite(adh, oldmachine): # Des erreurs ? if err: - arg = u'--title "Paramètres machine" ' - arg += u'--msgbox "%s\n\n" 0 0' % err - dialog(arg) + dlg.msgbox(text=u"%s" % err,title=u"Paramètres machine") set_machine(machine) return True