Generated: Mon 2013-04-29 09:50 CEST
Source file: /home/tobi/Projects/django-frequently/src/frequently/forms.py
Stats: 30 executed, 0 missed, 7 excluded, 20 ignored
"""Forms for the ``django-frequently`` application."""from django import formsfrom django.conf import settingsfrom django.core.mail import send_mailfrom django.template.defaultfilters import slugifyfrom django.template.loader import render_to_stringfrom django.utils.translation import ugettext_lazy as _from frequently.models import Entryclass EntryForm(forms.ModelForm): """ Form to submit a new entry. """ class Meta: model = Entry fields = ('question', 'submitted_by', ) def __init__(self, owner=None, *args, **kwargs): self.owner = owner super(EntryForm, self).__init__(*args, **kwargs) self.fields['submitted_by'].label = _('Email') self.fields['submitted_by'].required = True def save(self, *args, **kwargs): # Create unique slug self.instance.slug = slugify(self.cleaned_data['question']) while True: try: Entry.objects.get(slug=self.instance.slug) except Entry.DoesNotExist: break else: self.instance.slug = '{0}-1'.format(self.instance.slug) if self.owner: self.instance.owner = self.owner try: settings.FREQUENTLY_RECIPIENTS ctx_dict = { 'submitted_by': self.cleaned_data['submitted_by'], 'question': self.cleaned_data['question'], } subject = render_to_string( 'frequently/email/new_question_subject.txt', ctx_dict) subject = ''.join(subject.splitlines()) message = render_to_string( 'frequently/email/new_question_body.txt', ctx_dict) to = [item[1] for item in settings.FREQUENTLY_RECIPIENTS] send_mail(subject, message, settings.DEFAULT_FROM_EMAIL, to) except AttributeError: pass return super(EntryForm, self).save(*args, **kwargs)