Merge pull request #3687 from AlanCoding/wf_fixes

Workflow serializer fixes
This commit is contained in:
Alan Rominger 2016-10-11 08:39:01 -04:00 committed by GitHub
commit 7bd19b8e98
2 changed files with 8 additions and 2 deletions

View File

@ -2232,11 +2232,14 @@ class WorkflowNodeBaseSerializer(BaseSerializer):
job_tags = serializers.SerializerMethodField()
limit = serializers.SerializerMethodField()
skip_tags = serializers.SerializerMethodField()
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)
class Meta:
fields = ('id', 'url', 'related', 'unified_job_template',
fields = ('*', '-name', '-description', 'id', 'url', 'related',
'unified_job_template', 'success_nodes', 'failure_nodes', 'always_nodes',
'inventory', 'credential', 'job_type', 'job_tags', 'skip_tags', 'limit', 'skip_tags')
read_only_fields = ('success_nodes', 'failure_nodes', 'always_nodes')
def get_related(self, obj):
res = super(WorkflowNodeBaseSerializer, self).get_related(obj)

View File

@ -1277,6 +1277,7 @@ class WorkflowJobTemplateNodeAccess(BaseAccess):
qs = self.model.objects.filter(
workflow_job_template__in=WorkflowJobTemplate.accessible_objects(
self.user, 'read_role'))
qs = qs.prefetch_related('success_nodes', 'failure_nodes', 'always_nodes')
return qs
def can_use_prompted_resources(self, data):
@ -1371,6 +1372,8 @@ class WorkflowJobNodeAccess(BaseAccess):
qs = self.model.objects.filter(
workflow_job__workflow_job_template__in=WorkflowJobTemplate.accessible_objects(
self.user, 'read_role'))
qs = qs.select_related('unified_job_template', 'job')
qs = qs.prefetch_related('success_nodes', 'failure_nodes', 'always_nodes')
return qs
def can_add(self, data):