Moved contact form model in order to be reusable by ungleich app, Created unit test for digitalglarus contact page, Created ungleich contact page, Created unit test for ungleich contact page, Created unit test for forms .

This commit is contained in:
Levi 2016-04-10 16:12:43 -05:00
commit 7dd4f7e70a
37 changed files with 425 additions and 31 deletions

View file

@ -1,5 +1,6 @@
from django.contrib import admin
from .models import Message, Supporter, DGGallery, DGPicture
from .models import Supporter, DGGallery, DGPicture
from utils.models import ContactMessage
#
class DGPictureInline(admin.StackedInline):
model = DGPicture
@ -8,5 +9,5 @@ class DGGalleryAdmin(admin.ModelAdmin):
inlines = [DGPictureInline]
admin.site.register(DGGallery, DGGalleryAdmin)
admin.site.register(Message)
admin.site.register(ContactMessage)
admin.site.register(Supporter)

View file

@ -1,33 +0,0 @@
from django import forms
from .models import Message
from django.template.loader import render_to_string
from django.core.mail import EmailMultiAlternatives
from django.utils.translation import ugettext_lazy as _
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'}),
}
labels = {
'name': _('Name'),
'email': _('Email'),
'phone_number': _('Phone number'),
'message': _('Message'),
}
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 = ['info@digitalglarus.ch']
email.send()

View file

@ -0,0 +1,18 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.4 on 2016-04-10 17:10
from __future__ import unicode_literals
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('digitalglarus', '0005_auto_20160407_0519'),
]
operations = [
migrations.DeleteModel(
name='Message',
),
]

View file

@ -3,21 +3,10 @@ from cms.models import CMSPlugin
from filer.fields.image import FilerImageField
class Message(models.Model):
name = models.CharField(max_length=200)
email = models.EmailField()
phone_number = models.CharField(max_length=200)
message = models.TextField()
received_date = models.DateTimeField(auto_now_add=True)
def __str__(self):
return "%s - %s - %s" % (self.name, self.email, self.received_date)
class Supporter(models.Model):
name = models.CharField(max_length=200)
description = models.TextField(null=True, blank=True)
def __str__(self):
return "%s" % (self.name)

View file

@ -40,7 +40,7 @@
</h2>
<hr>
<p>{% static_placeholder "digital_glarus_contact_form_text" %}</p>
<form action="" method="post" >
<form action="{% url 'digitalglarus:contact' %}" method="post" >
{% csrf_token %}
<div class="row">
<div autofocus class="form-group col-lg-4 {% if form.name.errors %}has-error text-danger{% endif %}">

View file

@ -0,0 +1,23 @@
from django.test import TestCase
from django.core.urlresolvers import reverse
from django.core.urlresolvers import resolve
class ContactViewTest(TestCase):
def setUp(self):
self.url = reverse('digitalglarus:contact')
self.data = {
'name': 'test',
'email': 'test@gmail.com',
'phone_number': '32123123123123',
'message': 'This is a message',
}
def url_resolve_to_view_correctly(self):
found = resolve(self.url)
self.assertEqual(found.func.__name__, self.view.__name__)
def test_any_user_should_contact_us(self):
response = self.client.post(self.url, self.data, follow=True)
self.assertEqual(response.status_code, 200)

View file

@ -1,3 +0,0 @@
from django.test import TestCase
# Create your tests here.

View file

@ -3,23 +3,22 @@ import datetime
from django.shortcuts import get_object_or_404, render
from django.forms import ModelForm
from django.http import HttpResponseRedirect
from django.core.urlresolvers import reverse
from django.core.urlresolvers import reverse_lazy
from django.utils.translation import get_language
from djangocms_blog.models import Post
from django.core.urlresolvers import resolve
from django.contrib import messages
from django.utils.translation import ugettext as _
from .models import Message, Supporter
from .forms import ContactUsForm
from .models import Supporter
from utils.forms import ContactUsForm
from django.views.generic.edit import FormView
class ContactView(FormView):
template_name = 'contact.html'
form_class = ContactUsForm
success_url = '/digitalglarus/contact/'
success_url = reverse_lazy('digitalglarus:contact')
success_message = _('Message Successfully Sent')
def form_valid(self, form):