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'])
|