490e6706d9
This reverts commit dce53630f7
.
75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
from django.core.mail import send_mail
|
||
from django.conf import settings
|
||
from django.views.generic import DetailView
|
||
from django.views.generic.base import TemplateView
|
||
from django.views.generic.edit import CreateView
|
||
from django.contrib.auth.mixins import LoginRequiredMixin
|
||
from django.urls import reverse
|
||
from .models import CaseStudy
|
||
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):
|
||
template_name = "map/index.html"
|
||
|
||
|
||
class Create(LoginRequiredMixin, TemplateView):
|
||
template_name = "map/how_much_time.html"
|
||
|
||
|
||
class BaseForm(LoginRequiredMixin, CreateView):
|
||
"""View for base case study form."""
|
||
template_name = 'map/form.html'
|
||
success_url = '/case-study/create/success/'
|
||
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',
|
||
[settings.DATABASE_EMAIL],
|
||
fail_silently=False,
|
||
)
|
||
|
||
def form_valid(self, form):
|
||
self.object = form.save()
|
||
self.send_email()
|
||
return super().form_valid(form)
|
||
|
||
|
||
class ShortForm(BaseForm):
|
||
"""View for short version of case study form."""
|
||
form_class = ShortCaseStudyForm
|
||
|
||
|
||
class LongForm(BaseForm):
|
||
"""View for long version of case study form."""
|
||
form_class = LongCaseStudyForm
|
||
|
||
|
||
class FormSuccess(TemplateView):
|
||
template_name = 'map/form-success.html'
|
||
|
||
|
||
class CaseStudyDetail(DetailView):
|
||
template_name = "map/detail.html"
|
||
model = CaseStudy
|
||
context_object_name = "case_study"
|