Skip to content

Commit

Permalink
Merge pull request #145 from shapiromatron/144-contact-login-required
Browse files Browse the repository at this point in the history
make login required to contact; capture prior page
  • Loading branch information
shapiromatron committed Aug 13, 2019
2 parents 370f031 + a15abbb commit f05b3c0
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 15 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -17,6 +17,7 @@ project/celerybeat*
__pycache__
.idea/*
.ipynb_checkpoints
.mypy_cache/
data
docs/_build
env
Expand Down
35 changes: 23 additions & 12 deletions project/assessment/forms.py
@@ -1,3 +1,5 @@
from textwrap import dedent

from django.core.mail import send_mail, mail_admins
from django import forms
from django.conf import settings
Expand Down Expand Up @@ -224,25 +226,34 @@ def __init__(self, *args, **kwargs):


class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
name = forms.CharField(max_length=100, disabled=True)
email = forms.EmailField(disabled=True)
subject = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea)

def send_email(self):
subject = '[HAWC contact us]: {}'.format(self.cleaned_data['subject'])
content = '{0}\n\n{1}\n{2}'.format(
self.cleaned_data['message'],
self.cleaned_data['name'],
self.cleaned_data['email']
)
mail_admins(subject, content, fail_silently=False)
previous_page = forms.CharField(widget=forms.HiddenInput)

def __init__(self, *args, **kwargs):
self.back_href = kwargs.pop('back_href', None)
self.back_href = kwargs.pop("back_href")
self.user = kwargs.pop("user")
super().__init__(*args, **kwargs)
self.fields["name"].initial = self.user.get_full_name()
self.fields["email"].initial = self.user.email
self.fields["previous_page"].initial = self.back_href
self.helper = self.setHelper()

def send_email(self):
subject = f"[HAWC contact us]: {self.cleaned_data['subject']}"
body = dedent(
f"""\
{self.cleaned_data["message"]}
---
Full name: {self.cleaned_data["name"]}
Email: {self.cleaned_data["email"]}
Previous page: {self.cleaned_data["previous_page"]}
"""
)
mail_admins(subject, body, fail_silently=False)

def setHelper(self):
# by default take-up the whole row-fluid
for fld in list(self.fields.keys()):
Expand Down
8 changes: 5 additions & 3 deletions project/assessment/views.py
Expand Up @@ -157,16 +157,18 @@ def get_context_data(self, **kwargs):
return context


class Contact(MessageMixin, FormView):
class Contact(LoginRequiredMixin, MessageMixin, FormView):
template_name = 'hawc/contact.html'
form_class = forms.ContactForm
success_url = reverse_lazy('home')
success_message = 'Your message has been sent!'

def get_form_kwargs(self):
kwargs = super().get_form_kwargs()
kwargs['back_href'] = self.request.META.get(
'HTTP_REFERER', reverse('portal'))
kwargs.update(
back_href=self.request.META.get('HTTP_REFERER', reverse('portal')),
user=self.request.user,
)
return kwargs

def form_valid(self, form):
Expand Down

0 comments on commit f05b3c0

Please sign in to comment.