avance dashboard
parent
3352f4bc61
commit
c80988d3ee
|
@ -0,0 +1,28 @@
|
|||
|
||||
@server = http://localhost:4000/api
|
||||
@token = {{login.response.body.$.token}}
|
||||
|
||||
###
|
||||
# @name login
|
||||
POST {{server}}/auth/
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"username": "usuario1",
|
||||
"password": "usuario1"
|
||||
}
|
||||
|
||||
###
|
||||
# @name count_lineas_vigentes
|
||||
GET {{server}}/lineas/count
|
||||
Authorization: Bearer {{token}}
|
||||
|
||||
###
|
||||
# @name count_buses
|
||||
GET {{server}}/lineas/count_buses
|
||||
Authorization: Bearer {{token}}
|
||||
|
||||
###
|
||||
# @name count_paraderos_vigentes
|
||||
GET {{server}}/paraderos/count/?vigente=1
|
||||
Authorization: Bearer {{token}}
|
|
@ -76,7 +76,6 @@ class LineaViewSet(viewsets.ModelViewSet):
|
|||
return JsonResponse(buses, safe=False)
|
||||
|
||||
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def buses_proto(self, request, pk=None):
|
||||
pk = request.GET['id_linea']
|
||||
|
@ -116,3 +115,57 @@ class LineaViewSet(viewsets.ModelViewSet):
|
|||
detalle_buses.append(data_bus)
|
||||
|
||||
return JsonResponse(detalle_buses, safe=False)
|
||||
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def count(self, request, pk=None):
|
||||
|
||||
queryset = models.Linea.objects.all()
|
||||
|
||||
if 'vigente' in request.GET and request.GET['vigente'] == '1':
|
||||
queryset = queryset.filter(vigente=True)
|
||||
|
||||
if 'vigente' in request.GET and request.GET['vigente'] == '0':
|
||||
queryset = queryset.filter(vigente=False)
|
||||
|
||||
return JsonResponse({ 'count': queryset.count() })
|
||||
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def count_buses(self, request, pk=None):
|
||||
|
||||
query = "SELECT \
|
||||
l.route_short_name, \
|
||||
(select count(distinct vehicle_license_plate) \
|
||||
from gtfs_posiciones as gp \
|
||||
where (trim(gp.route_id)||'-'||trim(gp.direction_id::varchar)) = l.id_linea \
|
||||
) as count \
|
||||
from linea l \
|
||||
where \
|
||||
(select count(distinct vehicle_license_plate) from gtfs_posiciones as gp where \
|
||||
(trim(gp.route_id)||'-'||trim(gp.direction_id::varchar)) = l.id_linea)>0"
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
cursor.execute(query)
|
||||
result = cursor.fetchall()
|
||||
|
||||
data = []
|
||||
for row in result:
|
||||
data.append({
|
||||
'route_short_name': row[0],
|
||||
'count': row[1]
|
||||
})
|
||||
|
||||
return JsonResponse(data, safe=False)
|
||||
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def count_buses_recorridos(self, request, pk=None):
|
||||
query = "select count(distinct vehicle_license_plate) from gtfs_posiciones"
|
||||
|
||||
with connection.cursor() as cursor:
|
||||
cursor.execute(query)
|
||||
result = cursor.fetchone()
|
||||
|
||||
return JsonResponse({ 'count': result[0] })
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from django.http import JsonResponse
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.decorators import action
|
||||
from api.serializers import ParaderoSerializer
|
||||
from api.models import Paradero
|
||||
import logging
|
||||
|
@ -9,6 +10,23 @@ class ParaderoViewSet(viewsets.ModelViewSet):
|
|||
serializer_class = ParaderoSerializer
|
||||
|
||||
|
||||
@action(detail=False, methods=['get'])
|
||||
def count(self, request, pk=None):
|
||||
|
||||
queryset = Paradero.objects.all()
|
||||
|
||||
if 'vigente' in request.GET and request.GET['vigente'] == '1':
|
||||
queryset = queryset.filter(vigente=True)
|
||||
|
||||
if 'vigente' in request.GET and request.GET['vigente'] == '0':
|
||||
queryset = queryset.filter(vigente=False)
|
||||
|
||||
if 'id_comuna' in request.GET:
|
||||
pass
|
||||
|
||||
return JsonResponse({ 'count': queryset.count() })
|
||||
|
||||
|
||||
def info_public(request, pk):
|
||||
|
||||
if hasattr(request.META,'HTTP_REFERER'):
|
||||
|
|
Loading…
Reference in New Issue