TKO/services/backend/tko/views.py
2025-03-28 18:36:20 +01:00

58 lines
1.8 KiB
Python

from django.utils import timezone
from django.db.models import Q
from post_office import mail
from rest_framework.generics import ListAPIView, CreateAPIView
from rest_framework.response import Response
from tko.models import Article, Event, ArticleImage
from tko.serializers import ArticleListSerializer, EventListSerializer, ContactSerializer, ArticleImageSerializer
class ContactView(CreateAPIView):
serializer_class = ContactSerializer
def post(self, request, *args, **kwargs):
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
mail.send(
recipients="kubeczkova.n@gmail.com",
subject="Zpráva z webu TKO",
message=f"Jméno: {serializer.data['name']}\n"
f"Email: {serializer.data['email']}\n"
f"Telefón: {serializer.data['phone_number']}\n\n"
f"Zpráva: {serializer.data['content']}",
)
return Response(serializer.data)
class NewArticleListView(ListAPIView):
serializer_class = ArticleListSerializer
def get_queryset(self):
return Article.objects.filter(
Q(active_to__gte=timezone.now()) | Q(active_to__isnull=True)
).order_by('-date')[:2]
class AllArticleListView(ListAPIView):
serializer_class = ArticleListSerializer
def get_queryset(self):
return Article.objects.filter(
Q(active_to__gte=timezone.now()) | Q(active_to__isnull=True)
).order_by('-date')
class GalleryView(ListAPIView):
queryset = ArticleImage.objects.all().order_by("-article_id", "main")
serializer_class = ArticleImageSerializer
class EventListView(ListAPIView):
queryset = Event.objects.all()
serializer_class = EventListSerializer