from django.http import JsonResponse from rest_framework.decorators import action, api_view, schema from django.views.decorators.csrf import csrf_exempt from ..models import Paradero, ParaderoImagen from ..models import Linea, GtfsShape, GtfsTrips from .paradero import url_image_paradero from logging import error google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4' center = {'lat': -36.8077884, 'lng': -73.0775401} @csrf_exempt @action(detail=False, methods=['get']) @api_view(['GET']) def paraderos(request): zoom = 17 marks = [] paraderos = Paradero.objects.all() for p in paraderos: url_image = url_image_paradero(request, p.id_paradero) marks.append({ 'position': { 'lat': p.stop_lat, 'lng': p.stop_lon }, 'id_paradero': p.id_paradero, 'title': 'Paradero #' + str(p.id_paradero), 'location': p.stop_name, 'id_comuna': p.id_comuna, 'id_tipo_paradero': p.id_tipo_paradero, 'url_image': url_image }) return JsonResponse({ 'google_api_key': google_api_key, 'zoom': zoom, 'center': center, 'marks': marks }) @csrf_exempt @action(detail=False, methods=['get']) @api_view(['GET']) def rutas(request): id_linea = request.GET.get('id_linea') sectores = GtfsTrips.objects.filter(id_linea = id_linea).all() data = [] for s in sectores: rutas = GtfsShape.objects.filter(id_shape = s.id_shape).order_by('shape_pt_sequence') for r in rutas: data.append({ 'shape_pt_lat': r.shape_pt_lat, 'shape_pt_lon': r.shape_pt_lon, 'shape_pt_sequence': r.shape_pt_sequence }) data_ordenada = sorted(data, key=lambda k: k['shape_pt_sequence']) return JsonResponse({ 'google_api_key': google_api_key, 'positions': data_ordenada })