add view to share a page by email (#25139)
This commit is contained in:
parent
cc3b6c5bcb
commit
55f687d8df
|
@ -21,4 +21,5 @@ from . import views
|
|||
|
||||
urlpatterns = [
|
||||
url(r'^gnm/plusone/$', views.plusone, name='gnm-plus-one'),
|
||||
url(r'^gnm/share/$', views.share, name='gnm-share'),
|
||||
]
|
||||
|
|
|
@ -17,8 +17,10 @@
|
|||
|
||||
from django.conf import settings
|
||||
from django.contrib import messages
|
||||
from django.core.mail import EmailMultiAlternatives
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.template import RequestContext
|
||||
from django.template.loader import render_to_string
|
||||
|
||||
from combo.utils import requests, get_templated_url
|
||||
|
||||
|
@ -43,3 +45,22 @@ def plusone(request, *args, **kwargs):
|
|||
return HttpResponseRedirect('/')
|
||||
else:
|
||||
return HttpResponseRedirect('/services/')
|
||||
|
||||
def share(request, *args, **kwargs):
|
||||
subject_template = 'gnm/share_email_subject.txt'
|
||||
text_body_template = 'gnm/share_email_body.txt'
|
||||
html_body_template = 'gnm/share_email_body.html'
|
||||
|
||||
ctx = {}
|
||||
ctx['request'] = request
|
||||
ctx['name'] = request.POST['name']
|
||||
ctx['url'] = request.build_absolute_uri(request.POST['url'])
|
||||
subject = render_to_string([subject_template], ctx).strip()
|
||||
text_body = render_to_string([text_body_template], ctx)
|
||||
html_body = render_to_string([html_body_template], ctx)
|
||||
message = EmailMultiAlternatives(subject, text_body, to=[request.POST['email']])
|
||||
message.attach_alternative(html_body, 'text/html')
|
||||
message.send()
|
||||
|
||||
url = request.POST.get('url')
|
||||
return HttpResponseRedirect(url)
|
||||
|
|
Loading…
Reference in New Issue