def process_form(request, form_definition, extra_context={}, disable_redirection=False): context = extra_context success_message = form_definition.success_message or _( 'Thank you, the data was submitted successfully.') error_message = form_definition.error_message or _( 'The data could not be submitted, please try again.') form_error = False form_success = False is_submit = False # If the form has been submitted... if request.method == 'POST' and request.POST.get( form_definition.submit_flag_name): form = DesignedForm(form_definition, None, request.POST, request.FILES) is_submit = True if request.method == 'GET' and request.GET.get( form_definition.submit_flag_name): form = DesignedForm(form_definition, None, request.GET) is_submit = True if is_submit: if form.is_valid(): # Handle file uploads using storage object files = handle_uploaded_files(form_definition, form) # Successful submission messages.success(request, success_message) form_success = True if form_definition.log_data: form_definition.log(form, request.user) if form_definition.mail_to: form_definition.send_mail(form, files) if form_definition.success_redirect and not disable_redirection: return HttpResponseRedirect(form_definition.action or '?') if form_definition.success_clear: form = DesignedForm(form_definition) # clear form else: form_error = True messages.error(request, error_message) else: if form_definition.allow_get_initial: form = DesignedForm(form_definition, initial_data=request.GET) else: form = DesignedForm(form_definition) context.update({ 'form_error': form_error, 'form_success': form_success, 'form': form, 'form_definition': form_definition }) context.update(csrf(request)) if form_definition.display_logged: logs = form_definition.logs.all().order_by('created') context.update({'logs': logs}) return context
def process_form(request, form_definition, context={}, is_cms_plugin=False): success_message = form_definition.success_message or _( 'Thank you, the data was submitted successfully.') error_message = form_definition.error_message or _( 'The data could not be submitted, please try again.') message = None form_error = False form_success = False is_submit = False # If the form has been submitted... if request.method == 'POST' and request.POST.get( form_definition.submit_flag_name): form = DesignedForm(form_definition, None, request.POST) is_submit = True if request.method == 'GET' and request.GET.get( form_definition.submit_flag_name): form = DesignedForm(form_definition, None, request.GET) is_submit = True if is_submit: if form.is_valid(): # Successful submission messages.success(request, success_message) message = success_message form_success = True if form_definition.log_data: form_definition.log(form) if form_definition.mail_to: form_definition.send_mail(form) if form_definition.success_redirect and not is_cms_plugin: # TODO Redirection does not work for cms plugin return HttpResponseRedirect(form_definition.action or '?') if form_definition.success_clear: form = DesignedForm(form_definition) # clear form else: form_error = True messages.error(request, error_message) message = error_message else: if form_definition.allow_get_initial: form = DesignedForm(form_definition, initial_data=request.GET) else: form = DesignedForm(form_definition) context.update({ 'message': message, 'form_error': form_error, 'form_success': form_success, 'form': form, 'form_definition': form_definition }) context.update(csrf(request)) return context
def test_custom_message_template(greeting_form): """ Test that custom message templates work as expected. """ greeting_form.message_template = '{{ greeting }}, friend!' form = DesignedForm(greeting_form, data={ 'greeting': 'Hello', }) assert form.is_valid() greeting_form.log(form) mail = greeting_form.send_mail(form) assert mail.body == 'Hello, friend!'