def setUserToProject(request, id_proyecto): """ *Vista para vincular usuarios a un proyecto existente. Acción solo realizada por los usuarios con rol de ``Líder de proyecto``* :param request: HttpRequest necesario para vincular los usuarios a proyectos, es la solicitud de la acción. :param id_proyecto: Identificador del proyecto dentro del sistema al cual se le vincularán usuarios para su desarrollo. :return: Proporciona la pagina ``setusertoproject.html`` con la lista de todos los usuarios existentes en el sistema para listar al proyecto Usuarios vinculados correctamente al proyecto. """ project = Proyecto.objects.get(pk=id_proyecto) # Obtiene una lista de los usuarios ya vinculados al proyecto y una lista de los usuarios con estado # Inactivo dentro del sistema para luego unir las dos listas en una. if request.method == 'POST': form = setUserToProjectForm(request.POST, id_proyecto=project.id) if form.is_valid(): nuevosUsuariosAsociados = form.get_cleaned_data() messages = [] for idNuevoUsuario in nuevosUsuariosAsociados: usuarioVinculado = UsuariosVinculadosProyectos() usuarioVinculado.cod_usuario_id = idNuevoUsuario usuarioVinculado.cod_proyecto = project usuarioVinculado.save() messages.append('Usuario: ' + usuarioVinculado.cod_usuario.get_full_name() + ' asignado al proyecto con exito.') request.session['error'] = 0 request.session['messages'] = messages return HttpResponseRedirect(reverse('administrarProyectos.views.workProject', kwargs={'id_proyecto': id_proyecto})) else: form = setUserToProjectForm(id_proyecto=project.id) return render(request, 'proyecto/setUserToProject.html', {'form': form, 'projecto': project, 'usuariosVinculados': UsuariosVinculadosProyectos.objects.filter(cod_proyecto=project), 'user': request.user},)
def vincularLider(project, lider_code): lider = Usuario.objects.get(pk=lider_code) vinculo = UsuariosVinculadosProyectos(cod_usuario=lider, cod_proyecto=project, habilitado=True) vinculo.save()