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