Revision ff67242a snf-astakos-app/astakos/im/views.py

b/snf-astakos-app/astakos/im/views.py
96 96
    send_activation as send_activation_func,
97 97
    SendNotificationError,
98 98
    accept_membership, reject_membership, remove_membership,
99
    leave_project, join_project, enroll_member)
99
    leave_project, join_project, enroll_member,
100
    get_by_chain_or_404)
100 101
from astakos.im.settings import (
101 102
    COOKIE_DOMAIN, LOGOUT_NEXT,
102 103
    LOGGING_LEVEL, PAGINATE_BY,
......
1132 1133
@signed_terms_required
1133 1134
@login_required
1134 1135
@transaction.commit_on_success
1135
def project_detail(request, application_id):
1136
def project_detail(request, chain_id):
1136 1137
    addmembers_form = AddProjectMembersForm()
1137 1138
    if request.method == 'POST':
1138 1139
        addmembers_form = AddProjectMembersForm(
1139 1140
            request.POST,
1140
            application_id=int(application_id),
1141
            chain_id=int(chain_id),
1141 1142
            request_user=request.user)
1142 1143
        if addmembers_form.is_valid():
1143 1144
            try:
1144 1145
                rollback = False
1145
                application_id = int(application_id)
1146
                chain_id = int(chain_id)
1146 1147
                map(lambda u: enroll_member(
1147
                        application_id,
1148
                        chain_id,
1148 1149
                        u,
1149 1150
                        request_user=request.user),
1150 1151
                    addmembers_form.valid_users)
......
1162 1163

  
1163 1164
    rollback = False
1164 1165

  
1165
    application = get_object_or_404(ProjectApplication, pk=application_id)
1166
    try:
1167
        members = application.project.projectmembership_set.select_related()
1168
    except Project.DoesNotExist:
1166
    project, application = get_by_chain_or_404(chain_id)
1167
    if project:
1168
        members = project.projectmembership_set.select_related()
1169
    else:
1169 1170
        members = ProjectMembership.objects.none()
1170 1171

  
1171 1172
    members_table = tables.ProjectApplicationMembersTable(application,
......
1186 1187
    return object_detail(
1187 1188
        request,
1188 1189
        queryset=ProjectApplication.objects.select_related(),
1189
        object_id=application_id,
1190
        object_id=application.id,
1190 1191
        template_name='im/projects/project_detail.html',
1191 1192
        extra_context={
1192 1193
            'addmembers_form':addmembers_form,
......
1239 1240
@signed_terms_required
1240 1241
@login_required
1241 1242
@transaction.commit_manually
1242
def project_join(request, application_id):
1243
def project_join(request, chain_id):
1243 1244
    next = request.GET.get('next')
1244 1245
    if not next:
1245 1246
        next = reverse('astakos.im.views.project_detail',
1246
                       args=(application_id,))
1247
                       args=(chain_id,))
1247 1248

  
1248 1249
    rollback = False
1249 1250
    try:
1250
        application_id = int(application_id)
1251
        join_project(application_id, request.user)
1251
        chain_id = int(chain_id)
1252
        join_project(chain_id, request.user)
1252 1253
        # TODO: distinct messages for request/auto accept ???
1253 1254
        messages.success(request, _(astakos_messages.USER_JOIN_REQUEST_SUBMITED))
1254 1255
    except (IOError, PermissionDenied), e:
......
1269 1270
@signed_terms_required
1270 1271
@login_required
1271 1272
@transaction.commit_manually
1272
def project_leave(request, application_id):
1273
def project_leave(request, chain_id):
1273 1274
    next = request.GET.get('next')
1274 1275
    if not next:
1275 1276
        next = reverse('astakos.im.views.project_list')
1276 1277

  
1277 1278
    rollback = False
1278 1279
    try:
1279
        application_id = int(application_id)
1280
        leave_project(application_id, request.user)
1280
        chain_id = int(chain_id)
1281
        leave_project(chain_id, request.user)
1281 1282
    except (IOError, PermissionDenied), e:
1282 1283
        messages.error(request, e)
1283 1284
    except BaseException, e:
......
1297 1298
@signed_terms_required
1298 1299
@login_required
1299 1300
@transaction.commit_manually
1300
def project_accept_member(request, application_id, user_id):
1301
def project_accept_member(request, chain_id, user_id):
1301 1302
    rollback = False
1302 1303
    try:
1303
        application_id = int(application_id)
1304
        chain_id = int(chain_id)
1304 1305
        user_id = int(user_id)
1305
        m = accept_membership(application_id, user_id, request.user)
1306
        m = accept_membership(chain_id, user_id, request.user)
1306 1307
    except (IOError, PermissionDenied), e:
1307 1308
        messages.error(request, e)
1308 1309
    except BaseException, e:
......
1318 1319
            transaction.rollback()
1319 1320
        else:
1320 1321
            transaction.commit()
1321
    return redirect(reverse('project_detail', args=(application_id,)))
1322
    return redirect(reverse('project_detail', args=(chain_id,)))
1322 1323

  
1323 1324
@require_http_methods(["POST"])
1324 1325
@signed_terms_required
1325 1326
@login_required
1326 1327
@transaction.commit_manually
1327
def project_remove_member(request, application_id, user_id):
1328
def project_remove_member(request, chain_id, user_id):
1328 1329
    rollback = False
1329 1330
    try:
1330
        application_id = int(application_id)
1331
        chain_id = int(chain_id)
1331 1332
        user_id = int(user_id)
1332
        m = remove_membership(application_id, user_id, request.user)
1333
        m = remove_membership(chain_id, user_id, request.user)
1333 1334
    except (IOError, PermissionDenied), e:
1334 1335
        messages.error(request, e)
1335 1336
    except BaseException, e:
......
1345 1346
            transaction.rollback()
1346 1347
        else:
1347 1348
            transaction.commit()
1348
    return redirect(reverse('project_detail', args=(application_id,)))
1349
    return redirect(reverse('project_detail', args=(chain_id,)))
1349 1350

  
1350 1351
@require_http_methods(["POST"])
1351 1352
@signed_terms_required
1352 1353
@login_required
1353 1354
@transaction.commit_manually
1354
def project_reject_member(request, application_id, user_id):
1355
def project_reject_member(request, chain_id, user_id):
1355 1356
    rollback = False
1356 1357
    try:
1357
        application_id = int(application_id)
1358
        chain_id = int(chain_id)
1358 1359
        user_id = int(user_id)
1359
        m = reject_membership(application_id, user_id, request.user)
1360
        m = reject_membership(chain_id, user_id, request.user)
1360 1361
    except (IOError, PermissionDenied), e:
1361 1362
        messages.error(request, e)
1362 1363
    except BaseException, e:
......
1372 1373
            transaction.rollback()
1373 1374
        else:
1374 1375
            transaction.commit()
1375
    return redirect(reverse('project_detail', args=(application_id,)))
1376
    return redirect(reverse('project_detail', args=(chain_id,)))
1376 1377

  
1377 1378
def landing(request):
1378 1379
    return render_response(
1379 1380
        'im/landing.html',
1380
        context_instance=get_context(request))
1381
        context_instance=get_context(request))

Also available in: Unified diff