se cambia rol_linea por rol_operador

francisco/photos
Francisco Sandoval 2024-02-07 14:57:37 -03:00
parent 64bd566a8a
commit 1f13661f2d
8 changed files with 45 additions and 46 deletions

View File

@ -8,8 +8,8 @@ POST {{server}}/auth/
Content-Type: application/json Content-Type: application/json
{ {
"username": "usuario1", "rut": "22222222-2",
"password": "usuario1" "password": "usuario2"
} }
### ###
@ -41,5 +41,5 @@ Content-Type: application/json
} }
### ###
GET {{server}}/lineas/?offset=0&limit=10 GET {{server}}/operadores/
Authorization: Bearer {{token}} Authorization: Bearer {{token}}

View File

@ -304,6 +304,15 @@ class RolAplicacion(models.Model):
db_table = 'rol_aplicacion' db_table = 'rol_aplicacion'
unique_together = (('id_aplicacion', 'id_rol'),) unique_together = (('id_aplicacion', 'id_rol'),)
class RolOperador(models.Model):
id_rol_operador = models.AutoField(primary_key=True)
id_rol = models.ForeignKey(Rol, models.DO_NOTHING, db_column='id_rol')
id_operador = models.ForeignKey(Operador, models.DO_NOTHING, db_column='id_operador')
class Meta:
managed = True
db_table = 'rol_operador'
unique_together = (('id_rol', 'id_operador'),)
class SpatialRefSys(models.Model): class SpatialRefSys(models.Model):
srid = models.IntegerField(primary_key=True) srid = models.IntegerField(primary_key=True)
@ -395,16 +404,6 @@ class VehiculoLinea(models.Model):
managed = False managed = False
db_table = 'vehiculo_linea' db_table = 'vehiculo_linea'
unique_together = (('patente', 'id_linea'),) unique_together = (('patente', 'id_linea'),)
class RolLinea(models.Model):
id_rol_linea = models.AutoField(primary_key=True)
id_rol = models.ForeignKey(Rol, models.DO_NOTHING, db_column='id_rol')
id_linea = models.ForeignKey(Linea, models.DO_NOTHING, db_column='id_linea')
class Meta:
managed = True
db_table = 'rol_linea'
unique_together = (('id_rol', 'id_linea'),)
class RedTransporte(models.Model): class RedTransporte(models.Model):
id_red = models.CharField(primary_key=True, max_length=10) id_red = models.CharField(primary_key=True, max_length=10)

View File

@ -130,9 +130,9 @@ class RolAplicacionSerializer(serializers.ModelSerializer):
model = models.RolAplicacion model = models.RolAplicacion
fields = '__all__' fields = '__all__'
class RolLineaSerializer(serializers.ModelSerializer): class RolOperadorSerializer(serializers.ModelSerializer):
class Meta: class Meta:
model = models.RolLinea model = models.RolOperador
fields = '__all__' fields = '__all__'
class LetreroLUR_Serializer(serializers.ModelSerializer): class LetreroLUR_Serializer(serializers.ModelSerializer):

View File

