From 81f6ffb079aff96f9faa13e2934e4e087e75a52d Mon Sep 17 00:00:00 2001 From: Vermaas <vermaas@astron.nl> Date: Thu, 27 Jul 2023 09:03:12 +0200 Subject: [PATCH] show join/joined tasks as separate workflow icons --- atdb/taskdatabase/models.py | 23 +++++++++------- .../templates/taskdatabase/tasks.html | 7 +++-- .../taskdatabase/tasks/details_card.html | 26 ++++++++++++++++--- 3 files changed, 38 insertions(+), 18 deletions(-) diff --git a/atdb/taskdatabase/models.py b/atdb/taskdatabase/models.py index 54592ab5..108cdb5d 100644 --- a/atdb/taskdatabase/models.py +++ b/atdb/taskdatabase/models.py @@ -321,18 +321,21 @@ class Task(models.Model): @property def task_type_join(self): - # find out if this is a join/joined type of task, or just a regular task - if self.joined_output_task: - # this tasks has a designated output task, so it is an input task (join) - return 'join' - - joined_input_tasks = self.joined_input_tasks.all() - if joined_input_tasks.count()>0: - # this task has input tasks, so it is an output task (joined) - return 'joined' + try: + # find out if this is a join/joined type of task, or just a regular task + if self.joined_output_task: + # this tasks has a designated output task, so it is an input task (join) + return 'join' - return 'regular' + joined_input_tasks = self.joined_input_tasks.all() + if joined_input_tasks.count()>0: + # this task has input tasks, so it is an output task (joined) + return 'joined' + return 'regular' + except: + # 'the show must go on', don't crash if anything goes wrong, just show it as 'regular' + return 'regular' @property def joined_status(self): diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks.html b/atdb/taskdatabase/templates/taskdatabase/tasks.html index e9d7a5aa..29ef8b5f 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks.html @@ -30,23 +30,22 @@ href="{% url 'workflow-details' task.workflow.id %}" data-popup-url="{% url 'workflow-details' task.workflow.id %}" target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow.id }} - </a></td> + </a></td> {% endif %} {% if task.task_type_join == 'joined' %} <a class="open-modal btn btn-primary btn-sm" href="{% url 'workflow-details' task.workflow.id %}" data-popup-url="{% url 'workflow-details' task.workflow.id %}" target="_blank"><i class="fas fa-diagram-successor"></i> {{ task.workflow.id }} - </a></td> + </a></td> {% endif %} {% if task.task_type_join == 'join' %} <a class="open-modal btn btn-secondary btn-sm" href="{% url 'workflow-details' task.workflow.id %}" data-popup-url="{% url 'workflow-details' task.workflow.id %}" target="_blank"><i class="fas fa-diagram-predecessor"></i> {{ task.workflow.id }} - </a></td> + </a></td> {% endif %} - </td> <td> {% if user.is_authenticated %} diff --git a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html index 280a5e0a..65f8cc4a 100644 --- a/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html +++ b/atdb/taskdatabase/templates/taskdatabase/tasks/details_card.html @@ -18,11 +18,29 @@ </td></tr> <tr class="{{ task.status }}"><td><b>status</b></td><td>{{ task.status }}</td></tr> <tr><td><b>workflow</b></td><td> + + {% if task.task_type_join == 'regular' %} <a class="open-modal btn btn-primary btn-sm" - href="{% url 'workflow-details' task.workflow.id %}" - data-popup-url="{% url 'workflow-details' task.workflow.id %}" - target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }} - </a> + href="{% url 'workflow-details' task.workflow.id %}" + data-popup-url="{% url 'workflow-details' task.workflow.id %}" + target="_blank"><i class="fas fa-project-diagram"></i> {{ task.workflow }} + </a></td> + {% endif %} + {% if task.task_type_join == 'joined' %} + <a class="open-modal btn btn-primary btn-sm" + href="{% url 'workflow-details' task.workflow.id %}" + data-popup-url="{% url 'workflow-details' task.workflow.id %}" + target="_blank"><i class="fas fa-diagram-successor"></i> {{ task.workflow }} + </a></td> + {% endif %} + {% if task.task_type_join == 'join' %} + <a class="open-modal btn btn-secondary btn-sm" + href="{% url 'workflow-details' task.workflow.id %}" + data-popup-url="{% url 'workflow-details' task.workflow.id %}" + target="_blank"><i class="fas fa-diagram-predecessor"></i> {{ task.workflow }} + </a></td> + {% endif %} + {% if user.is_staff %} <a href="/atdb/admin/taskdatabase/workflow/{{ task.workflow }}/change/" class="btn btn-secondary btn-sm" target="_blank" role="button"><i class="fas fa-cog"></i> Edit</a> </td></tr> {% endif %} -- GitLab