enforce 1 edge between 2 nodes constraint

This commit is contained in:
chris meyers
2018-11-28 16:57:50 -05:00
parent 7f178ef28b
commit 09dff99340
2 changed files with 42 additions and 0 deletions

View File

@@ -2957,6 +2957,12 @@ class WorkflowJobTemplateNodeChildrenBaseList(WorkflowsEnforcementMixin, Enforce
if parent.id == sub.id:
return {"Error": _("Cycle detected.")}
if WorkflowJobTemplateNode.objects.filter(Q(pk=parent.id) &
Q(success_nodes__in=[sub.id]) |
Q(failure_nodes__in=[sub.id]) |
Q(always_nodes__in=[sub.id])).exists():
return {"Error": _("Relationship not allowed.")}
parent_node_type_relationship = getattr(parent, self.relationship)
parent_node_type_relationship.add(sub)