@ -5,7 +5,7 @@ from api.views import usuario, auth, aplicacion, tipo, persona, comuna, region,
from api.views import mapa, linea, letrero_lur, operador,red_transporte,gtfs_archivo from api.views import mapa, linea, letrero_lur, operador,red_transporte,gtfs_archivo
from api.views import paradero, paradero_imagen, linea_paradero from api.views import paradero, paradero_imagen, linea_paradero
from api.views import dispositivo from api.views import dispositivo
from api.views import rol_linea from api.views import rol_operador
from api.views import upload from api.views import upload
router = routers.DefaultRouter() router = routers.DefaultRouter()
@ -25,12 +25,12 @@ 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) 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)
router.register('rolyaplicacion', rolaplicacion.RolAplicacionViewSet, basename='rol_aplicacion') router.register('rolyaplicacion', rolaplicacion.RolAplicacionViewSet, basename='rol_aplicacion')
router.register('roles-lineas', rol_linea.RolLineaViewSet, basename='rol_linea') router.register('roles-operadores', rol_operador.RolOperadorViewSet, basename='rol_operador')
urlpatterns = [ urlpatterns = [
path('', include(router.urls)), path('', include(router.urls)),

View File

@ -18,20 +18,9 @@ class LineaViewSet(viewsets.ModelViewSet):
queryset = models.Linea.objects.all() queryset = models.Linea.objects.all()
serializer_class = serializers.LineaSerializer serializer_class = serializers.LineaSerializer
filter_backends = [DjangoFilterBackend, OrderingFilter] filter_backends = [DjangoFilterBackend, OrderingFilter]
filterset_fields = ['id_operador', 'route_short_name', 'route_long_name', 'vigente', 'rollinea__id_rol'] filterset_fields = ['id_operador', 'route_short_name', 'route_long_name', 'vigente']
ordering_fields = '__all__' ordering_fields = '__all__'
def list(self, request, pk=None, *args, **kwargs):
login = request.jwt_info['login']
usuario = models.Usuario.objects.filter(login=login).first()
if usuario.superuser != True:
self.request.GET.rollinea__id_rol = usuario.id_rol.id_rol
request.GET.rollinea__id_rol = usuario.id_rol.id_rol
# request.GET.setdefault('rollinea__id_rol',usuario.id_rol)
return super().list(request, pk, *args, **kwargs)
@action(detail=False, methods=['get']) @action(detail=False, methods=['get'])
def proto(self, request, pk=None): def proto(self, request, pk=None):
id_paradero = request.GET['id_paradero'] id_paradero = request.GET['id_paradero']

View File

@ -6,14 +6,25 @@ from django_filters.rest_framework import DjangoFilterBackend
from rest_framework.filters import OrderingFilter from rest_framework.filters import OrderingFilter
from rest_framework import status from rest_framework import status
from api import models, serializers from api import models, serializers
import logging
class OperadorViewSet(viewsets.ModelViewSet): class OperadorViewSet(viewsets.ModelViewSet):
queryset = models.Operador.objects.all() # queryset = models.Operador.objects.all()
serializer_class = serializers.OperadorSerializer serializer_class = serializers.OperadorSerializer
filter_backends = [DjangoFilterBackend, OrderingFilter] filter_backends = [DjangoFilterBackend, OrderingFilter]
filterset_fields = ['id_region', 'nombre_operador', 'vigente'] filterset_fields = ['id_region', 'nombre_operador', 'vigente', 'id_operador', 'roloperador__id_rol']
ordering_fields = '__all__' ordering_fields = '__all__'
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): def create(self, request, *args, **kwargs):
# Comprueba si 'id_operador' está presente en la petición y no está vacío # Comprueba si 'id_operador' está presente en la petición y no está vacío
id_operador = request.data.get('id_operador') id_operador = request.data.get('id_operador')

View File

@ -1,14 +0,0 @@
from rest_framework import viewsets
from .. import models, serializers
import logging
class RolLineaViewSet(viewsets.ModelViewSet):
serializer_class = serializers.RolLineaSerializer
def get_queryset(self):
id_rol = self.request.query_params.get('id_rol') # Obtener el valor del parámetro id_rol desde la solicitud
if id_rol is not None:
return models.RolLinea.objects.filter(id_rol=id_rol)
return models.RolLinea.objects.all()

View File

@ -0,0 +1,14 @@
from rest_framework import viewsets
from api import models, serializers
import logging
class RolOperadorViewSet(viewsets.ModelViewSet):
serializer_class = serializers.RolOperadorSerializer
def get_queryset(self):
id_rol = self.request.query_params.get('id_rol') # Obtener el valor del parámetro id_rol desde la solicitud
if id_rol is not None:
return models.RolOperador.objects.filter(id_rol=id_rol)
return models.RolOperador.objects.all()