Adapt copyright copy to use current year, Add bank account info, Set the correct text on supporters page, HTML Form adapted to Django template, Create forms.py to have all forms, Create Contact Django Form View, Create a HTML template to contact email, Send contact email to info@digitalglarus.ch

This commit is contained in:
Levi 2016-04-07 00:26:50 -05:00
parent 76f703b9d7
commit f667aae38e
12 changed files with 184 additions and 66 deletions

26
digitalglarus/forms.py Normal file
View file

@ -0,0 +1,26 @@
from django import forms
from .models import Message
from django.template.loader import render_to_string
from django.core.mail import EmailMultiAlternatives
class ContactUsForm(forms.ModelForm):
error_css_class = 'autofocus'
class Meta:
model = Message
fields = ['name', 'email', 'phone_number', 'message']
widgets = {
'name': forms.TextInput(attrs={'class': u'form-control'}),
'email': forms.TextInput(attrs={'class': u'form-control'}),
'phone_number': forms.TextInput(attrs={'class': u'form-control'}),
'message': forms.Textarea(attrs={'class': u'form-control'}),
}
def send_email(self):
text_content = render_to_string('emails/contact.txt', {'data': self.cleaned_data})
html_content = render_to_string('emails/contact.html', {'data': self.cleaned_data})
email = EmailMultiAlternatives('Subject', text_content)
email.attach_alternative(html_content, "text/html")
email.to = ['to@example.com']
email.send()

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-07 05:19
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('digitalglarus', '0004_dggallery_dggalleryplugin_dgpicture_dgsupportersplugin_supporter'),
]
operations = [
migrations.AlterField(
model_name='message',
name='received_date',
field=models.DateTimeField(auto_now_add=True),
),
]

View file

@ -8,8 +8,7 @@ class Message(models.Model):
email = models.EmailField() email = models.EmailField()
phone_number = models.CharField(max_length=200) phone_number = models.CharField(max_length=200)
message = models.TextField() message = models.TextField()
received_date = models.DateTimeField(auto_now_add=True)
received_date = models.DateTimeField('date received')
def __str__(self): def __str__(self):
return "%s - %s - %s" % (self.name, self.email, self.received_date) return "%s - %s - %s" % (self.name, self.email, self.received_date)

View file

@ -101,7 +101,7 @@
<div class="row"> <div class="row">
<div class="col-lg-12 text-center"> <div class="col-lg-12 text-center">
<p class="text-center">Copyright &copy; <a href="http://www.ungleich.ch">ungleich GmbH <p class="text-center">Copyright &copy; <a href="http://www.ungleich.ch">ungleich GmbH
2016</a></p> {% now "Y" %}</a></p>
</div> </div>
</div> </div>
</div> </div>

View file

@ -6,17 +6,33 @@
<div class="row"> <div class="row">
<div class="box"> <div class="box">
<div class="col-lg-12"> <div class="col-lg-12">
{% for message in messages %}
<div class="alert alert-success alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
<strong>{{ message }}</strong>
</div>
{% endfor %}
<hr> <hr>
<h2 class="intro-text text-center"> <h2 class="intro-text text-center">
{% placeholder 'digital_glarus_contact' %} <p class="text-center">
Contact <strong>DIGITAL GLARUS</strong>
</p>
</h2> </h2>
<hr> <hr>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
{% placeholder 'digital_glarus_contact_content' %} <p>
<iframe frameborder="0" height="400" scrolling="no" src="//maps.google.com/maps?hl=en&amp;ie=UTF8&amp;ll=46.969959,9.039001&amp;spn=56.506174,79.013672&amp;t=m&amp;z=12&amp;output=embed" width="100%"></iframe>
</p>
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{% placeholder 'digital_glarus_contact_information' %} <p>Phone: <strong>+41 (0) 44 534 66 22</strong></p>
<p>Email: <strong><a href="mailto:info@digitalglarus.ch">info@digitalglarus.ch</a></strong></p>
<p>Address:&nbsp; <strong><span style="">In Der Au 7, &nbsp;8762 Schwanden Switzerland</span></strong></p>
<div class="clearfix">&nbsp;</div>
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
</div> </div>
@ -26,38 +42,43 @@
<div class="box"> <div class="box">
<div class="col-lg-12"> <div class="col-lg-12">
<hr> <hr>
<h2 class="intro-text text-center">Contact <h2 class="intro-text text-center">
<strong>form</strong> Contact <strong>form</strong>
</h2> </h2>
<hr> <hr>
<p>If you want further information on Digital Glarus, please send us a message using the form below.</p> <p>If you want further information on Digital Glarus, please send us a message using the form below.</p>
<form action="{% url 'digitalglarus:contact' %}" method="post" role="form"> <form action="" method="post" >
{% csrf_token %} {% csrf_token %}
<div class="row"> <div class="row">
<div class="form-group col-lg-4"> <div autofocus class="form-group col-lg-4 {% if form.name.errors %}has-error text-danger{% endif %}">
<label>Name</label> {{ form.name.label_tag }}
<input type="text" class="form-control" name="name"> {{ form.name }}
{{ form.name.errors|striptags}}
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 {% if form.email.errors %}has-error text-danger {% endif %}">
<label>Email Address</label> {{ form.email.label_tag }}
<input type="email" class="form-control" name="email"> {{ form.email }}
{{ form.email.errors|striptags}}
</div> </div>
<div class="form-group col-lg-4"> <div class="form-group col-lg-4 {% if form.phone_number.errors %}has-error text-danger {% endif %}">
<label>Phone Number</label> {{ form.phone_number.label_tag }}
<input type="tel" class="form-control" name="phone_number"> {{ form.phone_number }}
{{ form.phone_number.errors|striptags}}
</div> </div>
<div class="clearfix"></div> <div class="clearfix"></div>
<div class="form-group col-lg-12"> <div class="form-group col-lg-12 {% if form.message.errors %}has-error text-danger {% endif %}">
<label>Message</label> {{ form.message.label_tag }}
<textarea class="form-control" rows="6" name="message"></textarea> {{ form.message }}
{{ form.message.errors|striptags}}
</div> </div>
{{ form.non_field_errors }}
<div class="form-group col-lg-12"> <div class="form-group col-lg-12">
<input type="hidden" name="save" value="contact"> <input type="hidden" name="save" value="contact">
<button type="submit" class="btn btn-default">Submit</button> <button type="submit" class="btn btn-default" {% if form.name.errors %} autofocus {% endif %}>Submit</button>
</div> </div>
</div> </div>
</form> </form>
</div> <!-- -->
</div> </div>
</div> </div>
</div> </div>

