[wiki-lenny/.../doodle] Cration d'un nouveau parser pour des sondages doodle

darcs-hash:20081205190343-bd074-564f728bb9a25ea62af8a889b069a6f4ce7e5881.gz
This commit is contained in:
Antoine Durand-Gasselin 2008-12-05 20:03:43 +01:00
parent 65a5158dbc
commit 278a018207
2 changed files with 61 additions and 26 deletions

View file

@ -1,5 +1,26 @@
# -*- coding: iso-8859-1 -*- # -*- coding: iso-8859-1 -*-
""" """
_vi
<Ii _aa.
:I> aZ2^
v` .we^
. . .. + _2~
._auqXZZX ._auqXZZZ` ...._... ~ ._|ii~
.aXZZY""^~~ vX#Z?""~~~._=ii|+++++++ii=, _=|+~-
JXXX` )XXX' _|i+~ .__..._. +l= -~-
SXXo )XZX: |i> ._%i>~~+|ii| .i| ._s_ass,,. ._a%ssssssss
-SXZ6,,. )XZX: =l> _li+~` iii| .ii _uZZXX??YZ#Za, uXUX*?!!!!!!!
"!XZ#ZZZZZXZXZ` <i> =i: .|ii| .l|.dZXr 4XXo.XXXs,.
-~^^^^^^^` -||, +i|=. |ii| :i>:ZXZ( ]XZX.-"SXZUZUXoa,,
+l|, ~~|++|++i|||+~:ZXZ( ]ZZX ---~"?Z#m
.__;=- ~+l|=____.___, :ZXZ( ]ZXX_________auXX2
._||>+~- . -~+~++~~~- :ZXZ( ]ZXZZ#######UX*!"
-+-- .>` _
.<}` 3;
.<l> .Zc
.ii^ )Xo
]XX
MoinMoin - gallery2Image Actionmacro MoinMoin - gallery2Image Actionmacro
PURPOSE:: PURPOSE::
@ -56,9 +77,13 @@ def execute(pagename, request):
newentry = user + ";" newentry = user + ";"
for f in fields: for f in fields:
if isinstance(f, unicode): if isinstance(f, unicode):
formfield = base64.encodestring(f.strip().decode('utf-8')).strip('\r\t \n=') # l'utf-8, c'est bien! # l'utf-8, c'est bien! On encode l'unicode en utf-8 avant
# de le base64er
formfield = base64.encodestring(f.strip().decode('utf-8')).strip('\r\t \n=')
else: else:
formfield = base64.encodestring(f.strip()).strip('\r\t \n=') # mais ça peut bien chier! # Bon, si on n'a pas un unicode, on encode sauvagement, mais
# ça peut chier
formfield = base64.encodestring(f.strip()).strip('\r\t \n=')
disp = request.form.get(formfield) disp = request.form.get(formfield)
if disp: if disp:
newentry += " %s=%s;" % (f, disp[0]) newentry += " %s=%s;" % (f, disp[0])
@ -73,9 +98,9 @@ def execute(pagename, request):
if updatepoll: pass if updatepoll: pass
else: else:
updatepoll = True updatepoll = True
newdoolist += [newentry] newdoolist.append(newentry)
else: else:
newdoolist += [participant] newdoolist.append(participant)
if not updatepoll: if not updatepoll:
newdoolist.append(newentry) newdoolist.append(newentry)

View file

@ -1,20 +1,25 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
""" """
.. _vi
.... ............ ........ <Ii _aa.
. ....... . .... .. :I> aZ2^
. ... .. .. .. .. ..... . .. v` .we^
.. .. ....@@@. .. . ........ . . . .. + _2~
.. . .. ..@.@@..@@. .@@@@@@@ @@@@@@. .... ._auqXZZX ._auqXZZZ` ...._... ~ ._|ii~
.@@@@. .@@@@. .@@@@..@@.@@..@@@..@@@..@@@@.... .... .aXZZY""^~~ vX#Z?""~~~._=ii|+++++++ii=, _=|+~-
@@@@... .@@@.. @@ @@ .@..@@..@@...@@@. .@@@@@. .. JXXX` )XXX' _|i+~ .__..._. +l= -~-
.@@@.. . @@@. @@.@@..@@.@@..@@@ @@ .@@@@@@.. ..... SXXo )XZX: |i> ._%i>~~+|ii| .i| ._s_ass,,. ._a%ssssssss
...@@@.... @@@ .@@.......... ........ ..... .. -SXZ6,,. )XZX: =l> _li+~` iii| .ii _uZZXX??YZ#Za, uXUX*?!!!!!!!
. ..@@@@.. . .@@@@. .. ....... . ............. "!XZ#ZZZZZXZXZ` <i> =i: .|ii| .l|.dZXr 4XXo.XXXs,.
. .. .... .. .. . ... .... -~^^^^^^^` -||, +i|=. |ii| :i>:ZXZ( ]XZX.-"SXZUZUXoa,,
. . .... ............. .. ... +l|, ~~|++|++i|||+~:ZXZ( ]ZZX ---~"?Z#m
.. .. ... ........ ... ... .__;=- ~+l|=____.___, :ZXZ( ]ZXX_________auXX2
................................ ._||>+~- . -~+~++~~~- :ZXZ( ]ZXZZ#######UX*!"
-+-- .>` _
.<}` 3;
.<l> .Zc
.ii^ )Xo
]XX
MoinMoin - Doodle poll parser MoinMoin - Doodle poll parser
@ -55,6 +60,7 @@ class Parser:
def format(self, f): def format(self, f):
entries = self.raw.splitlines() entries = self.raw.splitlines()
stylefmt = 'background-color: %s; border: 1px solid %s;'
code = '\n\n<form action="?action=fillpoll&amp;pollname=%s" method="post">' % self.poll_name code = '\n\n<form action="?action=fillpoll&amp;pollname=%s" method="post">' % self.poll_name
code += f.table(1) code += f.table(1)
code += f.table_row(1) code += f.table_row(1)
@ -74,13 +80,13 @@ class Parser:
resp = re.search(re.escape(choice)+'=?', entry) resp = re.search(re.escape(choice)+'=?', entry)
if resp: if resp:
disp = entry[resp.end()] disp = entry[resp.end()]
if '1' == disp: color= 'green' if '1' == disp: colors= ('#a8ffa6', '#64d06a')
elif '0' == disp: color= 'red' elif '0' == disp: colors= ('#ffaca8', '#e88782')
else: color = 'grey' else: color = ('grey', 'grey')
code += f.table_cell(1,{'style':'background-color: %s;' % color}) code += f.table_cell(1,{'style': stylefmt% colors})
code += f.text(disp) code += f.text(disp)
else: else:
code += f.table_cell(1,{'style':'background-color: grey;'}) code += f.table_cell(1,{'style': stylefmt % ('grey', 'grey')})
code += f.text('nsp') code += f.text('nsp')
code += f.table_cell(0) code += f.table_cell(0)
code += f.table_row(0) code += f.table_row(0)
@ -92,9 +98,13 @@ class Parser:
for choice in self.poll_choices: for choice in self.poll_choices:
if isinstance(choice, unicode): if isinstance(choice, unicode):
name = base64.encodestring(choice.strip().decode('utf-8')).strip('\r\t \n=') # l'utf-8, c'est bien! # l'utf-8, c'est bien! On encode l'unicode en utf-8 avant
# de le base64er
name = base64.encodestring(choice.strip().decode('utf-8')).strip('\r\t \n=')
else: else:
name = base64.encodestring(choice.strip()).strip('\r\t \n=') # mais ça peut bien chier! # Bon, si on n'a pas un unicode, on encode sauvagement, mais
# ça peut chier
name = base64.encodestring(choice.strip()).strip('\r\t \n=')
code += f.table_cell(1) code += f.table_cell(1)
code += '<input type="checkbox" name="%s" value="1">' % name code += '<input type="checkbox" name="%s" value="1">' % name