2023-12-05 10:34:47 -03:00
|
|
|
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()
|
2024-01-06 12:25:12 -03:00
|
|
|
rol = serializers.SerializerMethodField()
|
2023-12-05 10:34:47 -03:00
|
|
|
|
|
|
|
class Meta:
|
|
|
|
model = models.Usuario
|
|
|
|
fields = '__all__'
|
|
|
|
read_only_fields = ['login']
|
|
|
|
|
|
|
|
def get_persona(self, row):
|
|
|
|
return model_to_dict(row.rut)
|
2024-01-06 12:25:12 -03:00
|
|
|
|
|
|
|
def get_rol(self, row):
|
|
|
|
return model_to_dict(row.id_rol)
|
2023-12-05 10:34:47 -03:00
|
|
|
|
|
|
|
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 LetreroLUR_Serializer(serializers.ModelSerializer):
|
|
|
|
class Meta:
|
|
|
|
model = models.LetreroLUR
|
|
|
|
fields = '__all__'
|