fix problems with OPTIONS for char_prompts

This commit is contained in:
AlanCoding 2016-10-25 16:34:36 -04:00
parent 836c13f857
commit 04013e4d9f
3 changed files with 32 additions and 15 deletions

View File

@ -2242,10 +2242,10 @@ class WorkflowJobListSerializer(WorkflowJobSerializer, UnifiedJobListSerializer)
pass
class WorkflowNodeBaseSerializer(BaseSerializer):
job_type = serializers.SerializerMethodField()
job_tags = serializers.SerializerMethodField()
limit = serializers.SerializerMethodField()
skip_tags = serializers.SerializerMethodField()
job_type = serializers.CharField(allow_blank=True, required=False, default=None)
job_tags = serializers.CharField(allow_blank=True, required=False, default=None)
limit = serializers.CharField(allow_blank=True, required=False, default=None)
skip_tags = serializers.CharField(allow_blank=True, required=False, default=None)
success_nodes = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
failure_nodes = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
always_nodes = serializers.PrimaryKeyRelatedField(many=True, read_only=True)
@ -2265,17 +2265,13 @@ class WorkflowNodeBaseSerializer(BaseSerializer):
res['unified_job_template'] = obj.unified_job_template.get_absolute_url()
return res
def get_job_type(self, obj):
return obj.char_prompts.get('job_type', None)
def get_job_tags(self, obj):
return obj.char_prompts.get('job_tags', None)
def get_skip_tags(self, obj):
return obj.char_prompts.get('skip_tags', None)
def get_limit(self, obj):
return obj.char_prompts.get('limit', None)
def validate(self, attrs):
# char_prompts go through different validation, so remove them here
print ' attrs: ' + str(attrs)
for fd in ['job_type', 'job_tags', 'skip_tags', 'limit']:
if fd in attrs:
attrs.pop(fd)
return super(WorkflowNodeBaseSerializer, self).validate(attrs)
class WorkflowJobTemplateNodeSerializer(WorkflowNodeBaseSerializer):

View File

@ -2751,6 +2751,11 @@ class WorkflowJobTemplateWorkflowNodesList(SubListCreateAPIView):
relationship = 'workflow_job_template_nodes'
parent_key = 'workflow_job_template'
def update_raw_data(self, data):
for fd in ['job_type', 'job_tags', 'skip_tags', 'limit', 'skip_tags']:
data[fd] = None
return super(WorkflowJobTemplateWorkflowNodesList, self).update_raw_data(data)
# TODO:
class WorkflowJobTemplateJobsList(SubListAPIView):

View File

@ -97,6 +97,22 @@ class WorkflowNodeBase(CreatedModifiedModel):
data[fd] = self.char_prompts[fd]
return data
@property
def job_type(self):
return self.char_prompts.get('job_type', None)
@property
def job_tags(self):
return self.char_prompts.get('job_tags', None)
@property
def skip_tags(self):
return self.char_prompts.get('skip_tags', None)
@property
def limit(self):
return self.char_prompts.get('limit', None)
def get_prompts_warnings(self):
ujt_obj = self.unified_job_template
if ujt_obj is None: