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'
|
||||
|
||||
|
||||
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):
|
||||
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)
|
||||
|
|
|
@ -115,4 +115,9 @@ class RolSerializer(serializers.ModelSerializer):
|
|||
class RolAplicacionSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
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 api import views
|
||||
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 dispositivo
|
||||
|
||||
|
@ -21,6 +21,7 @@ router.register('regiones', region.RegionViewSet)
|
|||
router.register('paraderos', paradero.ParaderoViewSet)
|
||||
router.register('paraderos-image', paradero_imagen.ParaderoImagenListView, basename='paradero_imagen')
|
||||
router.register('lineas', linea.LineaViewSet)
|
||||
router.register('letreros-lur', letrero_lur.LetreroLUR_ViewSet)
|
||||
router.register('operadores', operador.OperadorViewSet)
|
||||
router.register('roles', rol.RolViewSet)
|
||||
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):
|
||||
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 = 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')
|
||||
|
||||
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({
|
||||
'google_api_key': google_api_key,
|
||||
'positions': list(result)
|
||||
'positions': list(resultados)
|
||||
})
|
Loading…
Reference in New Issue