def send_feedback(request, email_template_name='im/feedback_mail.txt'): form = FeedbackForm(request.POST) if not form.is_valid(): logger.error("Invalid feedback request: %r", form.errors) raise faults.BadRequest('Invalid data') msg = form.cleaned_data['feedback_msg'] data = form.cleaned_data['feedback_data'] try: send_feedback_func(msg, data, request.user, email_template_name) except: return HttpResponse(status=502) return HttpResponse(status=200)
def send_feedback(request, email_template_name="im/feedback_mail.txt"): form = FeedbackForm(request.POST) if not form.is_valid(): logger.error("Invalid feedback request: %r", form.errors) raise faults.BadRequest("Invalid data") msg = form.cleaned_data["feedback_msg"] data = form.cleaned_data["feedback_data"] try: send_feedback_func(msg, data, request.user, email_template_name) except: return HttpResponse(status=502) return HttpResponse(status=200)
def feedback(request, template_name='im/feedback.html', email_template_name='im/feedback_mail.txt', extra_context=None): """ Allows a user to send feedback. In case of GET request renders a form for providing the feedback information. In case of POST sends an email to support team. If the user isn't logged in, redirects to settings.LOGIN_URL. **Arguments** ``template_name`` A custom template to use. This is optional; if not specified, this will default to ``im/feedback.html``. ``extra_context`` An dictionary of variables to add to the template context. **Template:** im/signup.html or ``template_name`` keyword argument. **Settings:** * LOGIN_URL: login uri """ extra_context = extra_context or {} if request.method == 'GET': form = FeedbackForm() if request.method == 'POST': if not request.user: return HttpResponse('Unauthorized', status=401) form = FeedbackForm(request.POST) if form.is_valid(): msg = form.cleaned_data['feedback_msg'] data = form.cleaned_data['feedback_data'] send_feedback(msg, data, request.user, email_template_name) message = _(astakos_messages.FEEDBACK_SENT) messages.success(request, message) return HttpResponseRedirect(reverse('feedback')) return render_response(template_name, feedback_form=form, context_instance=get_context( request, extra_context))
def feedback(request, template_name='im/feedback.html', email_template_name='im/feedback_mail.txt', extra_context=None): """ Allows a user to send feedback. In case of GET request renders a form for providing the feedback information. In case of POST sends an email to support team. If the user isn't logged in, redirects to settings.LOGIN_URL. **Arguments** ``template_name`` A custom template to use. This is optional; if not specified, this will default to ``im/feedback.html``. ``extra_context`` An dictionary of variables to add to the template context. **Template:** im/signup.html or ``template_name`` keyword argument. **Settings:** * LOGIN_URL: login uri """ extra_context = extra_context or {} if request.method == 'GET': form = FeedbackForm() if request.method == 'POST': if not request.user: return HttpResponse('Unauthorized', status=401) form = FeedbackForm(request.POST) if form.is_valid(): msg = form.cleaned_data['feedback_msg'] data = form.cleaned_data['feedback_data'] send_feedback(msg, data, request.user, email_template_name) message = _(astakos_messages.FEEDBACK_SENT) messages.success(request, message) return HttpResponseRedirect(reverse('feedback')) return render_response(template_name, feedback_form=form, context_instance=get_context(request, extra_context))