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