View file

@ -0,0 +1,15 @@
<<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
Name:{{data.name}}<br/>
Email:{{data.email}}<br/>
Phone number:{{data.phone_number}}<br/>
Message:{{data.message}}<br/>
</body>
</html>

View file

@ -0,0 +1,15 @@
<<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
Name:{{data.name}}<br/>
Email:{{data.email}}<br/>
Phone number:{{data.phone_number}}<br/>
Message:{{data.message}}<br/>
</body>
</html>

View file

@ -18,11 +18,14 @@
you can send your donation to: you can send your donation to:
</p> </p>
<p> <p>
<strong>Bank info</strong> <strong>Bank info</strong><br/>
<br> Postfinance<br/>
Account: 123123123123123123 89-849216-5<br/>
<br> <br/>
Name: Fake name CH36 0900 0000 8984 9216 5<br/>
Nico Schottelius<br/>
Hauptstrasse 14<br/>
8775 Luchsingen<br/>
</p> </p>
<p> <p>
If you want to donate us in other means (your time, skill, etc..) If you want to donate us in other means (your time, skill, etc..)

View file

@ -14,9 +14,10 @@
<hr> <hr>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<p> <div class="text-center">
Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. <h3>HERE ARE OUR PROUD SUPPORTERS OF PROJECT DIGITALGLARUS!</h3>
</p> <p class="text-center">Thanks to our supporters, the first cowerking space in Glarus will have a new look!</p>
</div>
</div> </div>
<div class="col-md-12"> <div class="col-md-12">
<div class="text-center"> <div class="text-center">

View file

@ -1,9 +1,10 @@
from django.conf.urls import url from django.conf.urls import url
from . import views from . import views
from .views import ContactView
urlpatterns = [ urlpatterns = [
url(r'old_contact$', views.contact, name='contact'), url(r'contact/?$', ContactView.as_view(), name='contact'),
url(r'supporters/?$', views.supporters, name='supporters'), url(r'supporters/?$', views.supporters, name='supporters'),
url(r'support-us/?$', views.support, name='support'), # url(r'', views.index, name='index'), url(r'support-us/?$', views.support, name='support'), # url(r'', views.index, name='index'),
url(r'blog/',views.blog,name='blog'), url(r'blog/',views.blog,name='blog'),

View file

@ -7,14 +7,26 @@ from django.core.urlresolvers import reverse
from django.utils.translation import get_language from django.utils.translation import get_language
from djangocms_blog.models import Post from djangocms_blog.models import Post
from django.core.urlresolvers import resolve from django.core.urlresolvers import resolve
from django.contrib import messages
from django.utils.translation import ugettext as _
from .models import Message, Supporter from .models import Message, Supporter
from .forms import ContactUsForm
from django.views.generic.edit import FormView
class MessageForm(ModelForm):
required_css_class = 'form-control' class ContactView(FormView):
class Meta: template_name = 'contact.html'
model = Message form_class = ContactUsForm
fields = ['name', 'email', 'phone_number', 'message' ] success_url = '/digitalglarus/contact/'
success_message = _('Message Successfully Sent')
def form_valid(self, form):
form.save()
form.send_email()
messages.add_message(self.request, messages.SUCCESS, self.success_message)
return super(ContactView, self).form_valid(form)
def detail(request, message_id): def detail(request, message_id):
@ -41,23 +53,23 @@ def home(request):
def letscowork(request): def letscowork(request):
return render(request, 'digitalglarus/letscowork.html') return render(request, 'digitalglarus/letscowork.html')
def contact(request): # def contact(request):
message = Message(received_date=datetime.datetime.now()) # message = Message(received_date=datetime.datetime.now())
form = MessageForm(request.POST, instance=message) # form = MessageForm(request.POST, instance=message)
if request.method == 'POST': # if request.method == 'POST':
if form.is_valid(): # if form.is_valid():
form.save() # form.save()
return HttpResponseRedirect(reverse("digitalglarus:contact")) # return HttpResponseRedirect(reverse("digitalglarus:contact"))
# form = MessageForm() # # form = MessageForm()
context = { # context = {
'form': form, # 'form': form,
} # }
return render(request, 'digitalglarus/contact.html', context) # return render(request, 'digitalglarus/contact.html', context)
def blog(request): def blog(request):
@ -76,9 +88,11 @@ def blog_detail(request, slug):
} }
return render(request, 'post_detail.html', context) return render(request, 'post_detail.html', context)
def support(request): def support(request):
return render(request, 'support.html') return render(request, 'support.html')
def supporters(request): def supporters(request):
context = { context = {
'supporters': Supporter.objects.order_by('name') 'supporters': Supporter.objects.order_by('name')

View file

@ -181,6 +181,9 @@ DATABASES = {
} }
} }
# Internationalization # Internationalization
# https://docs.djangoproject.com/en/1.7/topics/i18n/ # https://docs.djangoproject.com/en/1.7/topics/i18n/