Revision 37d59b27 snf-astakos-app/astakos/im/forms.py
b/snf-astakos-app/astakos/im/forms.py | ||
---|---|---|
843 | 843 |
|
844 | 844 |
def clean(self): |
845 | 845 |
userid = self.data.get('user', None) |
846 |
policies = self.resource_policies |
|
846 | 847 |
self.user = None |
847 | 848 |
if userid: |
848 | 849 |
try: |
... | ... | |
865 | 866 |
if name.endswith('_uplimit'): |
866 | 867 |
subs = name.split('_uplimit') |
867 | 868 |
prefix, suffix = subs |
868 |
resource = Resource.objects.get(name=prefix) |
|
869 |
|
|
869 |
try: |
|
870 |
resource = Resource.objects.get(name=prefix) |
|
871 |
except Resource.DoesNotExist: |
|
872 |
raise forms.ValidationError("Resource %s does not exist" % |
|
873 |
resource.name) |
|
870 | 874 |
# keep only resource limits for selected resource groups |
871 | 875 |
if self.data.get( |
872 | 876 |
'is_selected_%s' % resource.group, "0" |
873 | 877 |
) == "1": |
878 |
if not resource.allow_in_projects: |
|
879 |
raise forms.ValidationError("Invalid resource %s" % |
|
880 |
resource.name) |
|
874 | 881 |
d = model_to_dict(resource) |
875 | 882 |
if uplimit: |
876 | 883 |
d.update(dict(resource=prefix, uplimit=uplimit)) |
... | ... | |
879 | 886 |
append(d) |
880 | 887 |
|
881 | 888 |
ordered_keys = presentation.RESOURCES['resources_order'] |
882 |
policies = sorted(policies, key=lambda r:ordered_keys.index(r['str_repr'])) |
|
889 |
def resource_order(r): |
|
890 |
if r['str_repr'] in ordered_keys: |
|
891 |
return ordered_keys.index(r['str_repr']) |
|
892 |
else: |
|
893 |
return -1 |
|
894 |
|
|
895 |
policies = sorted(policies, key=resource_order) |
|
883 | 896 |
return policies |
884 | 897 |
|
885 | 898 |
def save(self, commit=True): |
Also available in: Unified diff