Modifica mapa, operador, fecha gtfs

develop/Ronald
Ronald Morales 2024-03-24 02:04:11 -03:00
parent 62128c09db
commit 5e3d422e08
7 changed files with 46 additions and 24 deletions

View File

@ -79,11 +79,13 @@ BEGIN
) INTO inicio_vigencia;*/
SELECT MIN(start_date) INTO inicio_vigencia FROM z_calendar;
update gtfs_archivo
set valid_from= inicio_vigencia
where trim(upper(status))='PROCESANDO' ;
IF CURRENT_DATE < inicio_vigencia THEN
update gtfs_archivo
set status = 'PENDIENTE' , valid_from= inicio_vigencia
set status = 'PENDIENTE'
where trim(upper(status))='PROCESANDO' ;
v_error:= '9 EL ARCHIVO AUN NO ESTA VIGENTE POR FECHA';
END IF;

View File

@ -13,7 +13,7 @@ class Command(BaseCommand):
help = 'Procesa los archivos gtfs en formato comprimido (zip)'
def handle(self, *args, **options):
# Lógica de tu comando aquí
folder = config('GTFS_UPLOADS','/tmp')
redes = RedTransporte.objects.filter(vigente=True)

View File

@ -425,7 +425,8 @@ class GtfsArchivo(models.Model):
archivo = models.CharField(max_length=200, blank=True, null=True)
ruta_archivo = models.CharField(max_length=200, blank=True, null=True)
valid_from = models.DateField(blank=True, null=True)
created = models.DateTimeField(blank=True, null=True)
#created = models.DateTimeField(blank=True, null=True)
created = models.DateTimeField(auto_now_add=True)
usuario = models.CharField(max_length=100, blank=True, null=True)
vigente = models.BooleanField(blank=True, null=True)
status = models.CharField(max_length=100, blank=True, null=True)

View File

@ -25,7 +25,7 @@ router.register('paraderos-image', paradero_imagen.ParaderoImagenListView, basen
router.register('lineas', linea.LineaViewSet)
router.register('lineas-paradero', linea_paradero.LineaParaderoViewSet)
router.register('letreros-lur', letrero_lur.LetreroLUR_ViewSet)
router.register('operadores', operador.OperadorViewSet, basename='operadores')
router.register('operadores', operador.OperadorViewSet, basename='operadores')
router.register('red-transporte', red_transporte.RedTransporteViewSet)
router.register('gtfs-archivo', gtfs_archivo.GtfsArchivoViewSet)
router.register('roles', rol.RolViewSet)
@ -41,5 +41,6 @@ urlpatterns = [
path('auth/nueva-contrasena/', auth.nueva_contrasena, name='auth_contrasena'),
path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'),
path('mapas/rutas/', mapa.rutas, name='mapa-rutas'),
path('mapas/coordenadas/', mapa.coordenadas, name='mapa-coordenadas'),
path('upload/zip/', upload.upload_zip, name='upload_zip'),
]

View File

@ -2,19 +2,24 @@
from rest_framework import viewsets
from rest_framework.decorators import action
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter
from django.core.files.storage import FileSystemStorage
from django.http import FileResponse, HttpResponse
from api import models , serializers
from decouple import config
import os
import logging
class GtfsArchivoViewSet(viewsets.ModelViewSet):
queryset = models.GtfsArchivo.objects.all()
serializer_class = serializers.GtfsArchivoSerializer
filter_backends = [DjangoFilterBackend]
filter_backends = [DjangoFilterBackend, OrderingFilter]
filterset_fields = ['id_gtfs', 'id_red', 'archivo','valid_from','created','usuario','vigente','status']
ordering_fields = ['id_gtfs', 'id_red', 'archivo', 'valid_from', 'created', 'usuario', 'vigente', 'status']
ordering = ['id_gtfs']
def create(self, request, *args, **kwargs):
fs = FileSystemStorage(location = config('GTFS_UPLOADS','/tmp'))

View File

@ -6,10 +6,12 @@ from django.views.decorators.csrf import csrf_exempt
from api.models import Paradero
from api.models import GtfsShape, GtfsTrips
from logging import error
from decouple import config
google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4'
center = {'lat': -36.8077884, 'lng': -73.0775401}
@csrf_exempt
@action(detail=False, methods=['get'])
@api_view(['GET'])
@ -87,3 +89,18 @@ def rutas(request):
'google_api_key': google_api_key,
'positions': list(resultados)
})
@action(detail=False, methods=['get'])
@api_view(['GET'])
def coordenadas(request):
# Obtener las coordenadas iniciales desde las variables de entorno
initial_lat = config('COORDINI_LAT', default=-36.8270)
initial_lng = config('COORDINI_LNG', default=-73.0503)
# Enviar las coordenadas iniciales como parte de la respuesta
return JsonResponse({
'initialLat': initial_lat,
'initialLng': initial_lng,
})

View File

@ -8,6 +8,7 @@ from django.db.models import Max
from django.db import transaction
from api import models, serializers
import logging
from decouple import config
class OperadorViewSet(viewsets.ModelViewSet):
# queryset = models.Operador.objects.all()
@ -64,18 +65,16 @@ class OperadorViewSet(viewsets.ModelViewSet):
if newRecord :
aplicacion = models.Aplicacion.objects.get(id_aplicacion=1)
rolApp = models.RolAplicacion(
id_rol=rol,
id_aplicacion =aplicacion
)
rolApp.save()
aplicacion = models.Aplicacion.objects.get(id_aplicacion=2)
rolApp = models.RolAplicacion(
id_rol=rol,
id_aplicacion = aplicacion
)
rolApp.save()
app_default_operador_str = config('APP_DEFAULT_OPERADOR')
app_default_operador = [int(x) for x in app_default_operador_str.split(',')]
for id_aplicacion in app_default_operador:
aplicacion = models.Aplicacion.objects.get(id_aplicacion=id_aplicacion)
rolApp = models.RolAplicacion(
id_rol=rol,
id_aplicacion=aplicacion
)
rolApp.save()
rol_operador = models.RolOperador(
id_rol = rol,
@ -84,9 +83,6 @@ class OperadorViewSet(viewsets.ModelViewSet):
rol_operador.save()
newRecord =False
return Response({
'id_operador': operador.id_operador,
'nombre_operador': operador.nombre_operador,