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")