diff --git a/api/serializers.py b/api/serializers.py index a533dca..a7a1cfc 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -11,10 +11,22 @@ ) -class VerPersonaSerializer(serializers.ModelSerializer): +class RolPersonaMixin: + rol = serializers.SerializerMethodField() + + def get_rol(self, obj: Persona) -> str: + if hasattr(obj, "mentor"): + return "Mentor" + if hasattr(obj, "participante"): + return "Hacker" + return "Hacker" + + +class VerPersonaSerializer(RolPersonaMixin, serializers.ModelSerializer): restricciones_alimentarias = serializers.PrimaryKeyRelatedField( many=True, read_only=True ) + rol = serializers.SerializerMethodField() class Meta: model = Persona @@ -22,6 +34,7 @@ class Meta: "correo", "nombre", "dni", + "rol", "restricciones_alimentarias", "detalle_restricciones_alimentarias", "compartir_cv", @@ -47,10 +60,12 @@ class Meta: fields = ["correo", "acreditacion"] -class PersonaReducidaSerializer(serializers.ModelSerializer): +class PersonaReducidaSerializer(RolPersonaMixin, serializers.ModelSerializer): + rol = serializers.SerializerMethodField() + class Meta: model = Persona - fields = ["correo", "nombre", "acreditacion"] + fields = ["correo", "nombre", "acreditacion", "rol"] class TipoPaseSerializer(serializers.ModelSerializer):