Revision eee9ec4d
b/snf-astakos-app/astakos/im/forms.py | ||
---|---|---|
895 | 895 |
policies = sorted(policies, key=resource_order) |
896 | 896 |
return policies |
897 | 897 |
|
898 |
def cleaned_resource_policies(self): |
|
899 |
return [(d['name'], d['uplimit']) for d in self.resource_policies] |
|
900 |
|
|
898 | 901 |
def save(self, commit=True): |
899 | 902 |
data = dict(self.cleaned_data) |
900 | 903 |
data['precursor_application'] = self.instance.id |
901 | 904 |
is_new = self.instance.id is None |
902 | 905 |
data['owner'] = self.user if is_new else self.instance.owner |
903 |
data['resource_policies'] = self.resource_policies
|
|
906 |
data['resource_policies'] = self.cleaned_resource_policies()
|
|
904 | 907 |
submit_application(data, request_user=self.user) |
905 | 908 |
|
906 | 909 |
class ProjectSortForm(forms.Form): |
b/snf-astakos-app/astakos/im/functions.py | ||
---|---|---|
746 | 746 |
app.save() |
747 | 747 |
|
748 | 748 |
application.save() |
749 |
application.resource_policies = resource_policies
|
|
749 |
application.set_resource_policies(resource_policies)
|
|
750 | 750 |
logger.info("User %s submitted %s." % |
751 | 751 |
(request_user.log_display, application.log_display)) |
752 | 752 |
application_submit_notify(application) |
b/snf-astakos-app/astakos/im/models.py | ||
---|---|---|
1479 | 1479 |
except Project.DoesNotExist: |
1480 | 1480 |
return self.state_display() |
1481 | 1481 |
|
1482 |
def add_resource_policy(self, service, resource, uplimit):
|
|
1482 |
def add_resource_policy(self, resource, uplimit): |
|
1483 | 1483 |
"""Raises ObjectDoesNotExist, IntegrityError""" |
1484 | 1484 |
q = self.projectresourcegrant_set |
1485 | 1485 |
resource = Resource.objects.get(name=resource) |
... | ... | |
1497 | 1497 |
def resource_policies(self): |
1498 | 1498 |
return [str(rp) for rp in self.projectresourcegrant_set.all()] |
1499 | 1499 |
|
1500 |
@resource_policies.setter |
|
1501 |
def resource_policies(self, policies): |
|
1502 |
for p in policies: |
|
1503 |
service = p.get('service', None) |
|
1504 |
resource = p.get('resource', None) |
|
1505 |
uplimit = p.get('uplimit', 0) |
|
1506 |
self.add_resource_policy(service, resource, uplimit) |
|
1500 |
def set_resource_policies(self, policies): |
|
1501 |
for resource, uplimit in policies: |
|
1502 |
self.add_resource_policy(resource, uplimit) |
|
1507 | 1503 |
|
1508 | 1504 |
def pending_modifications_incl_me(self): |
1509 | 1505 |
q = self.chained_applications() |
Also available in: Unified diff