Add a basic email on case study submission. Closes #50.

This commit is contained in:
Anna Sidwell 2018-04-02 23:02:49 +10:00
parent 1847b22c09
commit f4a7a108b5
2 changed files with 33 additions and 0 deletions

View File

@ -1,3 +1,5 @@
from django.core.mail import send_mail
from django.conf import settings
from django.views.generic import DetailView from django.views.generic import DetailView
from django.views.generic.base import TemplateView from django.views.generic.base import TemplateView
from django.views.generic.edit import CreateView from django.views.generic.edit import CreateView
@ -6,6 +8,17 @@ from django.urls import reverse
from .models import CaseStudy from .models import CaseStudy
from .forms import ShortCaseStudyForm, LongCaseStudyForm from .forms import ShortCaseStudyForm, LongCaseStudyForm
NOTIFY_MESSAGE = """
Hello,
Someone has submitted a new case study to the Ojuso website. Please
follow the below link to look over and approve it:
%s%s
Case Study Robot
"""
class Map(TemplateView): class Map(TemplateView):
template_name = "map/index.html" template_name = "map/index.html"
@ -21,6 +34,25 @@ class BaseForm(LoginRequiredMixin, CreateView):
success_url = '/case-study/create/success/' success_url = '/case-study/create/success/'
model = CaseStudy model = CaseStudy
def send_email(self):
"""Sends email to moderator to approve case study."""
send_mail(
'New case study submitted',
NOTIFY_MESSAGE % (
settings.SITE_URL,
reverse('admin:map_casestudy_change', args=[self.object.id])
),
'noreply@ojuso.org',
['database@ojuso.org'],
fail_silently=False,
)
def form_valid(self, form):
self.object = form.save()
self.send_email()
return super().form_valid(form)
class ShortForm(BaseForm): class ShortForm(BaseForm):
"""View for short version of case study form.""" """View for short version of case study form."""

View File

@ -84,6 +84,7 @@ MIDDLEWARE = [
ROOT_URLCONF = 'ojusomap.urls' ROOT_URLCONF = 'ojusomap.urls'
SITE_ID = 1 SITE_ID = 1
SITE_URL = 'https://map.ojuso.org'
TEMPLATES = [ TEMPLATES = [
{ {