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;*/ ) 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

@ -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'])
@ -87,3 +89,18 @@ def rutas(request):
'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()
@ -64,13 +65,11 @@ class OperadorViewSet(viewsets.ModelViewSet):
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()
aplicacion = models.Aplicacion.objects.get(id_aplicacion=2)
rolApp = models.RolAplicacion( rolApp = models.RolAplicacion(
id_rol=rol, id_rol=rol,
id_aplicacion=aplicacion id_aplicacion=aplicacion
@ -84,9 +83,6 @@ class OperadorViewSet(viewsets.ModelViewSet):
rol_operador.save() rol_operador.save()
newRecord =False newRecord =False
return Response({ return Response({
'id_operador': operador.id_operador, 'id_operador': operador.id_operador,
'nombre_operador': operador.nombre_operador, 'nombre_operador': operador.nombre_operador,