Agrega Graficos

master
Ronald Morales 2024-04-22 22:52:27 -04:00
parent d74971f037
commit fb7429ed4d
1 changed files with 66 additions and 1 deletions

View File

@ -238,6 +238,9 @@ class LineaViewSet(viewsets.ModelViewSet):
return JsonResponse(data, safe=False)
@action(detail=False, methods=['get'])
def count_buses_recorridos_old(self, request, pk=None):
query = "select count(distinct vehicle_license_plate) from gtfs_posiciones"
@ -249,6 +252,52 @@ class LineaViewSet(viewsets.ModelViewSet):
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'])
def count_buses_recorridos(self, request, pk=None):
@ -263,3 +312,19 @@ class LineaViewSet(viewsets.ModelViewSet):
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 })