From b9e2387916f26be7c1de2e806c0175c53d7704e9 Mon Sep 17 00:00:00 2001 From: Max Yakovenko Date: Tue, 31 Jul 2018 11:34:26 +0300 Subject: [PATCH] add email sending logic to contact us form --- contact_us/forms.py | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/contact_us/forms.py b/contact_us/forms.py index df14d5c..d5f7d17 100644 --- a/contact_us/forms.py +++ b/contact_us/forms.py @@ -1,5 +1,5 @@ from crispy_forms.helper import FormHelper -from crispy_forms.layout import Layout, Div, HTML, Field, Submit +from crispy_forms.layout import Layout, Div, HTML, Field, Submit, Hidden from django import forms from django.conf import settings from django.urls import reverse_lazy @@ -20,9 +20,11 @@ from .models import ( class ContactUsForm(RequestNotifiable, forms.ModelForm): - field_template = 'bootstrap/forms/product_search.html' + field_template = 'bootstrap/forms/contact_us.html' def __init__(self, *args, **kwargs): + self.next = kwargs.pop('next') + self.helper = FormHelper() self.helper.form_action = reverse_lazy('contact_us:send') self.helper.form_method = 'post' @@ -32,6 +34,7 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): Не нашли нужную программу или разработчика? Заполните форму и с Вами свяжется наш специалист. """), + Hidden('next', reverse_lazy(self.next)), Field('name', css_class="left-menu__text", placeholder=_("Имя"), template=self.field_template), Field('email', css_class="left-menu__text", placeholder=_("Email"), template=self.field_template), Field('subject', css_class="left-menu__text", placeholder=_("Название продукта"), template=self.field_template), @@ -45,11 +48,14 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): for field_name in fields: fields[field_name].required = True + def is_valid(self): + return super().is_valid() + def save(self, commit=True): self.instance.status = STATUS_NEW return super().save(commit) - def send_email(self, request, files=()): + def send_email(self, request): context = { 'from_email': self.instance.email, 'bcc': self.get_def_email(settings) if self.get_def_email(settings) is not None else (), @@ -67,10 +73,7 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): context, ) - @property - def is_request_sent(self): - return self.notification_sent class Meta: model = Request - fields = ('name', 'email', 'subject', 'phone') + fields = ('name', 'email', 'subject', 'phone',)