diff --git a/Dockerfile.adminfull b/Dockerfile.adminfull index 573b684..dfbbddd 100644 --- a/Dockerfile.adminfull +++ b/Dockerfile.adminfull @@ -25,5 +25,7 @@ COPY --from=frontend /backend/readme.md /srv COPY --from=frontend /frontend/dist/ /srv/project/dist COPY --from=frontend /backend/project/ /srv/project +COPY paradero.admin_transporte_backend.py /srv/project/api/views/paradero.py + ENTRYPOINT ["python3"] CMD [ "/srv/project/manage.py", "runserver", "0.0.0.0:4000" ] diff --git a/paradero.admin_transporte_backend.py b/paradero.admin_transporte_backend.py new file mode 100644 index 0000000..cd834df --- /dev/null +++ b/paradero.admin_transporte_backend.py @@ -0,0 +1,48 @@ +from django.http import JsonResponse +from rest_framework import viewsets +from rest_framework.decorators import action +from api.serializers import ParaderoSerializer +from api.models import Paradero, Dispositivo +import logging + +class ParaderoViewSet(viewsets.ModelViewSet): + queryset = Paradero.objects.all() + serializer_class = ParaderoSerializer + + + @action(detail=False, methods=['get']) + def count(self, request, pk=None): + + queryset = Paradero.objects.all() + + if 'vigente' in request.GET and request.GET['vigente'] == '1': + queryset = queryset.filter(vigente=True) + + if 'vigente' in request.GET and request.GET['vigente'] == '0': + queryset = queryset.filter(vigente=False) + + if 'id_comuna' in request.GET: + pass + + return JsonResponse({ 'count': queryset.count() }) + + @action(detail=False, methods=['get'], url_path='info-public/(?P\S+)') + def info_public(self, request, pk=None): + if 'HTTP_REFERER' in request.META: + referer = request.META['HTTP_REFERER'] + else: + protocol = request.scheme + host = request.META['HTTP_HOST'] + port = request.META['SERVER_PORT'] + referer = f'{protocol}://{host}' + + record = Dispositivo.objects \ + .filter(id_tipo_dispositivo__descripcion='CODIGO QR', id_paradero=pk) \ + .first() + + url = None + if record != None: + url = f'https://paradero.tdt-dev.ilab.cl/rutaParadero/?id={record.id_dispositivo}' + + # url = f'{referer}/public/infoStop?codigoParadero={pk}' + return JsonResponse({ 'url_public': url })