You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

55 lines
1.8 KiB

# -*- coding: utf-8 -*-
import json
from django.http import HttpResponseBadRequest, HttpResponse
from django.views.decorators.http import require_POST
from django.views.decorators.csrf import csrf_protect
from django.template.loader import render_to_string
from django.core.mail import send_mail
from django.conf import settings
from callback.models import ReqAvail
from callback.forms import ReqAvailForm
CALLBACK_SETTINGS = getattr(settings, 'CALLBACK_SETTINGS')
@require_POST
@csrf_protect
def req_avail(request):
"""Отправить сообщение AJAX."""
if not request.is_ajax():
return HttpResponseBadRequest()
form = ReqAvailForm(data=request.POST)
if form.is_valid():
if request.user.is_authenticated():
user = request.user
else:
user = None
req = ReqAvail.objects.create(
name=form.cleaned_data['name'].strip(),
phone=form.cleaned_data['phone'].strip(),
message=form.cleaned_data['message'],
user=user,
)
# отправить письма менеджерам
subject = CALLBACK_SETTINGS['NEW_REQ_AVAIL_EMAIL_SUBJ']
sender = CALLBACK_SETTINGS['EMAIL_SENDER']
recipients = CALLBACK_SETTINGS['MANAGERS_EMAILS']
message = render_to_string('callback/req_avail_new.txt', {'req': req, })
send_mail(subject, message, sender, recipients)
data = {
'success': form.is_valid(),
'form_errors': form.non_field_errors(), # ошибки формы
}
if form.is_valid():
data['message'] = {
'title': u'Сообщение',
'msg': u'Ваша Сообщение отправлено!<br />Скоро с Вами свяжется наш менеджер.',
}
return HttpResponse(json.dumps(data), content_type='application/json')