summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
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
commit92f39de5a44a43883978ff2e297b062af8e0faf9 (patch)
tree7d84a02004b5a52bd41cacaf2352cfd42da26497 /chimere/views.py
parent6b829cd8a901bdab2bf85a0a9e81133127e05fed (diff)
downloadChimère-92f39de5a44a43883978ff2e297b062af8e0faf9.tar.bz2
Chimère-92f39de5a44a43883978ff2e297b062af8e0faf9.zip
Explicit redirect after form submission.
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py27
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