se agrega api/letreros-lur
parent
d905f60682
commit
1df571069a
|
@ -0,0 +1,21 @@
|
||||||
|
|
||||||
|
@server = http://localhost:4000/api
|
||||||
|
@token = {{login.response.body.$.token}}
|
||||||
|
|
||||||
|
###
|
||||||
|
# @name login
|
||||||
|
POST {{server}}/auth/
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"username": "0",
|
||||||
|
"password": "0"
|
||||||
|
}
|
||||||
|
|
||||||
|
###
|
||||||
|
GET {{server}}/letreros-lur
|
||||||
|
Authorization: Bearer {{token}}
|
||||||
|
|
||||||
|
###
|
||||||
|
GET {{server}}/letreros-lur/50U
|
||||||
|
Authorization: Bearer {{token}}
|
|
@ -153,6 +153,22 @@ class GtfsTrips(models.Model):
|
||||||
db_table = 'gtfs_trips'
|
db_table = 'gtfs_trips'
|
||||||
|
|
||||||
|
|
||||||
|
class LetreroLUR(models.Model):
|
||||||
|
codigo = models.CharField(max_length=10, primary_key=True)
|
||||||
|
linea1 = models.CharField(max_length=50, blank=False, null=False)
|
||||||
|
linea2 = models.CharField(max_length=50)
|
||||||
|
linea3 = models.CharField(max_length=50)
|
||||||
|
linea4 = models.CharField(max_length=50)
|
||||||
|
bgcolor1 = models.CharField(max_length=20)
|
||||||
|
color1 = models.CharField(max_length=20)
|
||||||
|
bgcolor2 = models.CharField(max_length=20)
|
||||||
|
color2 = models.CharField(max_length=20)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
managed = True
|
||||||
|
db_table = 'letrero_lur'
|
||||||
|
|
||||||
|
|
||||||
class Linea(models.Model):
|
class Linea(models.Model):
|
||||||
id_linea = models.CharField(max_length=150, primary_key=True)
|
id_linea = models.CharField(max_length=150, primary_key=True)
|
||||||
id_operador = models.ForeignKey('Operador', models.DO_NOTHING, db_column='id_operador', blank=True, null=True)
|
id_operador = models.ForeignKey('Operador', models.DO_NOTHING, db_column='id_operador', blank=True, null=True)
|
||||||
|
|
|
@ -116,3 +116,8 @@ class RolAplicacionSerializer(serializers.ModelSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.RolAplicacion
|
model = models.RolAplicacion
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
|
||||||
|
class LetreroLUR_Serializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = models.LetreroLUR
|
||||||
|
fields = '__all__'
|
|
@ -2,7 +2,7 @@ from django.urls import path, include
|
||||||
from rest_framework import routers
|
from rest_framework import routers
|
||||||
# from api import views
|
# from api import views
|
||||||
from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region, paradero, rol, rolaplicacion
|
from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region, paradero, rol, rolaplicacion
|
||||||
from api.views import mapa, linea, operador
|
from api.views import mapa, linea, letrero_lur, operador
|
||||||
from api.views import paradero_imagen
|
from api.views import paradero_imagen
|
||||||
from api.views import dispositivo
|
from api.views import dispositivo
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@ router.register('regiones', region.RegionViewSet)
|
||||||
router.register('paraderos', paradero.ParaderoViewSet)
|
router.register('paraderos', paradero.ParaderoViewSet)
|
||||||
router.register('paraderos-image', paradero_imagen.ParaderoImagenListView, basename='paradero_imagen')
|
router.register('paraderos-image', paradero_imagen.ParaderoImagenListView, basename='paradero_imagen')
|
||||||
router.register('lineas', linea.LineaViewSet)
|
router.register('lineas', linea.LineaViewSet)
|
||||||
|
router.register('letreros-lur', letrero_lur.LetreroLUR_ViewSet)
|
||||||
router.register('operadores', operador.OperadorViewSet)
|
router.register('operadores', operador.OperadorViewSet)
|
||||||
router.register('roles', rol.RolViewSet)
|
router.register('roles', rol.RolViewSet)
|
||||||
router.register('rolyaplicacion', rolaplicacion.RolAplicacionViewSet, basename='rol_aplicacion')
|
router.register('rolyaplicacion', rolaplicacion.RolAplicacionViewSet, basename='rol_aplicacion')
|
||||||
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
|
||||||
|
from rest_framework import viewsets
|
||||||
|
from rest_framework.response import Response
|
||||||
|
from rest_framework.decorators import action
|
||||||
|
from .. import models, serializers
|
||||||
|
|
||||||
|
class LetreroLUR_ViewSet(viewsets.ModelViewSet):
|
||||||
|
queryset = models.LetreroLUR.objects.all()
|
||||||
|
serializer_class = serializers.LetreroLUR_Serializer
|
|
@ -45,6 +45,18 @@ def paraderos(request):
|
||||||
def rutas(request):
|
def rutas(request):
|
||||||
id_linea = request.GET.get('id_linea')
|
id_linea = request.GET.get('id_linea')
|
||||||
|
|
||||||
|
"""
|
||||||
|
SELECT gs.shape_pt_lat, gs.shape_pt_lon, gs.shape_pt_sequence
|
||||||
|
FROM gtfs_shape gs
|
||||||
|
WHERE gs.id_shape in (
|
||||||
|
SELECT DISTINCT id_shape
|
||||||
|
FROM gtfs_trips gt
|
||||||
|
WHERE gt.id_linea = '2990'
|
||||||
|
)
|
||||||
|
ORDER BY gs.id_shape, gs.sequence_coalesce
|
||||||
|
"""
|
||||||
|
|
||||||
|
"""
|
||||||
# Subquery para obtener los id_shape distintos de gtfs_trips
|
# Subquery para obtener los id_shape distintos de gtfs_trips
|
||||||
subquery = GtfsTrips.objects.filter(id_linea = id_linea).values('id_shape').distinct()
|
subquery = GtfsTrips.objects.filter(id_linea = id_linea).values('id_shape').distinct()
|
||||||
|
|
||||||
|
@ -55,8 +67,21 @@ def rutas(request):
|
||||||
).filter(id_shape=F('id_shape_subquery')).order_by('shape_pt_sequence_coalesce')
|
).filter(id_shape=F('id_shape_subquery')).order_by('shape_pt_sequence_coalesce')
|
||||||
|
|
||||||
result = queryset.values('shape_pt_lat', 'shape_pt_lon', 'shape_pt_sequence')
|
result = queryset.values('shape_pt_lat', 'shape_pt_lon', 'shape_pt_sequence')
|
||||||
|
"""
|
||||||
|
|
||||||
|
# Subconsulta interna
|
||||||
|
subquery = GtfsTrips.objects.filter(id_linea=id_linea).values('id_shape').distinct()[:1]
|
||||||
|
|
||||||
|
# Consulta principal
|
||||||
|
query = GtfsShape.objects.filter(id_shape__in=subquery).order_by('id_shape', 'shape_pt_sequence')
|
||||||
|
|
||||||
|
# Obtener los campos requeridos
|
||||||
|
query = query.values('shape_pt_lat', 'shape_pt_lon', 'shape_pt_sequence')
|
||||||
|
|
||||||
|
# Ejecutar la consulta
|
||||||
|
resultados = query.all()
|
||||||
|
|
||||||
return JsonResponse({
|
return JsonResponse({
|
||||||
'google_api_key': google_api_key,
|
'google_api_key': google_api_key,
|
||||||
'positions': list(result)
|
'positions': list(resultados)
|
||||||
})
|
})
|
Loading…
Reference in New Issue