It's just that I didn't put entire code block here.
This statement resides inside a for block as
for i,item in enumerate(data.keys()):
so clearly i and item are available in the scope
(this code works well with rocket server and local dev_appserver.py and
problem is only when I upload it to GAE)
assuming following is valid in view
{{
for row in result:
key = row.lang.full+' <'+row.lang.short+'>'
if not data.has_key(key):
data[key] = []
pass
data[key].append(LOAD(c = 'default', f = 'briefings.load', args
= [row.id], ajax=False))
data['All Languages'].append(LOAD(c = 'default', f =
'briefings.load', args = [row.id], ajax=False))
pass
for i,item in enumerate(data.keys()):
if item == 'All Languages':
continue
options.append(LI(A(item, _href = 'tab-'+str(i))))
items.append(DIV(DIV(*[data[item]], _id = 'wrap'), _id =
'ui-tabs-'+str(i)))
pass
options.append(LI(A(T('All Languages'), _href = 'tab-'+str(i+1))))
items.append(DIV(DIV(data['All Languages'], _id = 'wrap'), _id =
'ui-tabs-'+str(i+1)))
}}