Commit 815e37b9 authored by wilsaj's avatar wilsaj

Fixed #379. Redirect using request.url when using "save and continue" in model edit_view

this will work for apps located at places other than the server root
parent f1c5db1c
......@@ -1246,7 +1246,7 @@ class BaseModelView(BaseView, ActionsMixin):
if self.update_model(form, model):
if '_continue_editing' in request.form:
flash(gettext('Model was successfully saved.'))
return redirect(request.full_path)
return redirect(request.url)
else:
return redirect(return_url)
......
......@@ -2,6 +2,9 @@ from nose.tools import eq_, ok_
from flask import Flask
from werkzeug.wsgi import DispatcherMiddleware
from werkzeug.test import Client
from wtforms import fields
from flask.ext.admin import Admin, form
......@@ -175,6 +178,21 @@ def test_mockview():
eq_(rv.status_code, 302)
eq_(rv.headers['location'], 'http://localhost/admin/modelview/')
# Create a dispatched application to test that edit view's "save and
# continue" functionality works when app is not located at root
dummy_app = Flask('dummy_app')
dispatched_app = DispatcherMiddleware(dummy_app, {'/dispatched': app})
dispatched_client = Client(dispatched_app)
app_iter, status, headers = dispatched_client.post(
'/dispatched/admin/modelview/edit/?id=3',
data=dict(col1='another test!', col2='test@', col3='test#', _continue_editing='True'))
eq_(status, '302 FOUND')
eq_(headers['Location'], 'http://localhost/dispatched/admin/modelview/edit/?id=3')
model = view.updated_models.pop()
eq_(model.col1, 'another test!')
def test_permissions():
app, admin = setup()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment