Revision b10ceccd snf-astakos-app/astakos/im/views/projects.py

b/snf-astakos-app/astakos/im/views/projects.py
138 138
        messages.error(request, e)
139 139

  
140 140

  
141
def get_user_projects_table(projects, user, prefix):
142
    apps = ProjectApplication.objects.pending_per_project(projects)
143
    memberships = user.projectmembership_set.one_per_project()
144
    objs = ProjectMembership.objects
145
    accepted_ms = objs.any_accepted_per_project(projects)
146
    requested_ms = objs.requested_per_project(projects)
147
    return tables.UserProjectsTable(projects, user=user,
148
                                    prefix=prefix,
149
                                    pending_apps=apps,
150
                                    memberships=memberships,
151
                                    accepted=accepted_ms,
152
                                    requested=requested_ms)
153

  
154

  
141 155
@require_http_methods(["GET"])
142 156
@cookie_fix
143 157
@valid_astakos_user_required
144 158
def project_list(request):
145
    projects = Project.objects.user_accessible_projects(
146
        request.user).select_related()
147
    table = tables.UserProjectsTable(projects, user=request.user,
148
                                     prefix="my_projects_")
159
    projects = Project.objects.user_accessible_projects(request.user)
160
    table = get_user_projects_table(projects, user=request.user,
161
                                    prefix="my_projects_")
149 162
    RequestConfig(request,
150 163
                  paginate={"per_page": settings.PAGINATE_BY}).configure(table)
151 164

  
......
424 437

  
425 438
        projects = Project.objects.search_by_name(q)
426 439
        projects = projects.filter(Project.o_state_q(Project.O_ACTIVE))
427
        projects = projects.exclude(id__in=accepted)
440
        projects = projects.exclude(id__in=accepted).select_related(
441
            'application', 'application__owner', 'application__applicant')
428 442

  
429
    table = tables.UserProjectsTable(projects, user=request.user,
430
                                     prefix="my_projects_")
443
    table = get_user_projects_table(projects, user=request.user,
444
                                    prefix="my_projects_")
431 445
    if request.method == "POST":
432 446
        table.caption = _('SEARCH RESULTS')
433 447
    else:

Also available in: Unified diff