diff --git a/awx/main/models/workflow.py b/awx/main/models/workflow.py index 0cf61265d8..88df81faf0 100644 --- a/awx/main/models/workflow.py +++ b/awx/main/models/workflow.py @@ -59,6 +59,8 @@ __all__ = [ logger = logging.getLogger('awx.main.models.workflow') +WORKFLOW_BASE_URL = "{}/jobs/workflow/{}" + class WorkflowNodeBase(CreatedModifiedModel, LaunchTimeConfig): class Meta: @@ -690,7 +692,7 @@ class WorkflowJob(UnifiedJob, WorkflowJobOptions, SurveyJobMixin, JobNotificatio return reverse('api:workflow_job_detail', kwargs={'pk': self.pk}, request=request) def get_ui_url(self): - return urljoin(settings.TOWER_URL_BASE, "{}/jobs/workflow/{}".format(settings.OPTIONAL_UI_URL_PREFIX, self.pk)) + return urljoin(settings.TOWER_URL_BASE, WORKFLOW_BASE_URL.format(settings.OPTIONAL_UI_URL_PREFIX, self.pk)) def notification_data(self): result = super(WorkflowJob, self).notification_data() @@ -873,7 +875,7 @@ class WorkflowApproval(UnifiedJob, JobNotificationMixin): return None def get_ui_url(self): - return urljoin(settings.TOWER_URL_BASE, '/#/jobs/workflow/{}'.format(self.workflow_job.id)) + return urljoin(settings.TOWER_URL_BASE, WORKFLOW_BASE_URL.format(settings.OPTIONAL_UI_URL_PREFIX, self.workflow_job.id)) def _get_parent_field_name(self): return 'workflow_approval_template' @@ -986,7 +988,7 @@ class WorkflowApproval(UnifiedJob, JobNotificationMixin): return (msg, body) def context(self, approval_status): - workflow_url = urljoin(settings.TOWER_URL_BASE, '/#/jobs/workflow/{}'.format(self.workflow_job.id)) + workflow_url = urljoin(settings.TOWER_URL_BASE, WORKFLOW_BASE_URL.format(settings.OPTIONAL_UI_URL_PREFIX, self.workflow_job.id)) return { 'approval_status': approval_status, 'approval_node_name': self.workflow_approval_template.name,