Пример #1
0
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},)
Пример #2
0
def vincularLider(project, lider_code):
    lider = Usuario.objects.get(pk=lider_code)
    vinculo = UsuariosVinculadosProyectos(cod_usuario=lider, cod_proyecto=project, habilitado=True)
    vinculo.save()