Revision 8327782d snf-astakos-app/astakos/im/views.py

b/snf-astakos-app/astakos/im/views.py
54 54
from django.utils.http import urlencode
55 55
from django.utils.translation import ugettext as _
56 56
from django.views.generic.create_update import (
57
    create_object, delete_object, get_model_and_form_class
57
    create_object, update_object, delete_object, get_model_and_form_class
58 58
)
59 59
from django.views.generic.list_detail import object_list, object_detail
60 60
from django.core.xheaders import populate_xheaders
......
80 80
    MembersSortForm, AstakosGroupSortForm,
81 81
    TimelineForm, PickResourceForm,
82 82
    AstakosGroupCreationSummaryForm,
83
    ProjectApplicationForm
83
    ProjectApplicationForm, ProjectSortForm
84 84
)
85 85
from astakos.im.functions import (
86 86
    send_feedback, SendMailError,
......
783 783
            yield g, self.get_group_resources(g)
784 784

  
785 785
    def get_quota(self, group_quotas):
786
        for r, v in group_quotas.iteritems():
786
        for r, v in group_quotas:
787 787
            rname = str(r)
788 788
            quota = self.data['resources'].get(rname)
789 789
            quota['value'] = v
......
1481 1481
    q |= ProjectApplication.objects.filter(
1482 1482
        project__in=request.user.projectmembership_set.values_list('project', flat=True)
1483 1483
    )
1484
    sorting = 'definition__name'
1485
    sort_form = ProjectSortForm(request.GET)
1486
    if sort_form.is_valid():
1487
        sorting = sort_form.cleaned_data.get('sorting')
1488
    q = q.order_by(sorting)
1489
    
1484 1490
    return object_list(
1485 1491
        request,
1486 1492
        q,
......
1489 1495
        template_name='im/projects/project_list.html',
1490 1496
        extra_context={
1491 1497
            'is_search':False,
1492
            'sorting':request.GET.get('sorting'),
1498
            'sorting':request.GET.get('sorting')
1493 1499
        }
1494 1500
    )
1495 1501

  
1496

  
1497 1502
@require_http_methods(["GET", "POST"])
1498 1503
@signed_terms_required
1499 1504
@login_required
1500
def project_application_detail(request, serial):
1501
    return object_detail(
1505
def project_update(request, serial):
1506
    result = callpoint.list_resources()
1507
    resource_catalog = ResourcePresentation(RESOURCES_PRESENTATION_DATA)
1508
    resource_catalog.update_from_result(result)
1509

  
1510
    if not result.is_success:
1511
        messages.error(
1512
            request,
1513
            'Unable to retrieve system resources: %s' % result.reason
1514
    )
1515
    extra_context = {'resource_catalog':resource_catalog}
1516
    return update_object(
1502 1517
        request,
1503
        queryset=ProjectApplication.objects.select_related(), 
1504 1518
        slug=serial,
1505
        slug_field='serial',
1506
        template_name='im/projects/projectapplication_detail.html'
1507
    )
1519
        slug_field='projectapplication__serial',
1520
        template_name='im/projects/projectapplication_form.html',
1521
        extra_context=extra_context, post_save_redirect='/im/project/list/',
1522
        form_class=ProjectApplicationForm)
1523
   
1524
# @require_http_methods(["GET", "POST"])
1525
# @signed_terms_required
1526
# @login_required
1527
# def project_application_detail(request, serial):
1528
#     return object_detail(
1529
#         request,
1530
#         queryset=ProjectApplication.objects.select_related(),
1531
#         slug=serial,
1532
#         slug_field='serial',
1533
#         template_name='im/projects/projectapplication_detail.html'
1534
#     )
1508 1535

  
1509 1536
@require_http_methods(["GET", "POST"])
1510 1537
@signed_terms_required
1511 1538
@login_required
1512 1539
def project_detail(request, serial):
1540
    result = callpoint.list_resources()
1541
    resource_catalog = ResourcePresentation(RESOURCES_PRESENTATION_DATA)
1542
    resource_catalog.update_from_result(result)
1513 1543
    return object_detail(
1514 1544
        request,
1515 1545
        queryset=ProjectApplication.objects.select_related(),
......
1517 1547
        slug_field='serial',
1518 1548
        template_name='im/projects/project_detail.html',
1519 1549
        extra_context={
1520
            'sorting':request.GET.get('sorting', request.POST.get('sorting')),
1550
            'resource_catalog':resource_catalog,
1551
            'sorting':request.GET.get('sorting', request.POST.get('sorting'))
1521 1552
        }
1522 1553
    )
1523 1554

  

Also available in: Unified diff