Seems translated texts cannot be used as keys for dictionaries or
values to be iterated for lists/tuples:
SPONSOR_LEVELS=(T("Organizer"),T("Sponsor"))
...
random.shuffle(response.sponsors[SPONSOR_LEVELS[1]])
Traceback (most recent call last):
File "gluon/restricted.py", line 178, in restricted
exec ccode in environment
File "/home/web2py/applications/rafaela2010/models/menu.py", line
85, in <module>
random.shuffle(response.sponsors[SPONSOR_LEVELS[1]])
KeyError: <gluon.languages.lazyT object at 0x89620ec>
Iterating over a T'ed values causes the same bug:
Traceback (most recent call last):
File "gluon/restricted.py", line 178, in restricted
exec ccode in environment
File "/home/web2py/applications/raf10dev/views/plugin_flatpages.html",
line 112, in <module>
for sponsor_level in SPONSOR_LEVELS:
KeyError: <gluon.languages.lazyT object at 0x89e2f4c>
Workaround:
------------------
Converting translated text to str solves the problem:
random.shuffle(response.sponsors[str(SPONSOR_LEVELS[1])])
or
for sponsor_level in [str(l) for l in SPONSOR_LEVELS]:
Best regards,
Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com