backoffice: redirect to card page on cancel (#55359)
This commit is contained in:
parent
e84887a930
commit
f88df5fb43
|
@ -128,6 +128,10 @@ def test_carddata_management(pub):
|
|||
resp = resp.click('foo')
|
||||
assert resp.text.count('<tr') == 2 # header + row of data
|
||||
|
||||
resp = resp.click('Add')
|
||||
resp = resp.form.submit('cancel')
|
||||
assert resp.location.endswith('/backoffice/data/foo/')
|
||||
|
||||
|
||||
def test_carddata_management_categories(pub):
|
||||
user = create_user(pub)
|
||||
|
|
|
@ -303,6 +303,9 @@ class CardFillPage(FormFillPage):
|
|||
if self.formdef.user_support == 'optional':
|
||||
self.has_user_support = True
|
||||
|
||||
def get_default_return_url(self):
|
||||
return '%s/data/%s/' % (get_publisher().get_backoffice_url(), self.formdef.url_name)
|
||||
|
||||
def redirect_after_submitted(self, form, filled):
|
||||
if get_request().form.get('_popup'):
|
||||
popup_response_data = json.dumps(
|
||||
|
@ -316,10 +319,7 @@ class CardFillPage(FormFillPage):
|
|||
context={'popup_response_data': popup_response_data},
|
||||
is_django_native=True,
|
||||
)
|
||||
result = super().redirect_after_submitted(form, filled)
|
||||
if get_response().get_header('location').endswith('/backoffice/submission/'):
|
||||
return redirect('..')
|
||||
return result
|
||||
return super().redirect_after_submitted(form, filled)
|
||||
|
||||
def create_form(self, *args, **kwargs):
|
||||
form = super().create_form(*args, **kwargs)
|
||||
|
|
|
@ -152,6 +152,9 @@ class FormFillPage(PublicFormFillPage):
|
|||
response = self.get_lateral_block()
|
||||
return response
|
||||
|
||||
def get_default_return_url(self):
|
||||
return '%s/submission/' % get_publisher().get_backoffice_url()
|
||||
|
||||
def get_transient_formdata(self, magictoken=Ellipsis):
|
||||
formdata = super().get_transient_formdata(magictoken=magictoken)
|
||||
if self.selected_user_id:
|
||||
|
@ -325,7 +328,7 @@ class FormFillPage(PublicFormFillPage):
|
|||
filled = self.get_current_draft() or self.formdef.data_class()()
|
||||
if filled.id and filled.status != 'draft':
|
||||
get_session().message = ('error', _('This form has already been submitted.'))
|
||||
return redirect(get_publisher().get_backoffice_url() + '/submission/')
|
||||
return redirect(self.get_default_return_url())
|
||||
filled.just_created()
|
||||
filled.data = self.formdef.get_data(form)
|
||||
magictoken = get_request().form['magictoken']
|
||||
|
@ -357,14 +360,14 @@ class FormFillPage(PublicFormFillPage):
|
|||
if filled.submission_context and filled.submission_context.get('return_url'):
|
||||
url = filled.submission_context['return_url']
|
||||
else:
|
||||
url = get_publisher().get_backoffice_url() + '/submission/'
|
||||
url = self.get_default_return_url()
|
||||
else:
|
||||
url = filled.get_url(backoffice=True)
|
||||
|
||||
return redirect(url)
|
||||
|
||||
def cancelled(self):
|
||||
url = get_publisher().get_backoffice_url() + '/submission/'
|
||||
url = self.get_default_return_url()
|
||||
formdata = self.get_current_draft() or self.formdef.data_class()()
|
||||
if formdata.submission_context and formdata.submission_context.get('return_url'):
|
||||
url = formdata.submission_context.get('return_url')
|
||||
|
|
Loading…
Reference in New Issue