mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-28 23:43:22 +00:00
feat: Ajout des Bundles de fichiers [#24]
This commit is contained in:
83
Back-End/Subscriptions/views/student_views.py
Normal file
83
Back-End/Subscriptions/views/student_views.py
Normal 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 d’un é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 d’un dossier d’inscription : 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)
|
||||
Reference in New Issue
Block a user