forked from TDTP/admin_transporte_backend
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)
|
return JsonResponse(buses, safe=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@action(detail=False, methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def buses_proto(self, request, pk=None):
|
def buses_proto(self, request, pk=None):
|
||||||
pk = request.GET['id_linea']
|
pk = request.GET['id_linea']
|
||||||
|
@ -116,3 +115,57 @@ class LineaViewSet(viewsets.ModelViewSet):
|
||||||
detalle_buses.append(data_bus)
|
detalle_buses.append(data_bus)
|
||||||
|
|
||||||
return JsonResponse(detalle_buses, safe=False)
|
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 django.http import JsonResponse
|
||||||
from rest_framework import viewsets
|
from rest_framework import viewsets
|
||||||
|
from rest_framework.decorators import action
|
||||||
from api.serializers import ParaderoSerializer
|
from api.serializers import ParaderoSerializer
|
||||||
from api.models import Paradero
|
from api.models import Paradero
|
||||||
import logging
|
import logging
|
||||||
|
@ -9,6 +10,23 @@ class ParaderoViewSet(viewsets.ModelViewSet):
|
||||||
serializer_class = ParaderoSerializer
|
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):
|
def info_public(request, pk):
|
||||||
|
|
||||||
if hasattr(request.META,'HTTP_REFERER'):
|
if hasattr(request.META,'HTTP_REFERER'):
|
||||||
|
|
Loading…
Reference in New Issue