annotate contact/forms.py @ 887:9a15f7c27526

Actually save model object upon change. This commit was tested on the comments model. Additional logging added. Added check for Markdown image references. Added TODOs after observing behavior on comments.
author Brian Neal <bgneal@gmail.com>
date Tue, 03 Feb 2015 21:09:44 -0600
parents 38db6ec61af3
children 79a71b9d0a2a
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@819 41 'message': self.cleaned_data['message'],
bgneal@819 42 })
gremmie@1 43
bgneal@819 44 subject = site.name + ' Feedback: ' + self.cleaned_data['subject']
bgneal@819 45 send_mail(subject, msg, self.cleaned_data['email'], self.recipient_list)