72 lines
3.5 KiB
Python
72 lines
3.5 KiB
Python
from rest_framework.permissions import IsAuthenticated
|
|
from rest_framework.response import Response
|
|
from rest_framework.views import APIView
|
|
from django.db.models import Q
|
|
|
|
from ..models import AvisPosteChoices as AvisPoste
|
|
from ..models import (Competence, Domaine, Filiere, FormationEmploi, Grade,
|
|
SousVivier, PAM,
|
|
Marque, MarquesGroupe, RefSvFil, SpecifiqueChoices)
|
|
from ..models import StatutFuturChoices as StatutFutur
|
|
from ..models import StatutPamChoices as StatutPam
|
|
from ..models import ZoneGeographique
|
|
from ..models import Fonction
|
|
from ..serializers import (ChoicesSerializer, RefAvisPosteChoicesSerializer,
|
|
RefStatutPamChoicesSerializer)
|
|
from ..serializers.commun import AssignmentState
|
|
from ..utils.decisions import get_all_decisions
|
|
from .commun import execution_time_viewset, query_count_viewset
|
|
|
|
|
|
@execution_time_viewset
|
|
@query_count_viewset
|
|
class ReferencesView(APIView):
|
|
"""
|
|
Cette classe est dédiée au vue de la reference.
|
|
"""
|
|
permission_classes = [IsAuthenticated]
|
|
|
|
def get(self, request):
|
|
"""
|
|
La fonction get envoie les données de référence
|
|
|
|
:return: réponse contenant les données de référence
|
|
"""
|
|
|
|
groupesMarques = [obj.as_dict() for obj in MarquesGroupe.objects.all().order_by('gm_code')]
|
|
marques = [obj.as_dict() for obj in Marque.objects.all().order_by('mar_code')]
|
|
competences = [obj.as_dict() for obj in Competence.objects.all().order_by('comp_id')]
|
|
domaines = [obj.as_dict() for obj in Domaine.objects.all().order_by('d_code')]
|
|
filieres = [obj.as_dict() for obj in Filiere.objects.all().order_by('domaine__d_code', 'f_code')]
|
|
zones = [obj.as_dict() for obj in ZoneGeographique.objects.all()]
|
|
# TODO: Vérifier la présence de l'ordre sur les postes'
|
|
grades = [obj.as_dict() for obj in Grade.objects.all()]
|
|
FEs = [obj.as_dict() for obj in FormationEmploi.objects.all().order_by('fe_mere_credo')]
|
|
garnison_lieux = [obj.as_dict() for obj in FormationEmploi.objects.all().order_by('fe_mere_credo', 'fe_garnison_lieu')]
|
|
RefSvFils_init = {obj.as_dict()['ref_sv_fil_code'] for obj in RefSvFil.objects.all().order_by('ref_sv_fil_code')}
|
|
RefSvFils = [{'ref_sv_fil_code': obj} for obj in RefSvFils_init]
|
|
Specifique = [{'code': i.value} for i in SpecifiqueChoices]
|
|
SousViviers = [obj.as_dict() for obj in SousVivier.objects.filter(~Q(sv_id='BVT')).order_by('sv_libelle')]
|
|
Pams = [obj.as_dict() for obj in PAM.objects.filter(~Q(pam_id='SORG')& Q(pam_statut__in=['PAM en cours', 'PAM A+1'])).order_by('pam_id')]
|
|
Etr = [obj.as_dict() for obj in Fonction.objects.all()]
|
|
return Response({
|
|
'groupesMarques': groupesMarques,
|
|
'marques': marques,
|
|
'domaines': domaines,
|
|
'filieres': filieres,
|
|
'grades': grades,
|
|
'competences': competences,
|
|
'FEs': FEs,
|
|
'statutFutur': ChoicesSerializer(StatutFutur, many=True).data,
|
|
'Zones': zones,
|
|
'decisions': ChoicesSerializer(get_all_decisions(), many=True).data,
|
|
'avisAdministre': RefStatutPamChoicesSerializer(StatutPam, many=True).data,
|
|
'avisPoste': RefAvisPosteChoicesSerializer(AvisPoste, many=True).data,
|
|
'RefSvFils': RefSvFils,
|
|
'Specifique': Specifique,
|
|
'etatsFeBmob': tuple(e.value for e in AssignmentState),
|
|
'sousViviers': SousViviers,
|
|
'pams': Pams,
|
|
'etr' : Etr,
|
|
})
|