From 24a8ea9c9acf07dc15e9d66fcf731327ff43f55f Mon Sep 17 00:00:00 2001 From: hardythe1 Date: Wed, 8 Oct 2014 18:09:08 +0530 Subject: added contact form & related validations --- static/website/templates/contact.html | 47 ++++++++++++++++++++++++----------- website/forms.py | 12 +++++++++ website/views.py | 29 +++++++++++++-------- 3 files changed, 63 insertions(+), 25 deletions(-) diff --git a/static/website/templates/contact.html b/static/website/templates/contact.html index f96fc8a..d877435 100644 --- a/static/website/templates/contact.html +++ b/static/website/templates/contact.html @@ -1,26 +1,45 @@ {% extends 'website/templates/base.html' %} +{% load widget_tweaks %} + {% block current %} Contact Us {% endblock %} {% block content %} -

Feel free to drop us a message regarding any of your queries.

{% if mailsent %}

Thank you for contacting us ! We will be reaching you out soon.

-{% endif %} -
-{% csrf_token %} - - - - - - -
- -
-
+{% else %} +

Feel free to drop us a message regarding any of your queries.

+
+
+
{% csrf_token %} +
+ + {% render_field form.username class+='form-control' %} + {{ form.username.errors }} +
+
+ + {% render_field form.useremail class+='form-control' %} + {{ form.useremail.errors }} +
+
+ + {% render_field form.subject class+='form-control' %} + {{ form.subject.errors }} +
+
+ + {% render_field form.message class+='form-control' %} + {{ form.message.errors }} +
+ +
+
+
+ +{% endif %} {% endblock %} diff --git a/website/forms.py b/website/forms.py index 80d7a39..c5f894f 100644 --- a/website/forms.py +++ b/website/forms.py @@ -68,3 +68,15 @@ class ProposalForm(forms.ModelForm): elif attachment.size > (5*1024*1024): raise forms.ValidationError('File size exceeds 5MB') return attachment + +class ContactUsForm(forms.Form): + useremail = forms.EmailField() + username = forms.CharField() + subject = forms.CharField() + message = forms.CharField(widget=forms.Textarea(attrs={'cols': 75, 'rows': 4})) + + + def clean_useremail(self): + useremail = self.cleaned_data.get('useremail') + validate_email(useremail) + return useremail diff --git a/website/views.py b/website/views.py index ce44011..359eec3 100644 --- a/website/views.py +++ b/website/views.py @@ -5,7 +5,7 @@ from django.shortcuts import render from django.template import RequestContext from django.core.mail import send_mail -from website.forms import UserLoginForm, UserRegisterForm, ProposalForm +from website.forms import UserLoginForm, UserRegisterForm, ProposalForm, ContactUsForm from website.models import Proposal def home(request): @@ -18,17 +18,24 @@ def venue(request): return render(request, 'website/templates/venue.html') def contact(request): + context = {} if request.method == "POST": - context = {} - context.update(csrf(request)) - from_email = request.POST['user_email'] - to = ("scipy@fossee.in",) - subject = request.POST['subject'] - message = request.POST['message'] - send_mail(subject, message, from_email, to, fail_silently=True) - context['mailsent'] = True - return render(request, 'website/templates/contact.html', context) - return render(request, 'website/templates/contact.html') + form = ContactUsForm(request.POST) + if form.is_valid(): + form = form.cleaned_data + from_email = form['useremail'] + to = ('scipy@fossee.in',) + subject = form['subject'] + "-" + form['username'] + message = form['message'] + send_mail(subject, message, from_email, to, fail_silently=True) + context['mailsent'] = True + return render(request, 'website/templates/contact.html', context) + else: + context['form'] = form + return render(request, 'website/templates/contact.html', context) + form = ContactUsForm() + context['form'] = form + return render(request, 'website/templates/contact.html', context) def register(request): -- cgit