From ddeb38cbadfd912b1e4cd65ce4460392c74e0820 Mon Sep 17 00:00:00 2001 From: Francisco Sandoval Date: Wed, 1 Nov 2023 09:52:30 -0300 Subject: [PATCH] se create tabla y endpoint para paradero_linea --- project/api/models.py | 15 ++++++++++++--- project/api/serializers.py | 5 +++++ project/api/urls.py | 3 ++- project/api/views/linea.py | 3 +++ project/api/views/paradero_linea.py | 11 +++++++++++ 5 files changed, 33 insertions(+), 4 deletions(-) create mode 100755 project/api/views/paradero_linea.py diff --git a/project/api/models.py b/project/api/models.py index 4a46d0e..dd857e4 100755 --- a/project/api/models.py +++ b/project/api/models.py @@ -165,12 +165,12 @@ class LetreroLUR(models.Model): color2 = models.CharField(max_length=20) class Meta: - managed = True + managed = False db_table = 'letrero_lur' class Linea(models.Model): - id_linea = models.CharField(max_length=150, primary_key=True) + id_linea = models.CharField(max_length=150, primary_key=True, unique=True) id_operador = models.ForeignKey('Operador', models.DO_NOTHING, db_column='id_operador', blank=True, null=True) route_short_name = models.CharField(max_length=150, blank=True, null=True) route_desc = models.CharField(max_length=150, blank=True, null=True) @@ -230,9 +230,18 @@ class ParaderoImagen(models.Model): content_type = models.CharField(max_length=50, blank=False, null=False) class Meta: - managed = True + managed = False db_table = 'paradero_imagen' +class ParaderoLinea(models.Model): + id_paradero_linea = models.AutoField(primary_key=True) + id_paradero = models.ForeignKey(Paradero, models.DO_NOTHING, db_column='id_paradero', blank=False, null=False) + id_linea = models.ForeignKey(Linea, models.DO_NOTHING, db_column='id_linea', blank=False, null=False) + + class Meta: + managed = True + db_table = 'paradero_linea' + class Persona(models.Model): rut = models.DecimalField(primary_key=True, max_digits=12, decimal_places=0) diff --git a/project/api/serializers.py b/project/api/serializers.py index 1a5f9da..a9af9dd 100755 --- a/project/api/serializers.py +++ b/project/api/serializers.py @@ -71,6 +71,11 @@ class ParaderoImagenSerializer(serializers.ModelSerializer): representation['url'] = request.build_absolute_uri(f'/api/paraderos-image/{instance.id_paradero_imagen}/') return representation +class ParaderoLineaSerializer(serializers.ModelSerializer): + class Meta: + model = models.ParaderoLinea + fields = '__all__' + class OperadorSerializer(serializers.ModelSerializer): class Meta: diff --git a/project/api/urls.py b/project/api/urls.py index e0f3df4..4ce6281 100755 --- a/project/api/urls.py +++ b/project/api/urls.py @@ -3,7 +3,7 @@ from rest_framework import routers # from api import views from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region, paradero, rol, rolaplicacion from api.views import mapa, linea, letrero_lur, operador -from api.views import paradero_imagen +from api.views import paradero_imagen, paradero_linea from api.views import dispositivo router = routers.DefaultRouter() @@ -20,6 +20,7 @@ router.register('comunas', comuna.ComunaViewSet) router.register('regiones', region.RegionViewSet) router.register('paraderos', paradero.ParaderoViewSet) router.register('paraderos-image', paradero_imagen.ParaderoImagenListView, basename='paradero_imagen') +router.register('paraderos-linea', paradero_linea.ParaderoLineaViewSet) router.register('lineas', linea.LineaViewSet) router.register('letreros-lur', letrero_lur.LetreroLUR_ViewSet) router.register('operadores', operador.OperadorViewSet) diff --git a/project/api/views/linea.py b/project/api/views/linea.py index c79fe69..229c8c9 100755 --- a/project/api/views/linea.py +++ b/project/api/views/linea.py @@ -2,8 +2,11 @@ from rest_framework import viewsets from rest_framework.response import Response from rest_framework.decorators import action +from django_filters.rest_framework import DjangoFilterBackend from .. import models, serializers class LineaViewSet(viewsets.ModelViewSet): queryset = models.Linea.objects.all() serializer_class = serializers.LineaSerializer + filter_backends = [DjangoFilterBackend] + filterset_fields = ['id_operador', 'route_short_name', 'route_long_name'] diff --git a/project/api/views/paradero_linea.py b/project/api/views/paradero_linea.py new file mode 100755 index 0000000..6b0c1a9 --- /dev/null +++ b/project/api/views/paradero_linea.py @@ -0,0 +1,11 @@ +from rest_framework import viewsets +from django_filters.rest_framework import DjangoFilterBackend +from api.serializers import ParaderoLineaSerializer +from api.models import ParaderoLinea +import logging + +class ParaderoLineaViewSet(viewsets.ModelViewSet): + queryset = ParaderoLinea.objects.all() + serializer_class = ParaderoLineaSerializer + filter_backends = [DjangoFilterBackend] + filterset_fields = ['id_linea', 'id_paradero'] \ No newline at end of file