Implmentation de la gestion des paramtres spcifiques aux bornes :

* dplacement de la gestion des canaux et de la puissance
 * ajout de la gestion de la position et des variables nvram

darcs-hash:20061101150755-c3cc4-902ea7e60696b55114c40a7bbed94dcf49de1427.gz
This commit is contained in:
dubost 2006-11-01 16:07:55 +01:00
parent 928973454c
commit 4e0c64d19a

View file

@ -1140,6 +1140,69 @@ def del_club(club):
##################################################################
## Fonctions de remplissage ou modification des paramètres machine
def set_wifi(machine):
"""
Définition des paramètres spécifiques d'une borne wifi :
* Canaux
* Puissance
* Position GPS
* Variables nvram
"""
if not isadm:
#ça ne devrait jamais arriver mais on n'est jamais trop prudent
arg = u'--title "Erreur" '
arg += u'--msgbox "Vous n\'avez pas les droits de modification de cette machine.\n\n" 0 0'
dialog(arg)
# On redemande
return 1
nom = machine.nom()
# Construction de la boite de dialogue
arg = u'--title "Paramètres spécifiques wifi de "%s"" ' % (nom)
arg += u'--form "" 0 0 0 '
# Borne wifi
arg += u'"Canaux :" 1 1 "%s" 1 14 10 0 ' % machine.canal(None, False)
arg += u'"Puissance :" 2 1 "%s" 2 14 4 0 ' % machine.puissance()
arg += u'"Position N :" 3 1 "%s" 3 14 12 0 ' % machine.position()[0]
arg += u'"Position E :" 3 29 "%s" 3 42 12 0 ' % machine.position()[1]
arg += u'"Nvram (la valeur none supprime la variable) :" 4 1 "%s" 5 1 50 0 ' % ', '.join(machine.nvram())
# Affichage
annul, result = dialog(arg)
if annul: return 1
# Traitement
err = ''
try: machine.canal(result[0])
except ValueError, c: err += c.args[0] + '\n'
try: machine.puissance(result[1])
except ValueError, c: err += c.args[0] + '\n'
try: machine.position((result[2].strip(),result[3].strip()))
except ValueError, c: err += c.args[0] + '\n'
try:
for nvram in result[4].split(','):
if len(nvram.strip()): #On évite les variables vides
if not '=' in nvram:
err += "Une variable nvram doit etre de la forme : 'variable=valeur'\n"
else :
variable = nvram.split('=')[0].strip()
valeur = nvram.split('=')[1].strip()
if valeur.lower() == "none":
valeur=None
machine.nvram(variable, valeur)
except ValueError, c: err += c.args[0] + '\n'
# Des erreurs ?
if err:
arg = u'--title "Paramètres machine wifi" '
arg += u'--msgbox "%s\n\n" 0 0' % err
dialog(arg)
# On redemande
return set_wifi(machine)
if machine.modifs and confirm(machine):
return set_wifi(machine)
def set_machine(machine):
"""
Définition des paramètres d'une machine :
@ -1147,8 +1210,6 @@ def set_machine(machine):
* Adresse MAC
* IP
* ports ouverts si adm
* Remarque
Si borne wifi demande aussi canal et puissance
"""
if machine.proprietaire().__class__ == AssociationCrans:
if not isadm:
@ -1174,11 +1235,6 @@ def set_machine(machine):
arg += u'"PortsTCP machine->ext :" 5 1 "%s" 5 25 50 0 ' % ' '.join(machine.portTCPout())
arg += u'"PortsUDP ext->machine :" 6 1 "%s" 6 25 50 0 ' % ' '.join(machine.portUDPin())
arg += u'"PortsUDP machine->ext :" 7 1 "%s" 7 25 50 0 ' % ' '.join(machine.portUDPout())
if isinstance(machine, BorneWifi) and isadm:
# Borne wifi
p = u'Mettre le lieu de la borne comme première remarque.'
arg += u'"Canaux :" 2 35 "%s" 2 43 14 0 ' % machine.canal(None, False)
arg += u'"Puissance :" 3 35 "%s" 3 47 4 0 ' % machine.puissance()
if isadm and machine.proprietaire().__class__ == AssociationCrans:
arg += u'"Prise :" 8 1 "%s" 8 9 5 0 ' % machine.prise()
@ -1226,12 +1282,6 @@ def set_machine(machine):
machine.portUDPout(result[6].split())
except ValueError, c: err += c.args[0] + '\n'
if isadm and isinstance(machine, BorneWifi):
try: machine.canal(result[7])
except ValueError, c: err += c.args[0] + '\n'
try: machine.puissance(result[8])
except ValueError, c: err += c.args[0] + '\n'
if isadm and machine.proprietaire().__class__ == AssociationCrans:
try: machine.prise(result[-1])
except ValueError, c: err += c.args[0] + '\n'
@ -1509,6 +1559,11 @@ def modif_machine(machine):
arg += u'"Alias" "Créer ou supprimer un alias de la machine" '
arg += u'"Exemptions" "Modifier la liste d\'exemption d\'upload de la machine" '
arg += u'"Remarques" "Ajouter ou supprimer une remarque de la machine" '
if isinstance(machine, BorneWifi) and isadm:
# Borne wifi
arg += u'"Wifi" "Modifier les paramètres spécifiques aux bornes wifi" '
annul, res = dialog(arg)
@ -1525,6 +1580,8 @@ def modif_machine(machine):
set_machine_exemption(machine)
elif res[0] == 'Remarques':
set_rque(machine)
elif res[0] == 'Wifi':
set_wifi(machine)
if machine.modifs:
return confirm(machine)