X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/d12ee4e0ec425e7f508c93ad1295a21a67ae1a30..56c9e7346a29e27a5bc75e9f27b5acb60a94df5a:/contact/forms.py diff --git a/contact/forms.py b/contact/forms.py index 8e78eed..8fa0149 100644 --- a/contact/forms.py +++ b/contact/forms.py @@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _ contact_forms = {} admin_list_width = 0 -class ContactFormMeta(forms.Form.__metaclass__): +class ContactFormMeta(forms.Form.__class__): def __new__(cls, *args, **kwargs): global admin_list_width model = super(ContactFormMeta, cls).__new__(cls, *args, **kwargs) @@ -33,12 +33,22 @@ class ContactForm(forms.Form): required_css_class = 'required' contact = forms.CharField(max_length=128) - def save(self, request): + def save(self, request, formsets=None): from .models import Attachment, Contact body = {} for name, value in self.cleaned_data.items(): if not isinstance(value, UploadedFile) and name != 'contact': - body[name] = value + body[name] = value + + for formset in formsets or []: + for f in formset.forms: + sub_body = {} + for name, value in f.cleaned_data.items(): + if not isinstance(value, UploadedFile): + sub_body[name] = value + if sub_body: + body.setdefault(f.form_tag, []).append(sub_body) + contact = Contact.objects.create(body=body, ip=request.META['REMOTE_ADDR'], contact=self.cleaned_data['contact'], @@ -52,8 +62,8 @@ class ContactForm(forms.Form): site = Site.objects.get_current() dictionary = { 'form_tag': self.form_tag, - 'site_name': site.name, - 'site_domain': site.domain, + 'site_name': getattr(self, 'site_name', site.name), + 'site_domain': getattr(self, 'site_domain', site.domain), 'contact': contact, } context = RequestContext(request)