X-Git-Url: https://git.mdrn.pl/edumed.git/blobdiff_plain/d12ee4e0ec425e7f508c93ad1295a21a67ae1a30..ed0db62b6d7a88e7a7862d8abf8976a3d58f3f17:/contact/forms.py diff --git a/contact/forms.py b/contact/forms.py index 8e78eed..e369e95 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'],