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

b/snf-astakos-app/astakos/im/views.py
97 97
)
98 98
#from astakos.im.tasks import request_billing
99 99
from astakos.im.api.callpoint import AstakosCallpoint
100
# from .generic_views import create_object
100
from astakos.im.notifications import NotificationError
101 101

  
102 102
import astakos.im.messages as astakos_messages
103 103
from astakos.im import settings
......
1452 1452

  
1453 1453
def how_it_works(request):
1454 1454
    return render_response(
1455
        template='im/how_it_works.html',
1456
        context_instance=get_context(request),)
1455
        'im/how_it_works.html',
1456
        context_instance=get_context(request))
1457 1457

  
1458 1458
@require_http_methods(["GET", "POST"])
1459 1459
@signed_terms_required
1460 1460
@login_required
1461
# @transaction.commit_manually
1461 1462
def project_add(request):
1462 1463
    result = callpoint.list_resources()
1463 1464
    resource_catalog = ResourcePresentation(RESOURCES_PRESENTATION_DATA)
......
1469 1470
            'Unable to retrieve system resources: %s' % result.reason
1470 1471
    )
1471 1472
    extra_context = {'resource_catalog':resource_catalog}
1472
    return create_object(request, template_name='im/projects/projectapplication_form.html',
1473
        extra_context=extra_context, post_save_redirect='/im/project/list/',
1474
        form_class=ProjectApplicationForm)
1473

  
1474
    try:
1475
        r = create_object(request, template_name='im/projects/projectapplication_form.html',
1476
            extra_context=extra_context, post_save_redirect='/im/project/list/',
1477
            form_class=ProjectApplicationForm)
1478
#         transaction.commit()
1479
        return r
1480
    except NotificationError, e:
1481
        messages.error(request, e.message)
1482
#         transaction.rollback()
1483
        return render_response(
1484
            'im/projects/projectapplication_form.html',
1485
            sorting = 'definition__name',
1486
            form = ProjectApplicationForm(),
1487
            context_instance=get_context(request, extra_context)
1488
        )
1489

  
1475 1490

  
1476 1491
@require_http_methods(["GET"])
1477 1492
@signed_terms_required
......
1481 1496
    q |= ProjectApplication.objects.filter(
1482 1497
        project__in=request.user.projectmembership_set.values_list('project', flat=True)
1483 1498
    )
1499
    q = q.select_related()
1484 1500
    sorting = 'definition__name'
1485 1501
    sort_form = ProjectSortForm(request.GET)
1486 1502
    if sort_form.is_valid():
......
1502 1518
@require_http_methods(["GET", "POST"])
1503 1519
@signed_terms_required
1504 1520
@login_required
1505
def project_update(request, serial):
1521
def project_update(request, id):
1506 1522
    result = callpoint.list_resources()
1507 1523
    resource_catalog = ResourcePresentation(RESOURCES_PRESENTATION_DATA)
1508 1524
    resource_catalog.update_from_result(result)
......
1515 1531
    extra_context = {'resource_catalog':resource_catalog}
1516 1532
    return update_object(
1517 1533
        request,
1518
        slug=serial,
1519
        slug_field='projectapplication__serial',
1534
        slug=id,
1535
        slug_field='projectapplication__id',
1520 1536
        template_name='im/projects/projectapplication_form.html',
1521 1537
        extra_context=extra_context, post_save_redirect='/im/project/list/',
1522 1538
        form_class=ProjectApplicationForm)
......
1524 1540
# @require_http_methods(["GET", "POST"])
1525 1541
# @signed_terms_required
1526 1542
# @login_required
1527
# def project_application_detail(request, serial):
1543
# def project_application_detail(request, id):
1528 1544
#     return object_detail(
1529 1545
#         request,
1530 1546
#         queryset=ProjectApplication.objects.select_related(),
1531
#         slug=serial,
1532
#         slug_field='serial',
1547
#         object_id=id,
1533 1548
#         template_name='im/projects/projectapplication_detail.html'
1534 1549
#     )
1535 1550

  
1536 1551
@require_http_methods(["GET", "POST"])
1537 1552
@signed_terms_required
1538 1553
@login_required
1539
def project_detail(request, serial):
1554
def project_detail(request, id):
1540 1555
    result = callpoint.list_resources()
1541 1556
    resource_catalog = ResourcePresentation(RESOURCES_PRESENTATION_DATA)
1542 1557
    resource_catalog.update_from_result(result)
1558

  
1559
    if request.method == 'POST':
1560
        addmembers_form = AddGroupMembersForm(request.POST)
1561
        if addmembers_form.is_valid():
1562
            try:
1563
                obj = Project.objects.get(id=id)
1564
                map(obj.approve_member, addmembers_form.valid_users)
1565
            except AssertionError:
1566
                msg = _(astakos_messages.GROUP_MAX_PARTICIPANT_NUMBER_REACHED)
1567
                messages.error(request, msg)
1568
            except AssertionError:
1569
                msg = _(astakos_messages.GROUP_MAX_PARTICIPANT_NUMBER_REACHED)
1570
                messages.error(request, msg)
1571
            addmembers_form = AddGroupMembersForm()
1572

  
1543 1573
    return object_detail(
1544 1574
        request,
1545 1575
        queryset=ProjectApplication.objects.select_related(),
1546
        slug=serial,
1547
        slug_field='serial',
1576
        object_id=id,
1548 1577
        template_name='im/projects/project_detail.html',
1549 1578
        extra_context={
1550 1579
            'resource_catalog':resource_catalog,
1551
            'sorting':request.GET.get('sorting', request.POST.get('sorting'))
1580
            'sorting':request.GET.get('sorting', request.POST.get('sorting')),
1581
            'addmembers_form':AddGroupMembersForm()
1552 1582
        }
1553 1583
    )
1554 1584

  
......
1567 1597
@require_http_methods(["GET", "POST"])
1568 1598
@signed_terms_required
1569 1599
@login_required
1570
def project_join(request, serial):
1600
def project_join(request, id):
1571 1601
    pass
1572 1602

  
1573 1603
@require_http_methods(["GET", "POST"])
1574 1604
@signed_terms_required
1575 1605
@login_required
1576
def project_leave(request, serial):
1606
def project_leave(request, id):
1577 1607
    pass
1578 1608

  
1579 1609
@require_http_methods(["POST"])
1580 1610
@signed_terms_required
1581 1611
@login_required
1582
def project_approve_member(request, serial, user_id):
1612
def project_approve_member(request, id, user_id):
1583 1613
    pass
1584 1614

  
1585 1615
@require_http_methods(["POST"])
1586 1616
@signed_terms_required
1587 1617
@login_required
1588
def project_remove_member(request, serial, user_id):
1618
def project_remove_member(request, id, user_id):
1589 1619
    pass
1590 1620
    

Also available in: Unified diff