from django.contrib.sites.models import Site
+from django.core.exceptions import ValidationError
from django.core.files.uploadedfile import UploadedFile
from django.core.mail import send_mail, mail_managers
-from django.core.validators import email_re
+from django.core.validators import validate_email
from django import forms
from django.template.loader import render_to_string
from django.template import RequestContext
contact_forms = {}
-class ContactFormMeta(forms.Form.__metaclass__):
+admin_list_width = 0
+class ContactFormMeta(forms.Form.__class__):
def __new__(cls, *args, **kwargs):
+ global admin_list_width
model = super(ContactFormMeta, cls).__new__(cls, *args, **kwargs)
assert model.form_tag not in contact_forms, 'Duplicate form_tag.'
+ if model.admin_list:
+ admin_list_width = max(admin_list_width, len(model.admin_list))
contact_forms[model.form_tag] = model
return model
__metaclass__ = ContactFormMeta
form_tag = None
- title = _('Contact form')
+ form_title = _('Contact form')
submit_label = _('Submit')
+ admin_list = None
required_css_class = 'required'
contact = forms.CharField(max_length=128)
mail_managers(mail_managers_subject, mail_managers_body,
fail_silently=True)
- if email_re.match(contact.contact):
+ try:
+ validate_email(contact.contact)
+ except ValidationError:
+ pass
+ else:
mail_subject = render_to_string([
'contact/%s/mail_subject.txt' % self.form_tag,
'contact/mail_subject.txt',