Adaptation la taille de la fentre.

darcs-hash:20041002122516-d1718-c201f9ffa44ee08519fb1985724b2983564005ab.gz
This commit is contained in:
bernat 2004-10-02 14:25:16 +02:00
parent 0047e7f9a1
commit 8d3ca461b3
2 changed files with 30 additions and 5 deletions

View file

@ -82,6 +82,17 @@ def tableau(largeurs,data) :
[ ( données entète), (données ligne1), .... ]
"""
sep_col = u'|'
# Si l'une des largeurs est '*', alors on la met la plus grande possible
if '*' in largeurs:
rows, cols = get_size()
nlargeurs = []
for n in largeurs:
if n != '*':
nlargeurs.append(n)
else:
nlargeurs.append(max(cols - sum(filter(lambda x:x!='*',largeurs)) - len(largeurs) - 1, 3))
largeurs = nlargeurs
# Ligne de séparation entète corps
s=u'\n'
@ -109,6 +120,20 @@ def tableau(largeurs,data) :
f = f.replace(u'\n',s,1) # Insertion du séparateur entète - corps
return f[:-1] # Supression du \n final
def get_size():
"""Retourne la taille de l'écran.
Sous la forme d'un tuble (colonnes, lignes)"""
try:
from termios import TIOCGWINSZ
from struct import pack, unpack
from fcntl import ioctl
s = pack("HHHH", 0, 0, 0, 0)
rows, cols = unpack("HHHH", ioctl(sys.stdout.fileno(), TIOCGWINSZ, s))[:2]
return (rows, cols)
except:
return (80, 24)
def prompt(prompt, defaut=''):
""" Pose la question prompt, retourne la réponse """
sys.stdout.write(coul(prompt,'gras'))

View file

@ -129,7 +129,7 @@ def adhers_brief(adhers) :
return u"Machines en rouge = machines avec limitation de services\n" + \
u"P : paiement année en cours, le fond vert indique le précâblage\n" + \
u"C : carte d'étudiant année en cours\n" + \
tableau([5, 30 , 5, 1, 1,30], data)
tableau([5, 30 , 5, 1, 1, '*'], data)
def machines_brief(machines) :
"""
@ -158,7 +158,7 @@ def machines_brief(machines) :
data.append((m.id() , t, m.nom().split('.')[0], p, a.chbre(), bl))
return u"Le propriétaire en rouge signale un problème administratif\n" + \
tableau([5, 4, 18, 30, 5, 10], data)
tableau([5, 4, 18, '*', 5, 10], data)
def clubs_brief(clubs) :
"""
@ -198,7 +198,7 @@ def clubs_brief(clubs) :
return u"Machines en rouge = machines avec limitation de services\n" + \
u"P : signature charte année en cours, le fond vert indique le précâblage\n" + \
tableau([5, 15 , 6, 1, 21, 24], data)
tableau([5, 15 , 6, 1, 21, '*'], data)
def list_machines(machines) :
@ -219,7 +219,7 @@ def list_machines(machines) :
# Données
data.append((m.id() , t, m.nom().split('.')[0], m.ip(), m.mac(), bl))
return tableau([5, 4, 18, 17, 19, 10], data)
return tableau([5, 4, '*', 17, 19, 10], data)
def list_bornes(bornes) :
"""
@ -245,7 +245,7 @@ def list_bornes(bornes) :
l = u'????'
data.append((b.id() , b.nom().split('.')[0], b.ip(), b.mac(), b.canal(), b.puissance(),l ))
return u"C=canal, P=puissance\n" + tableau([5, 14, 17, 19, 2, 2, 13], data)
return u"C=canal, P=puissance\n" + tableau([5, 14, 17, 19, 2, 2, '*'], data)
def adher_details(adher) :
"""