Hello everyone!
I developped an application using web2py 1.99.xx some months ago, and I 
passed it to web2py 2.2.1 in order to be up to date :-) (And I prefer the 
new layout...) Thanks again for this beautiful version !

Nevertheless, I since encountered several strange problems 
(request.vars['not existing key"] does not throws a KeyError anymore ; Row 
does not inherit from dict ; a "tooltip" class is now defined by default 
for Bootstrap...) but none of which was very difficult to solve.

But today, I stubled on something too complicated unless I missed something.

Here is the trace I have, which explains everything :

Traceback (most recent call last):
  File 
"C:\Users\cedric\projets\LACT\eclipse\Lactw221\web2py\gluon\restricted.py", 
line 212, in restricted
    exec ccode in environment
  File 
"C:/Users/cedric/projets/LACT/eclipse/Lactw221/web2py/applications/lact/controllers/evaluation.py"
 <http://127.0.0.1:8000/admin/default/edit/lact/controllers/evaluation.py>, 
line 657, in <module>
  File "C:\Users\cedric\projets\LACT\eclipse\Lactw221\web2py\gluon\globals.py", 
line 188, in <lambda>
    self._caller = lambda f: f()
  File "C:\Users\cedric\projets\LACT\eclipse\Lactw221\web2py\gluon\tools.py", 
line 2911, in f
    return action(*a, **b)
  File 
"C:/Users/cedric/projets/LACT/eclipse/Lactw221/web2py/applications/lact/controllers/evaluation.py"
 <http://127.0.0.1:8000/admin/default/edit/lact/controllers/evaluation.py>, 
line 189, in stop
    _stop(userid)
  File 
"C:/Users/cedric/projets/LACT/eclipse/Lactw221/web2py/applications/lact/controllers/evaluation.py"
 <http://127.0.0.1:8000/admin/default/edit/lact/controllers/evaluation.py>, 
line 248, in _stop
    return mode.on_end()
  File 
"C:/Users/cedric/projets/LACT/eclipse/Lactw221/web2py/applications/lact/models/a34_lact_running_modes.py"
 
<http://127.0.0.1:8000/admin/default/edit/lact/models/a34_lact_running_modes.py>,
 line 43, in on_end
    session.flash = T('Serie finished! Thank you!')
NameError: global name 'T' is not defined


As you see, a34_running_modes.py is in the 'models' folder. But a function 
from it called from the controller doesn't know of 'T' which is global !
Previously I had the same error in some other functions with 'auth' 
(defined in a12_db.py, so still before) and 'request', which I solved by 
passing 'auth' or 'request' as function arguments (even if I find it not 
very nice...), as they are available in the controller function.

But if even T is not known, I cannot pass all usual global variables as 
arguments to every function present in 'models' folder.

Do I miss something ? Like a "what-to-check-if-you want-to-upgrade web2py" 
documentation ? (even if I thought web2py was fully backward compatible, 
this is why I choose it)

Thank you for your insights !

-- 



Reply via email to