X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/b2789efe30a42c1c9780c6cf132d905ea7e41c87..97cfe21a67fcf45235d48bbf68b85a6d0b720204:/contact/forms.py diff --git a/contact/forms.py b/contact/forms.py index 0279e12..8fa0149 100644 --- a/contact/forms.py +++ b/contact/forms.py @@ -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)