95 lines
5.8 KiB
Python
95 lines
5.8 KiB
Python
# -*- coding: utf-8 -*-
|
||
from django.shortcuts import render
|
||
from django.http import HttpRequest, HttpResponse
|
||
from django.core.mail import send_mail
|
||
from smtplib import SMTPException
|
||
import json
|
||
import datetime
|
||
|
||
# from django.core.context_processors import csrf
|
||
|
||
|
||
def main_init(request: HttpRequest) -> HttpResponse:
|
||
""" Главная страница (статичная, только с проверками куков)
|
||
|
||
:param request: входящий http-запрос
|
||
:return response: исходящий http-ответ
|
||
"""
|
||
to_template = {} # словарь, для передачи шаблону
|
||
num_viz = 0 # как будто первый визит
|
||
template = "index.html" # шаблон
|
||
# проверяем куки числа визита
|
||
if "NumVisit" in request.COOKIES:
|
||
# стоят куки, и это не первый визит
|
||
num_viz = request.COOKIES["NumVisit"] # читаем число визитов
|
||
num_viz = int(num_viz) + 1 # увеличиваем порядковый номер визитов
|
||
# ПРОВЕРЯЧЕМ КУКИ ПРОСМОТРЕ ЦЕНОВЫХ ПРЕДЛОЖЕНИЙ
|
||
if "LastVisit" in request.COOKIES:
|
||
# стоят куки
|
||
last_visit = json.loads(request.COOKIES["LastVisit"])
|
||
last_visit2 = []
|
||
for i in last_visit:
|
||
last_visit2.append({
|
||
"Time": datetime.datetime.fromtimestamp(i["Time"]),
|
||
"LastURL": i["LastURL"],
|
||
"LastAddress": i["LastAddress"],
|
||
"LastApart": i["LastApart"]
|
||
})
|
||
to_template.update({'LAST_VISIT': last_visit2[:3]})
|
||
else:
|
||
to_template.update({'LAST_VISIT': None})
|
||
to_template.update({'META_DOCUMENT_STATE': u"Static"}) # Эта страничка статичная (в шаблон)
|
||
to_template.update({'NV': num_viz})
|
||
# to_template.update(csrf(request)) # токен, для метода POST и GET
|
||
response = render(request, template, to_template)
|
||
response.set_cookie("NumVisit", num_viz, max_age=604800) # ставим или перезаписываем куки (неделя)
|
||
return response
|
||
|
||
|
||
def tariff(request: HttpRequest) -> HttpResponse:
|
||
""" Показывает страничку с тарифами (статика + отправка почты)
|
||
|
||
:param request: входящий http-запрос
|
||
:return response: исходящий http-ответ
|
||
"""
|
||
to_template = {} # для передачи в шаблон
|
||
template = "tariff.html" # шаблон
|
||
if request.method == 'POST':
|
||
# print request.POST
|
||
if 'tariff' in request.POST and 'email_' in request.POST \
|
||
and 'fio_' in request.POST \
|
||
and 'tel_' in request.POST \
|
||
and 'accompanying_message' in request.POST:
|
||
message = "---"
|
||
if request.POST['tariff'] == "1":
|
||
message = "{α} альфа — разместить свои цены на «Окнардии» (бесплатно)"
|
||
elif request.POST['tariff'] == "2":
|
||
message = "{β} бета — разместить свои цены на «Окнардии»"
|
||
elif request.POST['tariff'] == "3":
|
||
message = "{δ} дельта — разместить баннеры"
|
||
elif request.POST['tariff'] == "4":
|
||
message = "{ω} омега — виджет на свой сайт и размещение цены на «Окнардии»"
|
||
elif request.POST['tariff'] == "5":
|
||
message = "Другая форма сотрудничества и/или предложение"
|
||
message = f"ЗАПРОС НА СОТРУДНИЧЕСТВО\n\nВы (или кто-то вместо вас) отправил запрос на сотрудничество " \
|
||
f"с оконным\n агрегатором «Окнардия». Указан:\n email — {request.POST['email_']}\n" \
|
||
f" телефон — {request.POST['tel_']}\n имя — {request.POST['fio_']}\n\nЗапрос поступил на " \
|
||
f"сотрудничество по тарифу:\n{message}\n\nВ качестве сопроводительного сообщения:\n" \
|
||
f"-----------------------------------------------\n{request.POST['accompanying_message']}\n" \
|
||
f"-----------------------------------------------\n\nМы обязательно свяжемся с вами в" \
|
||
f" ближайшее время.\n\n\n~~~~~~~~~~~~\nС уважением,\nАдминистрация оконного агрегатора" \
|
||
f" «Окнардии»\n\nhttps://oknardia.ru (info@oknardia.ru)\n"
|
||
try:
|
||
# Собираем почтовое сообщение для себе
|
||
send_mail('OKNARDIA_TO__ADMIN: ЗАПРОС НА СОТРУДНИЧЕСТВО', message,
|
||
'info@oknardia.ru', ['erjemin@gmail.com', 't@oknardia.ru'], fail_silently=False)
|
||
# Собираем почтовое сообщение для клиента
|
||
send_mail('ОКНАРДИЯ: запрос на сотрудничество', message,
|
||
'info@oknardia.ru', [request.POST['email_']], fail_silently=False)
|
||
to_template.update({'SENDER': "Ok!"})
|
||
except SMTPException:
|
||
# Что-то пошло не так и почта не отправилась. Надо подумать что в этим делать
|
||
to_template.update({'SENDER': "Error!"})
|
||
pass
|
||
return render(request, template, to_template)
|