X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/98b2c09ef1f1c8288a31517f61423264c6b3291c..de25649c03f4d7d476bf8764ba8671681bfd6324:/src/contact/forms.py diff --git a/src/contact/forms.py b/src/contact/forms.py index 3cdf59dee..8fe00702e 100644 --- a/src/contact/forms.py +++ b/src/contact/forms.py @@ -1,13 +1,16 @@ -# -*- coding: utf-8 -*- +# This file is part of Wolnelektury, licensed under GNU Affero GPLv3 or later. +# Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information. +# +import json 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.urlresolvers import reverse from django.core.validators import validate_email from django import forms from django.template.loader import render_to_string from django.template import RequestContext +from django.urls import reverse from django.utils.translation import ugettext_lazy as _ @@ -26,9 +29,8 @@ class ContactFormMeta(forms.Form.__class__): return model -class ContactForm(forms.Form): +class ContactForm(forms.Form, metaclass=ContactFormMeta): """Subclass and define some fields.""" - __metaclass__ = ContactFormMeta form_tag = None form_title = _('Contact form') @@ -57,7 +59,7 @@ class ContactForm(forms.Form): body.setdefault(f.form_tag, []).append(sub_body) contact = Contact.objects.create( - body=body, + body=json.dumps(body), ip=request.META['REMOTE_ADDR'], contact=self.cleaned_data['contact'], form_tag=self.form_tag) @@ -74,15 +76,14 @@ class ContactForm(forms.Form): 'site_domain': getattr(self, 'site_domain', site.domain), 'contact': contact, } - context = RequestContext(request) mail_managers_subject = render_to_string([ 'contact/%s/mail_managers_subject.txt' % self.form_tag, 'contact/mail_managers_subject.txt', - ], dictionary, context).strip() + ], dictionary, request).strip() mail_managers_body = render_to_string([ 'contact/%s/mail_managers_body.txt' % self.form_tag, 'contact/mail_managers_body.txt', - ], dictionary, context) + ], dictionary, request) mail_managers(mail_managers_subject, mail_managers_body, fail_silently=True) try: @@ -93,19 +94,19 @@ class ContactForm(forms.Form): mail_subject = render_to_string([ 'contact/%s/mail_subject.txt' % self.form_tag, 'contact/mail_subject.txt', - ], dictionary, context).strip() + ], dictionary, request).strip() if self.result_page: mail_body = render_to_string( 'contact/%s/results_email.txt' % contact.form_tag, { 'contact': contact, 'results': self.results(contact), - }, context) + }, request) else: mail_body = render_to_string([ 'contact/%s/mail_body.txt' % self.form_tag, 'contact/mail_body.txt', - ], dictionary, context) + ], dictionary, request) send_mail(mail_subject, mail_body, 'no-reply@%s' % site.domain, [contact.contact], fail_silently=True) return contact