add view to share a page by email (#25139)

This commit is contained in:
Frédéric Péters 2019-02-25 14:15:47 +01:00
parent cc3b6c5bcb
commit 55f687d8df
2 changed files with 22 additions and 0 deletions

View File

@ -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'),
]

View File

@ -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)