Agrega Graficos
parent
d74971f037
commit
fb7429ed4d
|
@ -238,6 +238,9 @@ class LineaViewSet(viewsets.ModelViewSet):
|
||||||
return JsonResponse(data, safe=False)
|
return JsonResponse(data, safe=False)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@action(detail=False, methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def count_buses_recorridos_old(self, request, pk=None):
|
def count_buses_recorridos_old(self, request, pk=None):
|
||||||
query = "select count(distinct vehicle_license_plate) from gtfs_posiciones"
|
query = "select count(distinct vehicle_license_plate) from gtfs_posiciones"
|
||||||
|
@ -249,6 +252,52 @@ class LineaViewSet(viewsets.ModelViewSet):
|
||||||
return JsonResponse({ 'count': result[0] })
|
return JsonResponse({ 'count': result[0] })
|
||||||
|
|
||||||
|
|
||||||
|
@action(detail=False, methods=['get'])
|
||||||
|
def count_lineas_correctas(self, request, pk=None):
|
||||||
|
query = """
|
||||||
|
SELECT 'Total Rutas correctas' AS titulo, COUNT(*) - (
|
||||||
|
SELECT COUNT(*) AS cantidad
|
||||||
|
FROM gtfs_validaciones gv
|
||||||
|
WHERE id_gtfs IN (
|
||||||
|
SELECT id_gtfs
|
||||||
|
FROM gtfs_archivo
|
||||||
|
WHERE NOT vigente
|
||||||
|
)
|
||||||
|
) AS cantidad
|
||||||
|
FROM linea
|
||||||
|
WHERE vigente
|
||||||
|
|
||||||
|
UNION
|
||||||
|
|
||||||
|
SELECT 'Total Rutas con Inconsistencias' AS titulo, COUNT(*) AS cantidad
|
||||||
|
FROM gtfs_validaciones gv
|
||||||
|
WHERE id_gtfs IN (
|
||||||
|
SELECT id_gtfs
|
||||||
|
FROM gtfs_archivo
|
||||||
|
WHERE vigente
|
||||||
|
)
|
||||||
|
"""
|
||||||
|
|
||||||
|
try:
|
||||||
|
with connection.cursor() as cursor:
|
||||||
|
cursor.execute(query)
|
||||||
|
result = cursor.fetchall()
|
||||||
|
|
||||||
|
data = []
|
||||||
|
for row in result:
|
||||||
|
# Cada 'row' es una tupla con dos elementos: titulo y cantidad
|
||||||
|
data.append({
|
||||||
|
'titulo': row[0],
|
||||||
|
'cantidad': row[1]
|
||||||
|
})
|
||||||
|
|
||||||
|
return JsonResponse(data, safe=False) # Usar safe=False para permitir objetos no diccionario en la raíz
|
||||||
|
except Exception as e:
|
||||||
|
return JsonResponse({'error': str(e)}, status=400)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@action(detail=False, methods=['get'])
|
@action(detail=False, methods=['get'])
|
||||||
def count_buses_recorridos(self, request, pk=None):
|
def count_buses_recorridos(self, request, pk=None):
|
||||||
|
|
||||||
|
@ -263,3 +312,19 @@ class LineaViewSet(viewsets.ModelViewSet):
|
||||||
return JsonResponse({ 'count': count_unique_vehicle_plates })
|
return JsonResponse({ 'count': count_unique_vehicle_plates })
|
||||||
|
|
||||||
|
|
||||||
|
@action(detail=False, methods=['get'])
|
||||||
|
def count_rutas_buses(self, request, pk=None):
|
||||||
|
|
||||||
|
db_host = getenv('DB_REDIS_HOST')
|
||||||
|
db_port = getenv('DB_REDIS_PORT')
|
||||||
|
r = redis.Redis(host=db_host, port=db_port, decode_responses=True)
|
||||||
|
key = f'stop_id:none'
|
||||||
|
data = r.get(key)
|
||||||
|
data = json.loads(data)
|
||||||
|
unique_route_direction = set(
|
||||||
|
(item["route_id"], item["direction_id"]) for item in data
|
||||||
|
)
|
||||||
|
count_unique_route_direction = len(unique_route_direction)
|
||||||
|
return JsonResponse({ 'count': count_unique_route_direction })
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue