Files
JooL_website/apps/core/views.py
2026-05-20 15:04:03 +00:00

80 lines
2.3 KiB
Python

import logging
from django.views.generic import TemplateView
from django.views import View
from django.http import JsonResponse
from django.core.mail import send_mail
from django.conf import settings
from .forms import ContactForm
logger = logging.getLogger(__name__)
class HomeView(TemplateView):
template_name = 'core/home.html'
class ContactAjaxView(View):
"""Reçoit le formulaire en AJAX, répond en JSON — pas de rechargement."""
def post(self, request, *args, **kwargs):
form = ContactForm(request.POST)
if form.is_valid():
contact = form.save()
subject = f"Nouvelle demande de contact — {contact.first_name} {contact.last_name}"
body = (
f"Nom : {contact.last_name}\n"
f"Prénom : {contact.first_name}\n"
f"Email : {contact.email}\n"
f"Téléphone : {contact.phone or ''}\n\n"
f"Demande :\n{contact.message}"
)
try:
send_mail(
subject,
body,
settings.DEFAULT_FROM_EMAIL,
[settings.CONTACT_NOTIFY_EMAIL],
fail_silently=False,
)
logger.info("Mail contact #%s envoyé → %s", contact.pk, settings.CONTACT_NOTIFY_EMAIL)
except Exception as e:
logger.error("Échec mail contact #%s : %s%s", contact.pk, type(e).__name__, e)
return JsonResponse({'ok': True})
else:
errors = {f: e.get_json_data() for f, e in form.errors.items()}
return JsonResponse({'ok': False, 'errors': errors}, status=400)
class AboutView(TemplateView):
template_name = 'core/about.html'
class KiriqView(TemplateView):
template_name = 'core/products/kiriq.html'
class MonitorView(TemplateView):
template_name = 'core/products/monitor.html'
class JoolidView(TemplateView):
template_name = 'core/products/joolid.html'
class MonAgroView(TemplateView):
template_name = 'core/products/monagro.html'
class PrivacyView(TemplateView):
template_name = 'core/privacy.html'
class RobotsTxtView(TemplateView):
template_name = 'robots.txt'
content_type = 'text/plain'
class SitemapXmlView(TemplateView):
template_name = 'sitemap.xml'
content_type = 'application/xml'