Files
2022-11-08 21:19:51 +01:00

42 lines
1.7 KiB
Python

from typing import Optional, Tuple
from rest_framework import serializers
from ..models import (Administre, Decision, DecisionChoices, DecisionTree,
FormationEmploi, Poste, FMOB, Administres_Pams)
from ..utils.attributes import safe_rgetattr
from ..utils.decisions import KEY_CREATE, KEY_UPDATE, get_available_decisions
from ..utils.permissions import (KEY_READ, KEY_WRITE, Profiles,
get_profiles_by_adm)
from .commun import AssignmentState
from .fmob import FmobSerializer
from .fonction import FonctionSerializer
from .formation_emploi import FormationEmploiSerializer
from .grade import GradeSerializer
from .sous_vivier import SousVivierSerializer
CTX_KEY_DECISIONS = 'decisions'
CTX_KEY_PROFILES = 'profiles'
class AdministreSerializer(serializers.ModelSerializer):
"""
Cette classe sera responsable de la conversion des objets administres en type json contenant les champs de l'administré
et les champs de fonction, formation_emploi, sous_vivier, decisions, grade et Fmob liés à chaque administré. Cette classe va également ordonner le json par a_id_sap.
Les variables qui seront affichées dans le json sont celles mentionnées dans la variable fields.
"""
a_id_sap = serializers.ReadOnlyField()
formation_emploi = FormationEmploiSerializer(read_only=True)
sous_vivier = SousVivierSerializer(read_only=True)
sous_vivier_id = serializers.IntegerField(write_only=True, allow_null=True)
fonction = FonctionSerializer(read_only=True)
grade = GradeSerializer(read_only=True)
class Meta:
model = Administre
ordering = [Administre.Cols.PK]
fields = '__all__'