ilab_gestion_backend/project/api/serializers.py

141 lines
4.1 KiB
Python
Executable File

from rest_framework import serializers
from django.forms.models import model_to_dict
from django.core.serializers import serialize
from . import models
class AplicacionSerializer(serializers.ModelSerializer):
class Meta:
model = models.Aplicacion
fields = '__all__'
class DispositivoSerializer(serializers.ModelSerializer):
tipo_dispositivo = serializers.SerializerMethodField()
def get_tipo_dispositivo(self, row):
return model_to_dict(row.id_tipo_dispositivo)
class Meta:
model = models.Dispositivo
fields = '__all__'
class TipoDispositivoSerializer(serializers.ModelSerializer):
class Meta:
model = models.TipoDispositivo
fields = '__all__'
class TipoParaderoSerializer(serializers.ModelSerializer):
class Meta:
model = models.TipoParadero
fields = '__all__'
class TipoTransporteSerializer(serializers.ModelSerializer):
class Meta:
model = models.TipoTransporte
fields = '__all__'
class TipoVehiculoSerializer(serializers.ModelSerializer):
class Meta:
model = models.TipoVehiculo
fields = '__all__'
class TipoTratamientoPersonaSerializer(serializers.ModelSerializer):
class Meta:
model = models.TipoTratamientoPersona
fields = '__all__'
class PersonaSerializer(serializers.ModelSerializer):
class Meta:
model = models.Persona
fields = '__all__'
class ComunaSerializer(serializers.ModelSerializer):
class Meta:
model = models.Comuna
fields = '__all__'
class RegionSerializer(serializers.ModelSerializer):
class Meta:
model = models.Region
fields = '__all__'
class ParaderoSerializer(serializers.ModelSerializer):
class Meta:
model = models.Paradero
fields = '__all__'
class ParaderoImagenSerializer(serializers.ModelSerializer):
class Meta:
model = models.ParaderoImagen
fields = '__all__'
def to_representation(self, instance):
representation = super().to_representation(instance)
del representation['imagen']
request = self.context.get('request')
representation['url'] = request.build_absolute_uri(f'/api/paraderos-image/{instance.id_paradero_imagen}/')
return representation
class OperadorSerializer(serializers.ModelSerializer):
class Meta:
model = models.Operador
fields = '__all__'
class LineaSerializer(serializers.ModelSerializer):
class Meta:
model = models.Linea
fields = '__all__'
class LineaParaderoSerializer(serializers.ModelSerializer):
class Meta:
model = models.LineaParadero
fields = '__all__'
class UsuarioSerializer(serializers.ModelSerializer):
# muestro informacion de persona en un objeto aparte
persona = serializers.SerializerMethodField()
rol = serializers.SerializerMethodField()
class Meta:
model = models.Usuario
fields = '__all__'
read_only_fields = ['login']
def get_persona(self, row):
return model_to_dict(row.rut)
def get_rol(self, row):
return model_to_dict(row.id_rol)
def to_representation(self, instance):
representation = super().to_representation(instance)
# Elimina el campo que deseas después de la actualización
if 'clave' in representation:
del representation['clave']
return representation
class AuthSerializer(serializers.Serializer):
username = serializers.CharField(required=True)
password = serializers.CharField(required=True, style={'input_type':'password'})
class RolSerializer(serializers.ModelSerializer):
class Meta:
model = models.Rol
fields = '__all__'
class RolAplicacionSerializer(serializers.ModelSerializer):
class Meta:
model = models.RolAplicacion
fields = '__all__'
class RolLineaSerializer(serializers.ModelSerializer):
class Meta:
model = models.RolLinea
fields = '__all__'
class LetreroLUR_Serializer(serializers.ModelSerializer):
class Meta:
model = models.LetreroLUR
fields = '__all__'