feat: Ajout des Bundles de fichiers [#24]

This commit is contained in:
Luc SORIGNET
2025-02-10 18:35:24 +01:00
parent fb7fbaf839
commit ffc6ce8de8
25 changed files with 1736 additions and 743 deletions

View File

@ -0,0 +1,83 @@
from django.http.response import JsonResponse
from rest_framework.views import APIView
from rest_framework import status
from drf_yasg.utils import swagger_auto_schema
from drf_yasg import openapi
from Subscriptions.serializers import StudentByRFCreationSerializer, RegistrationFormByParentSerializer, StudentSerializer
from Subscriptions.models import Student, RegistrationForm
from N3wtSchool import bdd
class StudentView(APIView):
"""
Gère la lecture dun élève donné.
"""
@swagger_auto_schema(
operation_summary="Récupérer les informations d'un élève",
operation_description="Retourne les détails d'un élève spécifique à partir de son ID",
responses={
200: openapi.Response('Détails de l\'élève', StudentSerializer),
404: openapi.Response('Élève non trouvé')
},
manual_parameters=[
openapi.Parameter(
'id', openapi.IN_PATH,
description="ID de l'élève",
type=openapi.TYPE_INTEGER,
required=True
)
]
)
def get(self, request, id):
student = bdd.getObject(_objectName=Student, _columnName='id', _value=id)
if student is None:
return JsonResponse({"errorMessage":'Aucun élève trouvé'}, safe=False, status=status.HTTP_404_NOT_FOUND)
student_serializer = StudentSerializer(student)
return JsonResponse(student_serializer.data, safe=False)
# API utilisée pour la vue de création d'un DI
class StudentListView(APIView):
"""
Pour la vue de création dun dossier dinscription : liste les élèves disponibles.
"""
@swagger_auto_schema(
operation_summary="Lister tous les élèves",
operation_description="Retourne la liste de tous les élèves inscrits ou en cours d'inscription",
responses={
200: openapi.Response('Liste des élèves', StudentByRFCreationSerializer(many=True))
}
)
# Récupération de la liste des élèves inscrits ou en cours d'inscriptions
def get(self, request):
students = bdd.getAllObjects(_objectName=Student)
students_serializer = StudentByRFCreationSerializer(students, many=True)
return JsonResponse(students_serializer.data, safe=False)
# API utilisée pour la vue parent
class ChildrenListView(APIView):
"""
Pour la vue parent : liste les élèves rattachés à un profil donné.
"""
@swagger_auto_schema(
operation_summary="Lister les élèves d'un parent",
operation_description="Retourne la liste des élèves associés à un profil parent spécifique",
responses={
200: openapi.Response('Liste des élèves du parent', RegistrationFormByParentSerializer(many=True))
},
manual_parameters=[
openapi.Parameter(
'id', openapi.IN_PATH,
description="ID du profil parent",
type=openapi.TYPE_INTEGER,
required=True
)
]
)
# Récupération des élèves d'un parent
# idProfile : identifiant du profil connecté rattaché aux fiches d'élèves
def get(self, request, id):
students = bdd.getObjects(_objectName=RegistrationForm, _columnName='student__guardians__associated_profile__id', _value=id)
students_serializer = RegistrationFormByParentSerializer(students, many=True)
return JsonResponse(students_serializer.data, safe=False)