views.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. # Create your views here.
  2. from django.core.mail import EmailMessage, get_connection
  3. from django.http import HttpResponseRedirect
  4. from django.shortcuts import render
  5. import core.settings as settings
  6. from landing.forms import *
  7. from .models import *
  8. from django.http import HttpResponse, HttpResponseNotFound, Http404
  9. from dbsynce.models import ServiceCategory
  10. from dbsynce.models import Provider
  11. from dbsynce.models import Service
  12. from sharix_admin.tables import ProvidersTable
  13. from landing.tables import ProvidersLandingTable
  14. from sharix_admin.tables import ServiceTariffsTable
  15. def send_email_mess(body, sub):
  16. with get_connection(
  17. host=settings.EMAIL_HOST,
  18. port=settings.EMAIL_PORT,
  19. username=settings.EMAIL_HOST_USER,
  20. password=settings.EMAIL_HOST_PASSWORD,
  21. use_tls=settings.EMAIL_USE_TLS,
  22. use_ssl=settings.EMAIL_USE_SSL
  23. ) as connection:
  24. # print(form.cleaned_data)
  25. subject = sub
  26. email_from = settings.EMAIL_HOST_USER
  27. recipient_list = [settings.EMAIL_TO]
  28. message = body
  29. EmailMessage(subject, message, email_from, recipient_list, connection=connection).send()
  30. def index_html(request):
  31. if request.POST:
  32. form = MyForm(request.POST)
  33. if form.is_valid():
  34. body = f"""
  35. Имя: {form.cleaned_data['name']}\n
  36. Email: {form.cleaned_data['email']}\n
  37. Комментарий: {form.cleaned_data['message']}
  38. """
  39. send_email_mess(body, "Пользователь оставил отзыв")
  40. else:
  41. form = MyForm()
  42. menu = ServiceCategory.objects.filter(status='0')
  43. #menu = LandingPage.objects.filter(slug__startswith='clean')
  44. context = {
  45. # "mainpage":LandingPage.objects.get(slug="main"),
  46. "menu": menu,
  47. "form": form
  48. }
  49. return render(request, 'landing/pages/main.html', context=context)
  50. def service_category_html(request, pk):
  51. template_name = 'landing/pages/service_category.html'
  52. context_object_name = 'service_category'
  53. page_title = 'О категории услуг'
  54. page_name = 'service_category_detail'
  55. menu = ServiceCategory.objects.filter(status='0')
  56. table_class = ProvidersLandingTable
  57. try:
  58. services = Service.objects.filter(service_category=pk)
  59. provider=[]
  60. for i in services:
  61. try:
  62. provider.append(Provider.objects.filter(service=i))
  63. except Provider.DoesNotExist:
  64. pass
  65. except Service.DoesNotExist:
  66. raise Http404('Service does not exist')
  67. if not services:
  68. menu = ServiceCategory.objects.filter(status='0')
  69. context = {
  70. "menu": menu
  71. }
  72. return render(request, 'landing/pages/in_work.html', context=context)
  73. else:
  74. menu = ServiceCategory.objects.filter(status='0')
  75. zipped_list = zip(services,provider)
  76. context = {
  77. "menu": menu,
  78. "services": services,
  79. "provider": provider,
  80. "tables": zipped_list,
  81. }
  82. return render(request, template_name, context=context)
  83. def page_html(request):
  84. if request.POST:
  85. form = MyForm(request.POST)
  86. if form.is_valid():
  87. print(form.cleaned_data)
  88. else:
  89. form = MyForm()
  90. slug = (request.path[1:-1])
  91. if not LandingPage.objects.filter(slug=slug):
  92. menu = LandingPage.objects.filter(slug__startswith='clean')
  93. print(menu)
  94. if not LandingPage.objects.filter(slug__startswith='clean'):
  95. menu = LandingPage.objects.filter(slug__startswith='clean')
  96. context = {
  97. "form": form
  98. }
  99. else:
  100. context = {
  101. "form": form,
  102. "menu": menu
  103. }
  104. return render(request, 'landing/pages/in_work.html', context=context)
  105. else:
  106. menu = LandingPage.objects.filter(slug__startswith='clean')
  107. print(menu)
  108. context = {
  109. "mainpage": LandingPage.objects.get(slug=slug),
  110. "form": form,
  111. "menu": menu
  112. }
  113. return render(request, 'landing/pages/simple.html', context=context)
  114. def send_email(request):
  115. if request.method == 'POST':
  116. print(request.POST['email'])
  117. return HttpResponseRedirect('/')
  118. # simple page
  119. def contact_html(request):
  120. menu = ServiceCategory.objects.filter(status='0')
  121. context = {
  122. "menu": menu,
  123. }
  124. return render(request, 'landing/pages/contact.html', context)
  125. def price_html(request):
  126. menu = ServiceCategory.objects.filter(status='0')
  127. return render(request, 'landing/pages/price.html')
  128. def order_html(request):
  129. menu = ServiceCategory.objects.filter(status='0')
  130. if request.POST:
  131. form = OrderForm(request.POST)
  132. if form.is_valid():
  133. services = ""
  134. for item in form.cleaned_data['service']:
  135. services += f"{SERVICE_CHOICES[int(item)][1]}, "
  136. body = f"""
  137. Имя: {form.cleaned_data['name']}\n
  138. Фамилия: {form.cleaned_data['surname']}\n
  139. Номер телефона: {form.cleaned_data['phone']}\n
  140. Выбранные услуги: {services}\n
  141. Желаемое время оказания услуги: {form.cleaned_data['datetime']}\n
  142. Комментарий: {form.cleaned_data['comment'] or "Комментарий отсутствует"}
  143. """
  144. send_email_mess(body, "ЗАКАЗ")
  145. else:
  146. form = OrderForm()
  147. context = {
  148. "form": form,
  149. "menu": menu
  150. }
  151. return render(request, 'landing/pages/order.html', context)
  152. def faq_html(request):
  153. menu = ServiceCategory.objects.filter(status='0')
  154. if request.POST:
  155. form = MyForm(request.POST)
  156. if form.is_valid():
  157. body = f"""
  158. Имя: {form.cleaned_data['name']}\n
  159. Email: {form.cleaned_data['email']}\n
  160. Вопрос: {form.cleaned_data['message']}
  161. """
  162. send_email_mess(body, "Пользователь задал вопрос")
  163. else:
  164. form = MyForm()
  165. context = {
  166. "form": form,
  167. "menu": menu,
  168. "faq": FAQmodel.objects.all()
  169. }
  170. return render(request, 'landing/pages/faq.html', context)