Revision 3f3dc4b7 snf-astakos-app/astakos/im/views.py
b/snf-astakos-app/astakos/im/views.py | ||
---|---|---|
1236 | 1236 |
ctx.mark_rollback() |
1237 | 1237 |
messages.error(request, e) |
1238 | 1238 |
|
1239 |
def common_detail(request, chain_or_app_id, project_view=True): |
|
1239 |
def common_detail(request, chain_or_app_id, project_view=True, |
|
1240 |
template_name='im/projects/project_detail.html', |
|
1241 |
members_status_filter=None): |
|
1240 | 1242 |
project = None |
1241 | 1243 |
if project_view: |
1242 | 1244 |
chain_id = chain_or_app_id |
... | ... | |
1250 | 1252 |
addmembers_form = AddProjectMembersForm() # clear form data |
1251 | 1253 |
else: |
1252 | 1254 |
addmembers_form = AddProjectMembersForm() # initialize form |
1253 |
|
|
1255 |
approved_members_count = 0 |
|
1256 |
pending_members_count = 0 |
|
1257 |
remaining_memberships_count = 0 |
|
1254 | 1258 |
project, application = get_by_chain_or_404(chain_id) |
1255 | 1259 |
if project: |
1256 | 1260 |
members = project.projectmembership_set.select_related() |
1261 |
approved_members_count = members.filter(state=1).count() |
|
1262 |
pending_members_count = members.filter(state=0).count() |
|
1263 |
if members_status_filter in (0,1): |
|
1264 |
members = members.filter(state=members_status_filter) |
|
1257 | 1265 |
members_table = tables.ProjectMembersTable(project, |
1258 | 1266 |
members, |
1259 | 1267 |
user=request.user, |
1260 | 1268 |
prefix="members_") |
1269 |
|
|
1261 | 1270 |
RequestConfig(request, paginate={"per_page": PAGINATE_BY} |
1262 | 1271 |
).configure(members_table) |
1263 | 1272 |
|
... | ... | |
1299 | 1308 |
request, |
1300 | 1309 |
queryset=ProjectApplication.objects.select_related(), |
1301 | 1310 |
object_id=application.id, |
1302 |
template_name='im/projects/project_detail.html',
|
|
1311 |
template_name= template_name,
|
|
1303 | 1312 |
extra_context={ |
1304 | 1313 |
'project_view': project_view, |
1305 | 1314 |
'addmembers_form':addmembers_form, |
1315 |
'approved_members_count':approved_members_count, |
|
1316 |
'pending_members_count':pending_members_count, |
|
1306 | 1317 |
'members_table': members_table, |
1307 | 1318 |
'owner_mode': is_owner, |
1308 | 1319 |
'admin_mode': is_project_admin, |
... | ... | |
1310 | 1321 |
'mem_display': mem_display, |
1311 | 1322 |
'can_join_request': can_join_req, |
1312 | 1323 |
'can_leave_request': can_leave_req, |
1324 |
'members_status_filter':members_status_filter, |
|
1313 | 1325 |
}) |
1314 | 1326 |
|
1315 | 1327 |
@require_http_methods(["GET", "POST"]) |
... | ... | |
1585 | 1597 |
return render_response( |
1586 | 1598 |
'im/api_access.html', |
1587 | 1599 |
context_instance=get_context(request)) |
1600 |
|
|
1601 |
|
|
1602 |
@require_http_methods(["GET", "POST"]) |
|
1603 |
@valid_astakos_user_required |
|
1604 |
def project_members(request, chain_id, members_status_filter=None, |
|
1605 |
template_name='im/projects/project_members.html'): |
|
1606 |
return common_detail(request, chain_id, |
|
1607 |
members_status_filter=members_status_filter, |
|
1608 |
template_name=template_name) |
Also available in: Unified diff