40 lines
1.3 KiB
Python
40 lines
1.3 KiB
Python
from django.contrib import messages
|
|
from django.db import IntegrityError, transaction
|
|
from django.shortcuts import redirect, render
|
|
from django.urls import reverse
|
|
|
|
from .forms import ConsultationRequestForm
|
|
from .models import ConsultationSlot
|
|
|
|
|
|
def home(request):
|
|
if request.method == "POST":
|
|
form = ConsultationRequestForm(request.POST)
|
|
if form.is_valid():
|
|
try:
|
|
with transaction.atomic():
|
|
form.save()
|
|
except IntegrityError:
|
|
form.add_error("slot", "Это время только что занял другой ученик. Выберите другой слот.")
|
|
else:
|
|
messages.success(
|
|
request,
|
|
"Заявка принята. Игорь Олегович свяжется с вами для подтверждения консультации.",
|
|
)
|
|
return redirect(f"{reverse('consultations:home')}#booking")
|
|
else:
|
|
form = ConsultationRequestForm()
|
|
|
|
return render(
|
|
request,
|
|
"consultations/home.html",
|
|
{
|
|
"form": form,
|
|
"available_slot_count": ConsultationSlot.objects.available().count(),
|
|
},
|
|
)
|
|
|
|
|
|
def privacy_policy(request):
|
|
return render(request, "consultations/privacy.html")
|