Source code for apps.widgets.ask_admin.views
"""Views handler for ask admin page rendering."""
import json
from django.core.urlresolvers import reverse
from django.http import Http404, HttpResponse
from django.template.loader import render_to_string
from django.core.mail.message import EmailMultiAlternatives
from apps.managers.challenge_mgr import challenge_mgr
from apps.widgets.ask_admin.forms import FeedbackForm
[docs]def supply(request, page_name):
"""Supply view_objects for widget rendering, returns form."""
_ = request
_ = page_name
form = FeedbackForm(auto_id="help_%s")
form.url = reverse("help_index")
return {
"form": form,
}
[docs]def send_feedback(request):
"""send feedback."""
if request.method == "POST":
form = FeedbackForm(request.POST)
if form.is_valid():
html_message = render_to_string("email/ask_admin.html", {
"user": request.user,
"url": form.cleaned_data["url"],
"question": form.cleaned_data["question"],
})
message = render_to_string("email/ask_admin.txt", {
"user": request.user,
"url": form.cleaned_data["url"],
"question": form.cleaned_data["question"],
})
challenge = challenge_mgr.get_challenge()
# Using adapted version from Django source code
subject = u'[%s] %s asked a question' % (
challenge.name,
request.user.profile.name)
if challenge.email_enabled or True:
mail = EmailMultiAlternatives(subject, message, challenge.contact_email,
[challenge.contact_email, ], headers={
"Reply-To": request.user.email})
mail.attach_alternative(html_message, 'text/html')
print html_message
mail.send()
#print "email sent %s" % html_message
if request.is_ajax():
return HttpResponse(json.dumps({"success": True}),
mimetype="application/json")
raise Http404