Merge remote-tracking branch 'origin/develop/Ronald'

develop/Ronald
Francisco Sandoval 2024-03-10 12:47:55 -03:00
commit 16d449ad58
3 changed files with 46 additions and 21 deletions

View File

@ -1,7 +1,6 @@
from django.db import transaction from django.db import transaction
from django.http import HttpResponse, JsonResponse from django.http import HttpResponse, JsonResponse
from django.contrib.auth.hashers import make_password
from rest_framework import viewsets from rest_framework import viewsets
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.decorators import action from rest_framework.decorators import action
@ -23,7 +22,6 @@ class ContratoViewSet(viewsets.ModelViewSet):
try: try:
with transaction.atomic(): with transaction.atomic():
input = json.loads(request.body) input = json.loads(request.body)
persona = models.Persona.objects.filter(rut = input['rut']).first() persona = models.Persona.objects.filter(rut = input['rut']).first()
id_tipo_tratamiento = input.get('id_tipo_tratamiento',None) id_tipo_tratamiento = input.get('id_tipo_tratamiento',None)
if not id_tipo_tratamiento: if not id_tipo_tratamiento:

View File

@ -35,30 +35,57 @@ class OperadorViewSet(viewsets.ModelViewSet):
"No se puede crear el operador: 'id_operador' no proporcionado.", "No se puede crear el operador: 'id_operador' no proporcionado.",
status=HTTP_400_BAD_REQUEST status=HTTP_400_BAD_REQUEST
) )
newRecord= False;
if not models.Operador.objects.filter(id_operador=id_operador).exists():
newRecord = True
try: try:
with transaction.atomic(): with transaction.atomic():
#Se Define Operador, pero no se graba
operador = models.Operador( operador = models.Operador(
id_operador = id_operador, id_operador = id_operador,
nombre_operador = request.data.get('nombre_operador'), nombre_operador = request.data.get('nombre_operador'),
vigente = request.data.get('vigente'), vigente = request.data.get('vigente'),
) )
operador.save()
if newRecord:
# se crea el rol para el operador # se crea el rol para el operador
max_id = models.Rol.objects.aggregate(Max('id_rol'))['id_rol__max'] max_id = models.Rol.objects.aggregate(Max('id_rol'))['id_rol__max']
rol = models.Rol( rol = models.Rol(
id_rol = max_id + 1, id_rol = max_id + 1,
nombre_rol = f'Rol {operador.nombre_operador}' nombre_rol = f'Rol {operador.nombre_operador}'
) )
rol.save() rol.save()
operador.id_rol = rol
#Grabamos Operador, ya que si corresponde se le asigno el id del nuevo Rol
operador.save()
if newRecord :
aplicacion = models.Aplicacion.objects.get(id_aplicacion=1)
rolApp = models.RolAplicacion(
id_rol=rol,
id_aplicacion =aplicacion
)
rolApp.save()
aplicacion = models.Aplicacion.objects.get(id_aplicacion=2)
rolApp = models.RolAplicacion(
id_rol=rol,
id_aplicacion = aplicacion
)
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
return Response({ return Response({
'id_operador': operador.id_operador, 'id_operador': operador.id_operador,