Exemplo n.º 1
0
def project_list(request, template_name="im/projects/project_list.html"):
    query = api.make_project_query({})
    show_base = request.GET.get('show_base', False)

    # exclude base projects by default for admin users
    if not show_base and request.user.is_project_admin():
        query = query & ~Q(Q(is_base=True) & \
                          ~Q(realname="system:%s" % request.user.uuid))

    query = query & ~Q(state__in=Project.HIDDEN_STATES)
    mode = "default"
    if not request.user.is_project_admin():
        mode = "related"

    projects = api._get_projects(query, mode=mode, request_user=request.user)

    table = None
    if projects.count():
        table = get_user_projects_table(projects,
                                        user=request.user,
                                        prefix="my_projects_",
                                        request=request)

    context = {'is_search': False, 'table': table}
    return ListViewExtra.as_view(template_name=template_name,
                                 queryset=projects,
                                 extra_context=context)(request)
Exemplo n.º 2
0
def project_search(request):
    q = request.GET.get('q', '')
    form = ProjectSearchForm()
    q = q.strip()

    if request.method == "POST":
        form = ProjectSearchForm(request.POST)
        if form.is_valid():
            q = form.cleaned_data['q'].strip()
        else:
            q = None

    if q is None:
        projects = Project.objects.none()
    else:
        query = ~Q(state=Project.DELETED)
        projects = api._get_projects(query, mode="active",
                                     request_user=request.user)

    table = get_user_projects_table(projects, user=request.user,
                                    prefix="my_projects_")
    if request.method == "POST":
        table.caption = _('SEARCH RESULTS')
    else:
        table.caption = _('ALL PROJECTS')

    return ListViewExtra.as_view(
        queryset=projects,
        template_name='im/projects/project_list.html',
        extra_context={
            'form': form,
            'is_search': True,
            'q': q,
            'table': table
        })(request)
Exemplo n.º 3
0
def project_search(request):
    q = request.GET.get('q', '')
    form = ProjectSearchForm()
    q = q.strip()

    if request.method == "POST":
        form = ProjectSearchForm(request.POST)
        if form.is_valid():
            q = form.cleaned_data['q'].strip()
        else:
            q = None

    if q is None:
        projects = Project.objects.none()
    else:
        query = ~Q(state=Project.DELETED)
        projects = api._get_projects(query,
                                     mode="active",
                                     request_user=request.user)

    table = get_user_projects_table(projects,
                                    user=request.user,
                                    prefix="my_projects_")
    if request.method == "POST":
        table.caption = _('SEARCH RESULTS')
    else:
        table.caption = _('ALL PROJECTS')

    return object_list(request,
                       projects,
                       template_name='im/projects/project_list.html',
                       extra_context={
                           'form': form,
                           'is_search': True,
                           'q': q,
                           'table': table
                       })
Exemplo n.º 4
0
def project_list(request, template_name="im/projects/project_list.html"):
    query = api.make_project_query({})
    show_base = request.GET.get('show_base', False)

    # exclude base projects by default for admin users
    if not show_base and request.user.is_project_admin():
        query = query & ~Q(Q(is_base=True) & \
                          ~Q(realname="system:%s" % request.user.uuid))

    query = query & ~Q(state__in=Project.SKIP_STATES)
    mode = "default"
    if not request.user.is_project_admin():
        mode = "related"

    projects = api._get_projects(query, mode=mode, request_user=request.user)

    table = None
    if projects.count():
        table = get_user_projects_table(projects, user=request.user,
                                        prefix="my_projects_", request=request)

    context = {'is_search': False, 'table': table}
    return object_list(request, projects, template_name=template_name,
                       extra_context=context)