diff contact/forms.py @ 581:ee87ea74d46b

For Django 1.4, rearranged project structure for new manage.py.
author Brian Neal <bgneal@gmail.com>
date Sat, 05 May 2012 17:10:48 -0500
parents gpp/contact/forms.py@dbd703f7d63a
children 38db6ec61af3
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contact/forms.py	Sat May 05 17:10:48 2012 -0500
@@ -0,0 +1,47 @@
+"""forms for the contact application"""
+
+from django import forms
+from django.conf import settings
+from django.template.loader import render_to_string
+from django.contrib.sites.models import Site
+from core.functions import send_mail
+
+
+class ContactForm(forms.Form):
+   """Form used to contact the website admins"""
+   name = forms.CharField(label = "Your Name", max_length = 61,
+         widget = forms.TextInput(attrs = {'size' : 50 }))
+   email = forms.EmailField(label = "Your Email",
+         widget = forms.TextInput(attrs = {'size' : 50 }))
+   subject = forms.CharField(max_length = 64,
+         widget = forms.TextInput(attrs = {'size' : 50 }))
+   honeypot = forms.CharField(max_length = 64, required = False,
+         label = 'If you enter anything in this field your message will be treated as spam')
+   message = forms.CharField(label = "Your Message", 
+         widget = forms.Textarea(attrs = {'rows' : 16, 'cols' : 50}), 
+         max_length = 3000)
+
+   recipient_list = [mail_tuple[1] for mail_tuple in settings.MANAGERS]
+
+   def clean_honeypot(self):
+      value = self.cleaned_data['honeypot']
+      if value:
+         raise forms.ValidationError(self.fields['honeypot'].label)
+      return value
+
+   def save(self):
+      # Send the feedback message email
+
+      site = Site.objects.get_current()
+
+      msg = render_to_string('contact/contact_email.txt',
+            {
+               'site_name' : site.name,
+               'user_name' : self.cleaned_data['name'],
+               'user_email' : self.cleaned_data['email'],
+               'message' : self.cleaned_data['message'],
+            })
+
+      subject = site.name + ' Feedback: ' + self.cleaned_data['subject']
+      send_mail(subject, msg, self.cleaned_data['email'], self.recipient_list)
+