From fdccd58c5725e5942711561c99f9b16ded677650 Mon Sep 17 00:00:00 2001 From: Max Yakovenko Date: Wed, 1 Aug 2018 08:23:44 +0300 Subject: [PATCH] translate request status items, fix email context and reffactor form phone field --- contact_us/forms.py | 29 ++++++++++------------------- contact_us/models.py | 34 ++++++++++------------------------ 2 files changed, 20 insertions(+), 43 deletions(-) diff --git a/contact_us/forms.py b/contact_us/forms.py index d5f7d17..b897a45 100644 --- a/contact_us/forms.py +++ b/contact_us/forms.py @@ -1,18 +1,14 @@ from crispy_forms.helper import FormHelper -from crispy_forms.layout import Layout, Div, HTML, Field, Submit, Hidden +from crispy_forms.layout import Layout, HTML, Field, Submit, Hidden + from django import forms from django.conf import settings from django.urls import reverse_lazy from django.utils.translation import ugettext_lazy as _ -from ckeditor.widgets import CKEditorWidget - - from .mixins import RequestNotifiable from .models import ( - Request, - STATUS_NEW, STATUS_REJECTED, - STATUS_PROCESSED, STATUS_IN_PROCESSING + Request, STATUS_NEW ) # -------------------------------- Client-side forms -----------------------------------# @@ -29,16 +25,11 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): self.helper.form_action = reverse_lazy('contact_us:send') self.helper.form_method = 'post' self.helper.layout = Layout( - HTML(""" -
- Не нашли нужную программу или разработчика? - Заполните форму и с Вами свяжется наш специалист. -
"""), 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), - Field('phone', css_class="left-menu__text", placeholder=_("Номер телефона"), template=self.field_template), + Field('phone', css_class="left-menu__text", placeholder=_("+79781234567"), template=self.field_template), Submit('send', _("Отправить"), css_class="left-menu__btn") ) super(ContactUsForm, self).__init__(*args, **kwargs) @@ -46,7 +37,8 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): def init_fields(self, fields): for field_name in fields: - fields[field_name].required = True + if field_name != "phone": + fields[field_name].required = True def is_valid(self): return super().is_valid() @@ -57,14 +49,13 @@ class ContactUsForm(RequestNotifiable, forms.ModelForm): 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 (), - 'recipients': self.get_def_email(settings) if self.get_def_email(settings) is not None else (), - 'context': { + 'from_email': settings.DEFAULT_FROM_EMAIL, + 'recipients': (settings.DEFAULT_FROM_EMAIL,), + 'email': { 'name': self.instance.name, 'email': self.instance.email, 'subject': self.instance.subject, - 'phone': self.instance.message, + 'phone': self.instance.phone or None, }, 'send_at_date': self.instance.create_at, diff --git a/contact_us/models.py b/contact_us/models.py index 7676da1..f1daaae 100644 --- a/contact_us/models.py +++ b/contact_us/models.py @@ -13,50 +13,36 @@ from core.models import AbstractStatusModel, STATUS_DELETED STATUS_NEW = 0 from core.models import AbstractStatusModel, STATUS_NEW, STATUS_CHOICES, STATUS_ACTIVE, STATUS_DELETED -# --------------------- REQUEST STATUS LIST -------------------- - +# --------------------- REQUEST STATUS LIST ------------------- STATUS_IN_PROCESSING = 10 STATUS_PROCESSED = 20 -STATUS_REJECTED = 40 REQUEST_STATUS_CHOICES = ( STATUS_CHOICES[0], - (STATUS_IN_PROCESSING, _('Processing')), - (STATUS_PROCESSED, _('Processed')), - (STATUS_REJECTED, _('Rejected')), + (STATUS_IN_PROCESSING, _('Обрабатывается')), + (STATUS_PROCESSED, _('Обработан')), STATUS_CHOICES[-1] ) REQUEST_DEFAULT_STATUS = STATUS_NEW -# ----------------- REQUEST FILE STATUS LIST ------------------ - -FILE_REQUEST_STATUS_CHOICES = ( - (STATUS_ACTIVE, _('Active')), - (STATUS_DELETED, _('Deleted')), -) - -FILE_REQUEST_DEFAULT_STATUS = STATUS_ACTIVE - class Request(AbstractStatusModel): name = models.CharField(_('Name'), max_length=255) email = models.EmailField(_('Email')) subject = models.CharField(_('Subject'), max_length=500) message = models.TextField(blank=True, null=True) - phone_regex = RegexValidator(regex=r'^((\+7)|8)?\d{10}$', - message="Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.") + phone_regex = RegexValidator( + regex=r'^((\+7)|8)?\d{10}$', + message=_("Phone number must be entered in the format: '+99999999999'. Up to 12 digits allowed.") + ) phone = models.CharField(validators=(phone_regex,), max_length=12, blank=True, null=True) - status = models.SmallIntegerField(_('Status'), default=REQUEST_DEFAULT_STATUS, choices=REQUEST_STATUS_CHOICES) + status = models.SmallIntegerField(_('статус'), default=REQUEST_DEFAULT_STATUS, choices=REQUEST_STATUS_CHOICES) @property def is_status_processed(self): return self.status == STATUS_PROCESSED - @property - def is_status_rejected(self): - return self.status == STATUS_REJECTED - @property def is_status_processing(self): return self.status == STATUS_IN_PROCESSING @@ -65,5 +51,5 @@ class Request(AbstractStatusModel): return self.subject class Meta: - verbose_name = _('Request') - verbose_name_plural = _('Requests') + verbose_name = _('Запрос') + verbose_name_plural = _('Запросы')