Added contact form

This commit is contained in:
Zak Timson 2017-09-16 15:58:49 -04:00
parent 3194738756
commit 6e1177c42c
4 changed files with 71 additions and 6 deletions

View File

@ -33,6 +33,7 @@ EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'zaktimson@gmail.com'
EMAIL_HOST_PASSWORD = ''
EMAIL_PORT = 587
EMAIL_CONTACT = 'zaktimson@gmail.com'
# Application definition

View File

@ -27,6 +27,7 @@ urlpatterns = [
url(r'^admin/', admin.site.urls, name='admin'),
url(r'^attorney/(?P<id>\d+)', charter_members.views.index, name='attorney'),
url(r'^caselaw/', case_law.views.browser, name='caselaw'),
url(r'^contact/', main.views.contact, name='contact'),
url(r'^experts/', expert_witnesses.views.browser, name='experts'),
url(r'^experts/(<?P<id>\d+)', expert_witnesses.views.viewer, name='expert'),
url(r'^login/', main.views.login, name='login'),

View File

@ -1,6 +1,48 @@
{% extends 'base.html' %}
{% load static %}
{% block head %}
<script>
$(function() {
$('#contact-submit').click(function() {
var name = $('#contact-name');
var email = $('#contact-email');
var subject = $('#contact-subject');
var body = $('#contact-body');
function validateEmail($email) {
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
return emailReg.test( $email );
}
if(!name.val()) name.effect('shake');
if(!email.val() || !validateEmail(email.val())) email.effect('shake');
if(!subject.val()) subject.effect('shake');
if(!body.val()) body.effect('shake');
if(name.val() && email.val() && validateEmail(email.val()) && subject.val() && body.val()) {
$.post({% url 'contact' %}, {
csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val(),
name: name.val(),
email: email.val(),
subject: subject.val(),
body: body.val()
}).done(function(resp) {
if(resp['success']) {
name.val('');
email.val('');
subject.val('');
body.val('');
$('#contact-success').collapse('show');
setTimeout(function() {$('#contact-success').collapse('hide');}, 5000);
}
});
}
});
});
</script>
{% endblock %}
{% block body %}
<!-- Home -->
<div class="container-fluid baby">
@ -125,13 +167,19 @@
<br>
<br>
<div class="row">
<div class="col-lg-6">
<input class="form-control" placeholder="Name">
<input class="form-control" placeholder="Email">
<input class="form-control" placeholder="Subject">
<div id="contact-success" class="col-12 collapse" aria-expanded="false">
<div class=" alert alert-success">Successfully sent email!</div>
</div>
<div class="col-lg-6">
<textarea class="form-control h-100" placeholder="Message" rows="4"></textarea>
<input id="contact-name" class="form-control" placeholder="Name">
<input id="contact-email" class="form-control" placeholder="Email">
<input id="contact-subject" class="form-control" placeholder="Subject">
</div>
<div class="col-lg-6">
<textarea id="contact-body" class="form-control h-100" placeholder="Message" rows="4"></textarea>
</div>
<div class="col-12 mt-2">
<button id="contact-submit" class="btn btn-primary float-right">Send</button>
</div>
</div>
</div>

View File

@ -1,7 +1,8 @@
from django.shortcuts import render, redirect
from django.http import JsonResponse
from django.contrib import auth
from django.contrib.auth.models import User
from django.core import mail
from django.shortcuts import render, redirect
from charter_members.models import Attorney
from newsletters.models import Subscriber
@ -13,6 +14,20 @@ def index(request):
return render(request, 'index.html', {'attorneys': attorneys})
def contact(request):
name = request.POST.get('name')
email = request.POST.get('email')
subject = request.POST.get('subject')
body = request.POST.get('body')
result = False
if name is not None and email is not None and subject is not None and body is not None:
result = mail.send_mail(f'OACPL CONTACT: {subject}', body, settings.EMAIL_HOST_USER, [settings.EMAIL_CONTACT],
html_message=f'<strong>From:</strong> {name} ({email})<br><br>{body}')
return JsonResponse({'success': True if result else False})
def login(request):
if request.method == 'POST':
if request.POST.get('request') == 'login':