What am I doing wrong?
This code works fine in a controller. When moved to a module it fails
with a 303 error.
Here is the code:
### Controller:
def trash():
import trash_it
return trash_it.trashit(request, session,response, db)
## module trash_it.py
from html import FORM, H2, P, BR, INPUT, URL
from http import HTTP, redirect
def trashit(request, session, response, db):
import crumbs
crumb_trail = crumbs.do_crumbs(session, request, db)
form = FORM(
H2('Are you sure?'),
P('Do you really want to move the item to the trash?'),
BR(),
INPUT(_type='submit', _name='yes', _value='Yes, trash it',
_style='margin-right:1em'
),
INPUT(_type='submit', _name='no', _value='No'),
)
response.view = 'are_you_sure.html'
if form.accepts(request, session):
if 'yes' in request.post_vars:
db[request.controller][request.args(0)] =
dict(is_active=False)
session.flash = 'Item moved to trash.'
redirect(URL(request.application, request.controller,
'index'))
elif 'no' in request.post_vars:
session.flash = 'Trash cancelled.'
redirect(URL(request.application, request.controller,
'index'))
else:
response.flash = 'Just checking.'
return dict( form=form, crumb_trail=crumb_trail)
# The traceback
Traceback (most recent call last):
File "/media/Myfiles/3-o/gluon/main.py", line 493, in wsgibase
serve_controller(request, response, session)
File "/media/Myfiles/3-o/gluon/main.py", line 202, in
serve_controller
page = run_controller_in(request.controller, request.function,
environment)
File "/media/Myfiles/3-o/gluon/compileapp.py", line 537, in
run_controller_in
restricted(code, environment, filename)
File "/media/Myfiles/3-o/gluon/restricted.py", line 204, in
restricted
exec ccode in environment
File "/media/Myfiles/3-o/applications/operations/controllers/
buckslips.py", line 344, in <module>
File "/media/Myfiles/3-o/gluon/globals.py", line 172, in <lambda>
self._caller = lambda f: f()
File "/media/Myfiles/3-o/applications/operations/controllers/
buckslips.py", line 341, in trash
return trash_it.trashit(request, session,response, db)
File "applications/operations/modules/trash_it.py", line 22, in
trashit
redirect(URL(request.application, request.controller, 'index'),
File "/media/Myfiles/3-o/gluon/http.py", line 128, in redirect
Location=location)
HTTP: 303 SEE OTHER