Ronald Morales 2024-03-24 10:52:52 -03:00
commit 5e33b1b069
7 changed files with 46 additions and 24 deletions

View File

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

View File

@ -13,7 +13,7 @@ class Command(BaseCommand):
help = 'Procesa los archivos gtfs en formato comprimido (zip)' help = 'Procesa los archivos gtfs en formato comprimido (zip)'
def handle(self, *args, **options): def handle(self, *args, **options):
# Lógica de tu comando aquí
folder = config('GTFS_UPLOADS','/tmp') folder = config('GTFS_UPLOADS','/tmp')
redes = RedTransporte.objects.filter(vigente=True) 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) archivo = models.CharField(max_length=200, blank=True, null=True)
ruta_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) 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) usuario = models.CharField(max_length=100, blank=True, null=True)
vigente = models.BooleanField(blank=True, null=True) vigente = models.BooleanField(blank=True, null=True)
status = models.CharField(max_length=100, 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', linea.LineaViewSet)
router.register('lineas-paradero', linea_paradero.LineaParaderoViewSet) router.register('lineas-paradero', linea_paradero.LineaParaderoViewSet)
router.register('letreros-lur', letrero_lur.LetreroLUR_ViewSet) 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('red-transporte', red_transporte.RedTransporteViewSet)
router.register('gtfs-archivo', gtfs_archivo.GtfsArchivoViewSet) router.register('gtfs-archivo', gtfs_archivo.GtfsArchivoViewSet)
router.register('roles', rol.RolViewSet) router.register('roles', rol.RolViewSet)
@ -41,5 +41,6 @@ urlpatterns = [
path('auth/nueva-contrasena/', auth.nueva_contrasena, name='auth_contrasena'), path('auth/nueva-contrasena/', auth.nueva_contrasena, name='auth_contrasena'),
path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'), path('mapas/paraderos/', mapa.paraderos, name='mapa-paraderos'),
path('mapas/rutas/', mapa.rutas, name='mapa-rutas'), 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'), path('upload/zip/', upload.upload_zip, name='upload_zip'),
] ]

View File

@ -2,19 +2,24 @@
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.decorators import action from rest_framework.decorators import action
from django_filters.rest_framework import DjangoFilterBackend from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter
from django.core.files.storage import FileSystemStorage from django.core.files.storage import FileSystemStorage
from django.http import FileResponse, HttpResponse from django.http import FileResponse, HttpResponse
from api import models , serializers from api import models , serializers
from decouple import config from decouple import config
import os import os
import logging import logging
class GtfsArchivoViewSet(viewsets.ModelViewSet): class GtfsArchivoViewSet(viewsets.ModelViewSet):
queryset = models.GtfsArchivo.objects.all() queryset = models.GtfsArchivo.objects.all()
serializer_class = serializers.GtfsArchivoSerializer serializer_class = serializers.GtfsArchivoSerializer
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend, OrderingFilter]
filterset_fields = ['id_gtfs', 'id_red', 'archivo','valid_from','created','usuario','vigente','status'] 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): def create(self, request, *args, **kwargs):
fs = FileSystemStorage(location = config('GTFS_UPLOADS','/tmp')) 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 Paradero
from api.models import GtfsShape, GtfsTrips from api.models import GtfsShape, GtfsTrips
from logging import error from logging import error
from decouple import config
google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4' google_api_key = 'AIzaSyDnFO9w_SsodjBuY5tOK8-kQJns_l5klQ4'
center = {'lat': -36.8077884, 'lng': -73.0775401} center = {'lat': -36.8077884, 'lng': -73.0775401}
@csrf_exempt @csrf_exempt
@action(detail=False, methods=['get']) @action(detail=False, methods=['get'])
@api_view(['GET']) @api_view(['GET'])
@ -86,4 +88,19 @@ def rutas(request):
return JsonResponse({ return JsonResponse({
'google_api_key': google_api_key, 'google_api_key': google_api_key,
'positions': list(resultados) '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 django.db import transaction
from api import models, serializers from api import models, serializers
import logging import logging
from decouple import config
class OperadorViewSet(viewsets.ModelViewSet): class OperadorViewSet(viewsets.ModelViewSet):
# queryset = models.Operador.objects.all() # queryset = models.Operador.objects.all()
@ -62,30 +63,25 @@ class OperadorViewSet(viewsets.ModelViewSet):
#Grabamos Operador, ya que si corresponde se le asigno el id del nuevo Rol #Grabamos Operador, ya que si corresponde se le asigno el id del nuevo Rol
operador.save() operador.save()
if newRecord : if newRecord :
aplicacion = models.Aplicacion.objects.get(id_aplicacion=1) app_default_operador_str = config('APP_DEFAULT_OPERADOR')
rolApp = models.RolAplicacion( app_default_operador = [int(x) for x in app_default_operador_str.split(',')]
id_rol=rol,
id_aplicacion =aplicacion for id_aplicacion in app_default_operador:
) aplicacion = models.Aplicacion.objects.get(id_aplicacion=id_aplicacion)
rolApp.save() rolApp = models.RolAplicacion(
aplicacion = models.Aplicacion.objects.get(id_aplicacion=2) id_rol=rol,
rolApp = models.RolAplicacion( id_aplicacion=aplicacion
id_rol=rol, )
id_aplicacion = aplicacion rolApp.save()
)
rolApp.save()
rol_operador = models.RolOperador( rol_operador = models.RolOperador(
id_rol = rol, id_rol = rol,
id_operador = operador id_operador = operador
) )
rol_operador.save() rol_operador.save()
newRecord =False newRecord =False
return Response({ return Response({
'id_operador': operador.id_operador, 'id_operador': operador.id_operador,