Revision ec2e67f4

b/snf-astakos-app/astakos/im/forms.py
64 64
    RECAPTCHA_ENABLED, DEFAULT_CONTACT_EMAIL, LOGGING_LEVEL,
65 65
    PASSWORD_RESET_EMAIL_SUBJECT, NEWPASSWD_INVALIDATE_TOKEN,
66 66
    MODERATION_ENABLED, PROJECT_MEMBER_JOIN_POLICIES,
67
    PROJECT_MEMBER_LEAVE_POLICIES, EMAILCHANGE_ENABLED)
67
    PROJECT_MEMBER_LEAVE_POLICIES, EMAILCHANGE_ENABLED,
68
    RESOURCES_PRESENTATION_DATA)
68 69
from astakos.im.widgets import DummyWidget, RecaptchaWidget
69 70
from astakos.im.functions import (
70 71
    send_change_email, submit_application, accept_membership_checks)
......
858 859
                        d.update(dict(service=s, resource=r, uplimit=None))
859 860
                    append(d)
860 861

  
862
        ordered_keys = RESOURCES_PRESENTATION_DATA['resources_order']
863
        policies = sorted(policies, key=lambda r:ordered_keys.index(r['str_repr']))
861 864
        return policies
862 865

  
863 866
    def save(self, commit=True):
b/snf-astakos-app/astakos/im/settings.py
299 299
                'verbose_name':'private network'
300 300
            }
301 301

  
302
        }
302
        },
303

  
304
        'groups_order': ['storage', 'compute', 'network'],
305
        'resources_order': ['pithos+.diskspace', 'cyclades.disk',
306
                            'cyclades.cpu', 'cyclades.ram', 'cyclades.vm',
307
                            'cyclades.network.private']
303 308

  
304 309
    })
305 310

  
b/snf-astakos-app/astakos/im/views.py
1045 1045
    )
1046 1046
    else:
1047 1047
        resource_catalog = [
1048
            (g, filter(lambda r: r.get('group', '') == g, result.data)) \
1048
            [g, filter(lambda r: r.get('group', '') == g, result.data)] \
1049 1049
                for g in resource_groups]
1050

  
1051
    # order resources
1052
    groups_order = RESOURCES_PRESENTATION_DATA.get('groups_order')
1053
    resources_order = RESOURCES_PRESENTATION_DATA.get('resources_order')
1054
    resource_catalog = sorted(resource_catalog, lambda g,rs:groups_order.index(g[0]))
1055
    for index, group in enumerate(resource_catalog):
1056
        resource_catalog[index][1] = sorted(resource_catalog[index][1],
1057
                                            key=lambda r: resources_order.index(r['str_repr']))
1058

  
1059

  
1050 1060
    extra_context = {
1051 1061
        'resource_catalog':resource_catalog,
1052 1062
        'resource_groups':resource_groups,

Also available in: Unified diff