gealogiuya
Some checks failed
Deploy Django Application to Server / deploy (push) Failing after 19s
Telegram Notifications / Telegram Gate (push) Failing after 5s

This commit is contained in:
2026-02-27 14:56:23 +05:00
commit 0229a0595c
118 changed files with 33948 additions and 0 deletions

View File

@@ -0,0 +1,3 @@
from .category import * # noqa
from .gallery import * # noqa
from .geology import * # noqa

View File

@@ -0,0 +1,24 @@
from typing import Type
from django.db.models import QuerySet
from rest_framework.generics import GenericAPIView
from rest_framework.permissions import AllowAny
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from apps.geology.models import Category
from apps.geology.serializers import CategorySerializer
class CategoryView(GenericAPIView):
permission_classes = [AllowAny]
serializer_class: Type[Serializer] = CategorySerializer
def get_queryset(self) -> QuerySet[Category]:
return Category.objects.all()
def get(self, request: Request) -> Response:
categories = self.get_queryset()
serializer = self.serializer_class(categories, many=True)
return Response(serializer.data)

View File

@@ -0,0 +1,24 @@
from typing import Type
from django.db.models import QuerySet
from rest_framework.generics import GenericAPIView
from rest_framework.permissions import AllowAny
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from apps.geology.models import GalleryCategory
from apps.geology.serializers import GalleryCategorySerializer
class GalleryCategoryView(GenericAPIView):
permission_classes = [AllowAny]
serializer_class: Type[Serializer] = GalleryCategorySerializer
def get_queryset(self) -> QuerySet[GalleryCategory]:
return GalleryCategory.objects.all()
def get(self, request: Request) -> Response:
categories = self.get_queryset()
serializer = self.serializer_class(categories, many=True)
return Response(serializer.data)

View File

@@ -0,0 +1,45 @@
from typing import Type
from django.db.models import QuerySet
from rest_framework import status
from rest_framework.generics import GenericAPIView
from rest_framework.permissions import AllowAny
from rest_framework.request import Request
from rest_framework.response import Response
from rest_framework.serializers import Serializer
from apps.geology.models import Geology
from apps.geology.serializers import GeologySerializer, GeologyDetailSerializer
class GeologyView(GenericAPIView):
permission_classes = [AllowAny]
def get_serializer_class(self) -> Type[Serializer]:
if self.request.method == "POST":
return GeologySerializer
return GeologyDetailSerializer
def get_queryset(self) -> QuerySet[Geology]:
return Geology.objects.all().select_related()
def get(self, request: Request) -> Response:
geology_id = request.query_params.get("id")
category_id = request.query_params.get("category")
if geology_id:
geologies = Geology.objects.filter(id=geology_id)
elif category_id:
geologies = Geology.objects.filter(category_id=category_id)
else:
geologies = self.get_queryset()
serializer = self.get_serializer(geologies, many=True)
return Response(serializer.data)
def post(self, request: Request) -> Response:
serializer = self.get_serializer(
data=request.data, context={"request": request}
)
if serializer.is_valid():
serializer.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)