Revision 58e80501 snf-astakos-app/astakos/im/forms.py

b/snf-astakos-app/astakos/im/forms.py
767 767

  
768 768
    def clean(self):
769 769
        userid = self.data.get('user', None)
770
        self.resource_policies
770
        policies = self.resource_policies
771 771
        self.user = None
772 772
        if userid:
773 773
            try:
......
776 776
                pass
777 777
        if not self.user:
778 778
            raise forms.ValidationError(_(astakos_messages.NO_APPLICANT))
779
        super(ProjectApplicationForm, self).clean()
780
        return self.cleaned_data
779
        cleaned_data = super(ProjectApplicationForm, self).clean()
780
        return cleaned_data
781 781

  
782 782
    @property
783 783
    def resource_policies(self):
......
908 908

  
909 909
        return policies
910 910

  
911
    def fill_api_data(self):
911
    def get_api_data(self):
912 912
        data = dict(self.cleaned_data)
913 913
        is_new = self.instance.id is None
914 914
        if isinstance(self.instance, Project):
......
916 916
        else:
917 917
            data['project_id'] = self.instance.chain.id if not is_new else None
918 918

  
919
        data['owner'] = self.user.uuid if is_new else self.instance.owner.uuid
920
        data['resources'] = self.cleaned_resource_policies()
921
        data['request_user'] = self.user
919
        user_uuid = self.user.uuid if is_new else self.instance.owner.uuid
920
        data['owner'] = AstakosUser.objects.get(uuid=user_uuid)
921

  
922
        exclude_keys = ['owner', 'comments', 'project_id', 'start_date']
923

  
924
        # is_valid changes instance attributes
925
        instance = self.instance
926
        if not is_new:
927
            instance = Project.objects.get(pk=self.instance.pk)
928

  
929
        for key in [dkey for dkey in data.keys() if not dkey in exclude_keys]:
930
            if not is_new and \
931
                   (getattr(instance, key) == data.get(key)):
932
                del data[key]
933

  
934
        resources = self.cleaned_resource_policies()
935
        if resources:
936
            data['resources'] = resources
937

  
922 938
        if data.get('start_date', None):
923 939
            data['start_date'] = date_util.isoformat(data.get('start_date'))
924
        data['end_date'] = date_util.isoformat(data.get('end_date'))
925
        data['max_members'] = data.get('limit_on_members_number')
940
        else:
941
            del data['start_date']
942

  
943
        if data.get('end_date', None):
944
            data['end_date'] = date_util.isoformat(data.get('end_date'))
945

  
946
        if 'limit_on_members_number' in data:
947
            data['max_members'] = data.get('limit_on_members_number')
948

  
949
        data['request_user'] = self.user
950
        if 'owner' in data:
951
            data['owner'] = data['owner'].uuid
952

  
926 953
        return data
927 954

  
928 955
    def save(self, commit=True, **kwargs):
929 956
        from astakos.api import projects as api
930
        data = self.fill_api_data()
957
        data = self.get_api_data()
931 958
        return api.submit_new_project(data, self.user)
932 959

  
933 960

  
......
941 968

  
942 969
    def save(self, commit=True, **kwargs):
943 970
        from astakos.api import projects as api
944
        data = self.fill_api_data()
971
        data = self.get_api_data()
945 972
        return api.submit_modification(data, self.user, self.instance.uuid)
946 973

  
947 974

  

Also available in: Unified diff