|
|
|
@ -2,8 +2,7 @@ import logging |
|
|
|
|
|
|
|
|
|
|
|
from django.contrib import messages |
|
|
|
from django.contrib import messages |
|
|
|
from django.contrib.messages.views import SuccessMessageMixin |
|
|
|
from django.contrib.messages.views import SuccessMessageMixin |
|
|
|
from django.db import transaction |
|
|
|
from django.http import HttpResponseRedirect, HttpResponseBadRequest, Http404 |
|
|
|
from django.urls import reverse_lazy |
|
|
|
|
|
|
|
from django.views.generic import FormView |
|
|
|
from django.views.generic import FormView |
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
from django.utils.translation import ugettext_lazy as _ |
|
|
|
|
|
|
|
|
|
|
|
@ -14,17 +13,37 @@ logger = logging.getLogger(__name__) |
|
|
|
|
|
|
|
|
|
|
|
# Create your views here. |
|
|
|
# Create your views here. |
|
|
|
class ContactUsFormView(SuccessMessageMixin, FormView): |
|
|
|
class ContactUsFormView(SuccessMessageMixin, FormView): |
|
|
|
|
|
|
|
next = None |
|
|
|
template_name = None |
|
|
|
template_name = None |
|
|
|
form_class = ContactUsForm |
|
|
|
form_class = ContactUsForm |
|
|
|
http_method_names = ['post'] |
|
|
|
http_method_names = ('post',) |
|
|
|
success_message = _('Request has been sent successfully!') |
|
|
|
success_message = _('Запрос был успешно отправлен') |
|
|
|
error_message = _('Some errors occurred during sending the request. Check the input fields or try latter.') |
|
|
|
error_message = _('Произошла ошибка во время отправки. Проверьте заполненные поля или попробуйте позже') |
|
|
|
|
|
|
|
|
|
|
|
def form_valid(self, form): |
|
|
|
def form_valid(self, form): |
|
|
|
return super().form_valid(form) |
|
|
|
try: |
|
|
|
|
|
|
|
form.save() |
|
|
|
|
|
|
|
form.send_email(self.request) |
|
|
|
|
|
|
|
except Exception as e: |
|
|
|
|
|
|
|
self.form_invalid(form=form) |
|
|
|
|
|
|
|
messages.add_message(self.request,messages.SUCCESS,self.success_message,extra_tags='contact_us_form_message') |
|
|
|
|
|
|
|
return HttpResponseRedirect(self.next) |
|
|
|
|
|
|
|
|
|
|
|
def form_invalid(self, form): |
|
|
|
def form_invalid(self, form): |
|
|
|
context = self.get_context_data() |
|
|
|
context = self.get_context_data() |
|
|
|
if len(form.errors) > 0: |
|
|
|
if len(form.errors) > 0: |
|
|
|
context['form_show_errors'] = True |
|
|
|
context['form_show_errors'] = True |
|
|
|
return self.render_to_response(context) |
|
|
|
messages.add_message(self.request,messages.ERROR,self.error_message,extra_tags='contact_us_form_message') |
|
|
|
|
|
|
|
return HttpResponseRedirect(self.next) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def dispatch(self, request, *args, **kwargs): |
|
|
|
|
|
|
|
if request.POST.get('next',None) is None: |
|
|
|
|
|
|
|
raise Http404() |
|
|
|
|
|
|
|
else: |
|
|
|
|
|
|
|
self.next = request.POST.get('next') |
|
|
|
|
|
|
|
return super().dispatch(request, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def get_form_kwargs(self): |
|
|
|
|
|
|
|
kwargs = super().get_form_kwargs() |
|
|
|
|
|
|
|
kwargs['next'] = self.next |
|
|
|
|
|
|
|
return kwargs |
|
|
|
|