On vire cp.py et cranslib/mail/__init__.py qui sont moches et ne servent qu'à l'intranet1.

On en profite pour déplacer quota.py
This commit is contained in:
Vincent Le Gallic 2013-05-08 05:43:14 +02:00
parent 670b3616b8
commit 93f35d0aa4
3 changed files with 0 additions and 41 deletions

83
utils/pagesperso.py Normal file
View file

@ -0,0 +1,83 @@
# -*- coding: utf-8 -*-
class PagePerso:
"""Classe représentant la page perso d'une personne"""
home = "/home"
www = "/www"
def __init__(self, login):
"""Instanciation avec le login' de la personne"""
self.login = login
self.home = "%s/%s" % (self.home, login)
_info = {}
self._load_informations()
def _filename( self ):
return "%s/.info" % self.home
def _load_informations(self):
try:
lignes = file( self._filename() )
except IOError:
lignes = []
# self._info est un dictionnaire qui reprend le contenu du .info
self._info = dict( map( lambda z: (unicode(z[0].lower(),"iso-8859-15"),
unicode(z[1],"iso-8859-15")),
filter(lambda w: len(w) == 2 and len(w[1]),
map(lambda x: map(lambda y: y.strip(),
x.split(":")),
lignes))))
def _save_informations( self ):
myfile = file(self._filename(), "w")
for aKey in self._info.keys():
myfile.write("%s:%s\n" % (aKey, self.
_info[aKey]) )
myfile.write("\n")
def save( self ):
self._save_informations()
def chemin(self):
"""Chemin vers le www"""
return u"%s%s" % (self.home, self.www)
def url(self):
"""URL vers la page perso"""
return u"http://perso.crans.org/%s/" % self.login
def nom( self ):
return self._info.get("nom", "")
def setNom( self, nom ):
self._info["nom"] = nom
def slogan( self ):
return self._info.get("slogan", "")
def setSlogan( self, slogan ):
self._info["slogan"] = slogan
def logo(self):
"""URL du logo s'il y en a un"""
logo = self._info.get("logo", None)
if logo:
# Le logo peut être en absolu ou en relatif
if logo.startswith(self.chemin()):
logo = logo.replace("%s/" % self.chemin(), "")
if os.path.isfile("%s/%s" % (self.chemin(), logo)):
return u"%s%s" % (self.url(), logo)
return u"http://perso.crans.org/pageperso.png"
def __str__(self):
"""Renvoie le code HTML correspondant au fichier .info"""
html = [ u'<div class="vignetteperso">',
u'<a href="%s">' % self.url(),
u'<img src="%s" alt="%s">' % (self.logo(), self.login),
u'</a><br>',
self.info("nom") and u'<b>%s</b><br>' % self.info("nom") or u'%s<br>' % self.login,
self.info("devise") and u'<i>%s</i>' % self.info("devise") or u'',
u'</div>' ]
return u'\n'.join(html)

50
utils/quota.py Normal file
View file

@ -0,0 +1,50 @@
# -*- coding: utf8 -*-
import os
LABELS = {
"/home":u"Dossier personnel",
"/var/mail":u"Boite de réception"
}
def getFloat( chose ):
chose = chose.replace(',', '.')
return float(chose)
def getUserQuota( userLogin ):
pipe = os.popen("sudo quota %s" % userLogin)
string_result = pipe.read()
pipe.close()
string_result = string_result.split("\n")
quotas = []
for a_line in string_result[2:3]:
usage, quota, limite, percentage, fs = a_line.split("\t")
line_dict = {
"label": "Quota personnel",
"usage":getFloat(usage),
"quota":getFloat(quota),
"limite":getFloat(limite),
"%":getFloat(percentage),
"filesystem":"rda", # pourquoi pas ?
}
quotas.append(line_dict)
return quotas
def fake_getUserQuota( userLogin ):
return [
{'%': 33.9,
'quota': 390.62,
'label': u'Dossier personnel (fake)',
'limite': 585.94,
'filesystem': '/home',
'usage': 420.32},
{'%': 0.1,
'quota': 100.00,
'label': u'Boite de r\xe9ception (fake)',
'limite': 150.00,
'filesystem': '/var/mail',
'usage': 0.06}
]