add email sending logic to contact us form

remotes/origin/HEAD
Max Yakovenko 8 years ago
parent 6a95c93ad8
commit b9e2387916
  1. 17
      contact_us/forms.py

@ -1,5 +1,5 @@
from crispy_forms.helper import FormHelper 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 import forms
from django.conf import settings from django.conf import settings
from django.urls import reverse_lazy from django.urls import reverse_lazy
@ -20,9 +20,11 @@ from .models import (
class ContactUsForm(RequestNotifiable, forms.ModelForm): class ContactUsForm(RequestNotifiable, forms.ModelForm):
field_template = 'bootstrap/forms/product_search.html' field_template = 'bootstrap/forms/contact_us.html'
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
self.next = kwargs.pop('next')
self.helper = FormHelper() self.helper = FormHelper()
self.helper.form_action = reverse_lazy('contact_us:send') self.helper.form_action = reverse_lazy('contact_us:send')
self.helper.form_method = 'post' self.helper.form_method = 'post'
@ -32,6 +34,7 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm):
Не нашли нужную программу или разработчика? Не нашли нужную программу или разработчика?
Заполните форму и с Вами свяжется наш специалист. Заполните форму и с Вами свяжется наш специалист.
</div>"""), </div>"""),
Hidden('next', reverse_lazy(self.next)),
Field('name', css_class="left-menu__text", placeholder=_("Имя"), template=self.field_template), 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('email', css_class="left-menu__text", placeholder=_("Email"), template=self.field_template),
Field('subject', css_class="left-menu__text", placeholder=_("Название продукта"), 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: for field_name in fields:
fields[field_name].required = True fields[field_name].required = True
def is_valid(self):
return super().is_valid()
def save(self, commit=True): def save(self, commit=True):
self.instance.status = STATUS_NEW self.instance.status = STATUS_NEW
return super().save(commit) return super().save(commit)
def send_email(self, request, files=()): def send_email(self, request):
context = { context = {
'from_email': self.instance.email, 'from_email': self.instance.email,
'bcc': self.get_def_email(settings) if self.get_def_email(settings) is not None else (), '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, context,
) )
@property
def is_request_sent(self):
return self.notification_sent
class Meta: class Meta:
model = Request model = Request
fields = ('name', 'email', 'subject', 'phone') fields = ('name', 'email', 'subject', 'phone',)

Loading…
Cancel
Save