def crear_usuario(request): #PERMISOS if request.user.groups.filter(name__in=['Mantenedor']).exists(): return HttpResponseRedirect(reverse("home")) elif request.user.groups.filter(name__in=['Profesional']).exists(): return HttpResponseRedirect(reverse("home")) elif request.user.groups.filter(name__in=['Asistente Social']).exists(): return HttpResponseRedirect(reverse("home")) elif request.user.groups.filter(name__in=['Administrativo']).exists(): return HttpResponseRedirect(reverse("home")) else: template = "crear_usuario.html" if request.method == 'GET': areas = Area.objects.all() especialidades = Especialidad.objects.all() return render(request, template, { "areas": areas, "especialidades": especialidades }) if request.method == 'POST': try: nombre = request.POST.get('inputNombre').upper() apellido_paterno = request.POST.get( 'inputApellidoPaterno').upper() apellido_materno = request.POST.get( 'inputApellidoMaterno').upper() txt_rut = request.POST.get('inputRut') rut = txt_rut.replace(".", "") tipoUsuario = request.POST.get('inputTipoUsuario') correo = request.POST.get('inputCorreo') especialidadesElegidas = request.POST.getlist( 'inputEspecialidad') apellidos = apellido_paterno.upper( ) + " " + apellido_materno.upper() #print (especialidadesElegidas) usuarioExiste = Usuario.objects.filter(rut=rut) if not usuarioExiste: usuario = Usuario() usuario.nombre = nombre.upper() usuario.apellidos = apellidos usuario.rut = rut if tipoUsuario == "1": usuario.profesional = True elif tipoUsuario == "2": usuario.administrativo = True elif tipoUsuario == "3": usuario.mantenedor = True elif tipoUsuario == "4": usuario.asistente_social = True elif tipoUsuario == "5": usuario.coordinador = True usuario.user = crear_user(nombre, apellidos, correo, tipoUsuario, rut) usuario.save() if especialidadesElegidas: for e in especialidadesElegidas: obj = UsuarioEspecialidad() especialidad = Especialidad.objects.get(id=e) obj.especialidad = especialidad obj.usuario = usuario obj.save() messages.success(request, '¡Usuario agregado con éxito!') id = usuario.id del usuario return HttpResponseRedirect( reverse("usuarios:verUsuario", args=[id])) else: usuario = usuarioExiste[0] usuario.user = crear_user(nombre, apellidos, correo, tipoUsuario, rut) messages.error(request, '¡Este usuario ya existe!') return HttpResponseRedirect( reverse("usuarios:crear_usuario")) except Exception as e: messages.error(request, "No fue posible crear usuario. " + repr(e)) return HttpResponseRedirect(reverse("usuarios:crear_usuario"))