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