diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-16 12:47:46 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-07-16 12:47:46 +0200 |
commit | 92f39de5a44a43883978ff2e297b062af8e0faf9 (patch) | |
tree | 7d84a02004b5a52bd41cacaf2352cfd42da26497 /chimere/views.py | |
parent | 6b829cd8a901bdab2bf85a0a9e81133127e05fed (diff) | |
download | Chimère-92f39de5a44a43883978ff2e297b062af8e0faf9.tar.bz2 Chimère-92f39de5a44a43883978ff2e297b062af8e0faf9.zip |
Explicit redirect after form submission.
Diffstat (limited to 'chimere/views.py')
-rw-r--r-- | chimere/views.py | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/chimere/views.py b/chimere/views.py index 4521001..9b67b70 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -359,15 +359,27 @@ def get_edit_page(redirect_url, item_cls, item_form, f.save(item) base_uri = get_base_uri(request) forms.notifySubmission(base_uri, item) - response_dct = get_base_response(request, area_name) - return redirect( - redirect_url + '-item', - area_name + '/' if area_name else '', - item.ref_item.pk, 'submited'), None, subcategories + return redirect(reverse('form-result', args=['true'])), None, \ + subcategories else: response_dct['error_message'] = _( "There are missing field(s)" " and/or errors in the submitted form.") + context = "" + for error_key in form.errors: + context += "\n * {}: {}".format( + error_key, " ; ".join(form.errors[error_key])) + forms.notifyByEmail( + "[] {}".format(settings.PROJECT_NAME, + _('Error on form submission')), + 'Context: ' + context, + [email for name, email in settings.ADMINS] + + ) + if settings.DEBUG: + print(context) + return redirect(reverse('form-result')), None, \ + subcategories else: form = item_form(instance=init_item, subcategories=listed_subcats, area_name=area_name) @@ -379,6 +391,11 @@ def get_edit_page(redirect_url, item_cls, item_form, return func +def form_result(request, success='false'): + res = {'success': True if success == "true" else False} + return render(request, 'chimere/form_result_msg.html', res) + + def action_do_redirect(action_name, available_actions): # redirect to an edit is_edit = 'edit' in action_name |