ilab_gestion_backend/project/api/views/operador.py

39 lines
1.6 KiB
Python
Raw Normal View History

2023-12-05 10:34:47 -03:00
from rest_framework import viewsets
from rest_framework.response import Response
from rest_framework.decorators import action
from django_filters.rest_framework import DjangoFilterBackend
2024-02-04 17:22:21 -03:00
from rest_framework.filters import OrderingFilter
from rest_framework import status
2024-02-04 17:22:21 -03:00
from api import models, serializers
2024-02-07 14:57:37 -03:00
import logging
2023-12-05 10:34:47 -03:00
class OperadorViewSet(viewsets.ModelViewSet):
2024-02-07 14:57:37 -03:00
# queryset = models.Operador.objects.all()
2023-12-05 10:34:47 -03:00
serializer_class = serializers.OperadorSerializer
2024-02-04 17:22:21 -03:00
filter_backends = [DjangoFilterBackend, OrderingFilter]
2024-02-07 14:57:37 -03:00
filterset_fields = ['id_region', 'nombre_operador', 'vigente', 'id_operador', 'roloperador__id_rol']
2024-02-04 17:22:21 -03:00
ordering_fields = '__all__'
2024-02-07 14:57:37 -03:00
def get_queryset(self):
login = self.request.jwt_info['login']
usuario = models.Usuario.objects.filter(login=login).first()
if usuario.superuser:
return models.Operador.objects.all()
else:
return models.Operador.objects.filter(roloperador__id_rol=usuario.id_rol.id_rol)
def create(self, request, *args, **kwargs):
# Comprueba si 'id_operador' está presente en la petición y no está vacío
id_operador = request.data.get('id_operador')
if not id_operador:
# Si 'id_operador' no está presente o está vacío, retorna un error 400
return Response(
{"error": "No se puede crear el operador: 'id_operador' no proporcionado."},
status=status.HTTP_400_BAD_REQUEST
)
# Si 'id_operador' está presente, procede con la creación normal
return super().create(request, *args, **kwargs)