You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2018/01/11 16:18:51 UTC
[airavata-django-portal] 04/04: AIRAVATA-2598 Allow optional
CharFields to be null or blank
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit d0b50f31d5e1291c094fcc4ac9cf50bb5c86f2fb
Author: Marcus Christie <ma...@iu.edu>
AuthorDate: Thu Jan 11 11:17:49 2018 -0500
AIRAVATA-2598 Allow optional CharFields to be null or blank
---
.../models/ComputationalResourceSchedulingModel.js | 30 ++++------------------
.../django_airavata_api/js/models/Experiment.js | 6 +----
.../js/models/InputDataObjectType.js | 20 ++-------------
.../js/models/UserConfigurationData.js | 18 +++----------
django_airavata/apps/api/thrift_utils.py | 18 +++----------
5 files changed, 14 insertions(+), 78 deletions(-)
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/ComputationalResourceSchedulingModel.js b/django_airavata/apps/api/static/django_airavata_api/js/models/ComputationalResourceSchedulingModel.js
index 03c4782..f9cc61f 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/ComputationalResourceSchedulingModel.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/ComputationalResourceSchedulingModel.js
@@ -8,31 +8,11 @@ const FIELDS = [
'queueName',
'wallTimeLimit',
'totalPhysicalMemory',
- {
- name: 'chessisNumber',
- type: 'string',
- default: '',
- },
- {
- name: 'staticWorkingDir',
- type: 'string',
- default: '',
- },
- {
- name: 'overrideLoginUserName',
- type: 'string',
- default: '',
- },
- {
- name: 'overrideScratchLocation',
- type: 'string',
- default: '',
- },
- {
- name: 'overrideAllocationProjectNumber',
- type: 'string',
- default: '',
- },
+ 'chessisNumber',
+ 'staticWorkingDir',
+ 'overrideLoginUserName',
+ 'overrideScratchLocation',
+ 'overrideAllocationProjectNumber',
];
export default class ComputationalResourceSchedulingModel extends BaseModel {
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
index d635a5f..6066c3a 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/Experiment.js
@@ -22,11 +22,7 @@ const FIELDS = [
name: 'creationTime',
type: 'date'
},
- {
- name: 'description',
- type: 'string',
- default: '',
- },
+ 'description',
'executionId',
{
name: 'enableEmailNotification',
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js b/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
index 496de53..5969555 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/InputDataObjectType.js
@@ -8,34 +8,18 @@ const FIELDS = [
'applicationArgument',
'standardInput',
'userFriendlyDescription',
- {
- name: 'metaData',
- type: 'string',
- default: '',
- },
+ 'metaData',
'inputOrder',
'isRequired',
'requiredToAddedToCommandLine',
'dataStaged',
- {
- name: 'storageResourceId',
- type: 'string',
- default: '',
- },
+ 'storageResourceId',
'isReadOnly',
];
export default class InputDataObjectType extends BaseModel {
constructor(data = {}) {
super(FIELDS, data);
- // TODO: move into BaseModel
- // Convert null strings into empty strings
- if ('metaData' in this && this.metaData === null) {
- this.metaData = '';
- }
- if ('storageResourceId' in this && this.storageResourceId === null) {
- this.storageResourceId = '';
- }
}
validate() {
diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/UserConfigurationData.js b/django_airavata/apps/api/static/django_airavata_api/js/models/UserConfigurationData.js
index f70ffdf..244d3fb 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/UserConfigurationData.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/UserConfigurationData.js
@@ -27,26 +27,14 @@ const FIELDS = [
type: 'boolean',
default: false,
},
- {
- name: 'userDN',
- type: 'string',
- default: '',
- },
+ 'userDN',
{
name: 'generateCert',
type: 'boolean',
default: false,
},
- {
- name: 'storageId',
- type: 'string',
- default: '',
- },
- {
- name: 'experimentDataDir',
- type: 'string',
- default: '',
- },
+ 'storageId',
+ 'experimentDataDir',
{
name: 'useUserCRPref',
type: 'boolean',
diff --git a/django_airavata/apps/api/thrift_utils.py b/django_airavata/apps/api/thrift_utils.py
index 363a016..30ab400 100644
--- a/django_airavata/apps/api/thrift_utils.py
+++ b/django_airavata/apps/api/thrift_utils.py
@@ -67,20 +67,8 @@ def create_serializer_class(thrift_data_type):
params[field_name] = serializer.create(params[field_name])
return params
- def process_empty_char_fields(self, validated_data):
- """Convert empty CharFields to None."""
- fields = self.fields
- params = copy.deepcopy(validated_data)
- for field_name, serializer in fields.items():
- if isinstance(serializer, CharField) \
- and params.get(field_name, None) is not None \
- and params[field_name].strip() == '':
- params[field_name] = None
- return params
-
def create(self, validated_data):
params = self.process_nested_fields(validated_data)
- params = self.process_empty_char_fields(params)
return thrift_data_type(**params)
def update(self, instance, validated_data):
@@ -103,10 +91,10 @@ def process_field(field, required=False, read_only=False, allow_null=False):
# mapping
field_class = mapping[field[1]]
kwargs = dict(required=required, read_only=read_only)
- # allow_null isn't allowed for BooleanField and we'll use allow_blank
- # for CharField
- if field_class not in (BooleanField, CharField):
+ # allow_null isn't allowed for BooleanField
+ if field_class not in (BooleanField,):
kwargs['allow_null'] = allow_null
+ # allow_null CharField are also allowed to be blank
if field_class == CharField:
kwargs['allow_blank'] = allow_null
return mapping[field[1]](**kwargs)
--
To stop receiving notification emails like this one, please contact
"commits@airavata.apache.org" <co...@airavata.apache.org>.