42 lines
1.7 KiB
Python
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__'
|