Factorisation sauvage
darcs-hash:20060419152834-d1718-d44d8fe54836a5e4349c5f1d23550fe6f8bc4730.gz
This commit is contained in:
parent
fe232b7d20
commit
75d4c9b802
2 changed files with 25 additions and 88 deletions
|
@ -1,87 +1,19 @@
|
||||||
# -*- encoding: iso-8859-15 -*-
|
# -*- encoding: iso-8859-15 -*-
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
import PagesPerso
|
||||||
class account:
|
|
||||||
"""Classe représentant la page perso d'un club"""
|
|
||||||
|
|
||||||
def __init__(self, login):
|
|
||||||
"""Instanciation avec le `login' du club"""
|
|
||||||
self.login = login
|
|
||||||
|
|
||||||
_info = None
|
|
||||||
def info(self, champ):
|
|
||||||
"""Retourne le contenu du champ `champ' dans le fichier info"""
|
|
||||||
if self._info == None:
|
|
||||||
try:
|
|
||||||
lignes = file("/home/club/%s/.info" % self.login)
|
|
||||||
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))))
|
|
||||||
print self._info
|
|
||||||
|
|
||||||
if self._info.has_key(champ.lower()):
|
|
||||||
return self._info[champ.lower()]
|
|
||||||
else:
|
|
||||||
return u""
|
|
||||||
|
|
||||||
def chemin(self):
|
|
||||||
"""Chemin vers le www"""
|
|
||||||
return u"/home/club/%s" % self.login
|
|
||||||
|
|
||||||
def url(self):
|
|
||||||
"""URL vers la page du club"""
|
|
||||||
return u"http://clubs.ens-cachan.fr/%s/" % self.login
|
|
||||||
|
|
||||||
def logo(self):
|
|
||||||
"""URL du logo s'il y en a un"""
|
|
||||||
if self.info("logo"):
|
|
||||||
# Le logo peut être en absolu ou en relatif
|
|
||||||
if self.info("logo").startswith("/home/club%s" % self.login):
|
|
||||||
logo = self.info("logo").replace("/home/club/%s" % self.login, "")
|
|
||||||
else:
|
|
||||||
logo = self.info("logo")
|
|
||||||
if os.path.isfile("/home/club/%s/%s" % (self.login, 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)
|
|
||||||
|
|
||||||
def comptes():
|
def comptes():
|
||||||
"""Retourne la liste des comptes"""
|
"""Retourne la liste des comptes"""
|
||||||
|
return filter(lambda x: os.path.isdir(u"/home/club/%s" % x) and not os.path.islink(u"/home/club/%s" % x),
|
||||||
def execute(macro, args):
|
|
||||||
|
|
||||||
# La liste des comptes :
|
|
||||||
dirs = filter(lambda x: os.path.isdir(u"/home/club/%s" % x),
|
|
||||||
os.listdir(u"/home/club"))
|
os.listdir(u"/home/club"))
|
||||||
dirs.sort()
|
|
||||||
|
|
||||||
html = u"""
|
def url(self):
|
||||||
<style type="text/css">
|
"""URL vers la page perso"""
|
||||||
<!--
|
return u"http://clubs.ens-cachan.fr/%s/" % self.login
|
||||||
@import url(/wiki/common/pagesPersos.css);
|
|
||||||
-->
|
|
||||||
</style>"""
|
|
||||||
|
|
||||||
for d in dirs:
|
PagesPerso.comptes = comptes
|
||||||
html = u"%s\n%s" % (html, account(d).__str__())
|
PagesPerso.account.home = "/home/club"
|
||||||
|
PagesPerso.account.www = ""
|
||||||
html += u'<br style="clear: both">'
|
PagesPerso.account.url = url
|
||||||
return html
|
execute = PagesPerso.execute
|
||||||
|
|
|
@ -4,17 +4,22 @@ import os
|
||||||
|
|
||||||
class account:
|
class account:
|
||||||
"""Classe représentant la page perso d'une personne"""
|
"""Classe représentant la page perso d'une personne"""
|
||||||
|
|
||||||
|
home = "/home"
|
||||||
|
www = "/www"
|
||||||
|
|
||||||
def __init__(self, login):
|
def __init__(self, login):
|
||||||
"""Instanciation avec le `login' de la personne"""
|
"""Instanciation avec le `login' de la personne"""
|
||||||
self.login = login
|
self.login = login
|
||||||
|
self.home = "%s/%s" % (self.home, login)
|
||||||
|
self.www = self.www
|
||||||
|
|
||||||
_info = None
|
_info = None
|
||||||
def info(self, champ):
|
def info(self, champ):
|
||||||
"""Retourne le contenu du champ `champ' dans le fichier info"""
|
"""Retourne le contenu du champ `champ' dans le fichier info"""
|
||||||
if self._info == None:
|
if self._info == None:
|
||||||
try:
|
try:
|
||||||
lignes = file("/home/%s/.info" % self.login)
|
lignes = file("%s/.info" % self.home)
|
||||||
except IOError:
|
except IOError:
|
||||||
lignes = []
|
lignes = []
|
||||||
|
|
||||||
|
@ -34,7 +39,7 @@ class account:
|
||||||
|
|
||||||
def chemin(self):
|
def chemin(self):
|
||||||
"""Chemin vers le www"""
|
"""Chemin vers le www"""
|
||||||
return u"/home/%s/www" % self.login
|
return u"%s%s" % (self.home, self.www)
|
||||||
|
|
||||||
def url(self):
|
def url(self):
|
||||||
"""URL vers la page perso"""
|
"""URL vers la page perso"""
|
||||||
|
@ -44,11 +49,11 @@ class account:
|
||||||
"""URL du logo s'il y en a un"""
|
"""URL du logo s'il y en a un"""
|
||||||
if self.info("logo"):
|
if self.info("logo"):
|
||||||
# Le logo peut être en absolu ou en relatif
|
# Le logo peut être en absolu ou en relatif
|
||||||
if self.info("logo").startswith("/home/%s/www" % self.login):
|
if self.info("logo").startswith(self.chemin()):
|
||||||
logo = self.info("logo").replace("/home/%s/www/" % self.login, "")
|
logo = self.info("logo").replace("%s/" % self.chemin(), "")
|
||||||
else:
|
else:
|
||||||
logo = self.info("logo")
|
logo = self.info("logo")
|
||||||
if os.path.isfile("/home/%s/www/%s" % (self.login, logo)):
|
if os.path.isfile("%s/%s" % (self.chemin(), logo)):
|
||||||
return u"%s%s" % (self.url(), logo)
|
return u"%s%s" % (self.url(), logo)
|
||||||
return u"http://perso.crans.org/pageperso.png"
|
return u"http://perso.crans.org/pageperso.png"
|
||||||
|
|
||||||
|
@ -65,12 +70,12 @@ class account:
|
||||||
|
|
||||||
def comptes():
|
def comptes():
|
||||||
"""Retourne la liste des comptes"""
|
"""Retourne la liste des comptes"""
|
||||||
|
return filter(lambda x: os.path.isdir(u"/home/%s/www" % x) and not os.path.islink(u"/home/%s/www" % x),
|
||||||
|
os.listdir(u"/home"))
|
||||||
|
|
||||||
|
|
||||||
def execute(macro, args):
|
def execute(macro, args):
|
||||||
|
dirs = comptes()
|
||||||
# La liste des comptes :
|
|
||||||
dirs = filter(lambda x: os.path.isdir(u"/home/%s/www" % x),
|
|
||||||
os.listdir(u"/home"))
|
|
||||||
dirs.sort()
|
dirs.sort()
|
||||||
|
|
||||||
html = u"""
|
html = u"""
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue