From 2834da09347972a571efe12ba7f1e0ffb1686c97 Mon Sep 17 00:00:00 2001 From: Aarni Date: Wed, 24 May 2017 20:26:35 +0300 Subject: [PATCH] Email new member on request and accept --- members/urls.py | 10 ++++++++ members/views.py | 62 ++++++++++++++++++++++++++++++++++++++++++++++++ sikweb/urls.py | 1 - 3 files changed, 72 insertions(+), 1 deletion(-) diff --git a/members/urls.py b/members/urls.py index f577ecf..de099b3 100644 --- a/members/urls.py +++ b/members/urls.py @@ -23,6 +23,10 @@ from members.views import application_list from members.views import application_edit from members.views import application_form_success +# email validation +# from members.views import validateEmail, validate_success, validate_fail + + favicon_view = RedirectView.as_view(url='static/img/favicon.ico', permanent=True) urlpatterns = [ @@ -91,4 +95,10 @@ urlpatterns = [ # favourite icon url(r'^favicon\.ico$', favicon_view), + + # email validation + # url(r'^validate/(?P[0-9A-Za-z_\-\']+)/(?P[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', validateEmail, name='user-activation-link'), + # url(r'^validate/success/$', validate_success), + # url(r'^validate/failure/$', validate_fail), + ] diff --git a/members/views.py b/members/views.py index f47a42c..97aead0 100644 --- a/members/views.py +++ b/members/views.py @@ -7,6 +7,14 @@ from django.core.mail import send_mail from django.conf import settings from django.utils.translation import ugettext as _ +'''Email validation''' +from django.db.models.signals import post_save +from django.dispatch import receiver +from .tokens import email_token_generator +from django.utils.http import urlsafe_base64_encode +from django.utils.encoding import force_bytes +from django.core.mail import send_mail + import json import requests import logging @@ -440,3 +448,57 @@ def export_csv(request, *args, **kwargs): writer.writerow(field_list) return response + + +#Email hooks for regiseration +# def validateEmail(request, *args, **kwargs): +# uidb64 = request.GET.get('uidb64') +# token = request.GET.get('token') +# if uidb64 is not None and token is not None: +# try: +# uid = urlsafe_base64_decode(bytes(uidb64, 'utf-8')) +# user = User.objects.get(pk=uid) +# if email_token_generator.check_token(user, token) and user.is_validated == 0: +# user.is_validated=True +# user.save() +# return HttpResponseRedirect('/validate/success/') +# except: +# pass +# return HttpResponseRedirect('/validate/failure/') + +# def validate_success(request, *args, **kwargs): +# context = {} +# context.success = True +# return render('activated.html') + +# def validate_fail(request, *args, **kwargs): +# context = {} +# context.success = False +# return render('activated.html') + +def send_mail_wrapper(subject, message, email_to): + send_mail( + subject, + message, + settings.DEFAULT_EMAIL_FROM, + [email_to], + fail_silently=False + ) + +@receiver(post_save, sender=Request) +def email_on_request(sender, instance, created, **kwargs): + if created: + #token = email_token_generator.make_token(instance) + #uid = urlsafe_base64_encode(force_bytes(instance.id)) + subject = 'Test1' + message = 'Please validate your email address\r\n' + #message += settings.VALIDATION_BASE_URL + uid.decode("utf-8") + '/' + token + '/\r\n' + send_mail_wrapper(subject, message, instance.email) + +@receiver(post_save, sender=Member) +def email_on_accept(sender, instance, created, **kwargs): + if created: + subject = 'Test2' + message = 'Jäsenhakemuksesi on hyväksytty!!!\r\n' + send_mail_wrapper(subject, message, instance.email) + diff --git a/sikweb/urls.py b/sikweb/urls.py index 3408825..924c5b4 100644 --- a/sikweb/urls.py +++ b/sikweb/urls.py @@ -26,7 +26,6 @@ import webapp.urls import infoscreen.urls import members.urls - urlpatterns = [ url(r'', include('webapp.urls')), url(r'^members/', include('members.urls')),