annotate contact/forms.py @ 917:0365fdbb4d78

Fix app conflict with messages. Django's messages app label conflicts with our messages app. We can't easily rename our label as that will make us rename database tables. Since our app came first we'll just customize Django messages label. For Django 1.7.7 upgrade.
author Brian Neal <bgneal@gmail.com>
date Mon, 06 Apr 2015 20:02:25 -0500
parents 79a71b9d0a2a
children 6ac56115e0a8
rev   line source
gremmie@1 1 """forms for the contact application"""
gremmie@1 2
gremmie@1 3 from django import forms
gremmie@1 4 from django.conf import settings
gremmie@1 5 from django.template.loader import render_to_string
gremmie@1 6 from django.contrib.sites.models import Site
gremmie@1 7 from core.functions import send_mail
gremmie@1 8
gremmie@1 9
gremmie@1 10 class ContactForm(forms.Form):
bgneal@819 11 """Form used to contact the website admins"""
bgneal@819 12 name=forms.CharField(label="Your Name", max_length=61,
bgneal@819 13 widget=forms.TextInput(attrs={'size': 50 }))
bgneal@819 14 email=forms.EmailField(label="Your Email",
bgneal@819 15 widget=forms.TextInput(attrs={'size': 50 }))
bgneal@819 16 subject=forms.CharField(max_length=64,
bgneal@819 17 widget=forms.TextInput(attrs={'size': 50 }))
bgneal@819 18 honeypot=forms.CharField(max_length=64, required=False,
bgneal@819 19 label='If you enter anything in this field your message will be treated as spam')
bgneal@819 20 message=forms.CharField(label="Your Message",
bgneal@819 21 widget=forms.Textarea(attrs={'rows': 16, 'cols': 50}),
bgneal@819 22 max_length=3000)
gremmie@1 23
bgneal@819 24 recipient_list = [mail_tuple[1] for mail_tuple in settings.MANAGERS]
gremmie@1 25
bgneal@819 26 def clean_honeypot(self):
bgneal@819 27 value = self.cleaned_data['honeypot']
bgneal@819 28 if value:
bgneal@819 29 raise forms.ValidationError(self.fields['honeypot'].label)
bgneal@819 30 return value
gremmie@1 31
bgneal@819 32 def save(self):
bgneal@819 33 # Send the feedback message email
gremmie@1 34
bgneal@819 35 site = Site.objects.get_current()
gremmie@1 36
bgneal@819 37 msg = render_to_string('contact/contact_email.txt', {
bgneal@819 38 'site_name': site.name,
bgneal@819 39 'user_name': self.cleaned_data['name'],
bgneal@819 40 'user_email': self.cleaned_data['email'],
bgneal@892 41 'subject': self.cleaned_data['subject'],
bgneal@819 42 'message': self.cleaned_data['message'],
bgneal@819 43 })
gremmie@1 44
bgneal@819 45 subject = site.name + ' Feedback: ' + self.cleaned_data['subject']
bgneal@892 46 from_email = settings.GPP_NO_REPLY_EMAIL + '@' + site.domain
bgneal@892 47 send_mail(subject, msg, from_email, self.recipient_list,
bgneal@892 48 reply_to=self.cleaned_data['email'])