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.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):
Не нашли нужную программу или разработчика?
Заполните форму и с Вами свяжется наш специалист.
</div>"""),
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',)

Loading…
Cancel
Save