rq_task.html 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. {% extends 'generic/object.html' %}
  2. {% load i18n %}
  3. {% load buttons %}
  4. {% load helpers %}
  5. {% load render_table from django_tables2 %}
  6. {% block breadcrumbs %}
  7. <li class="breadcrumb-item"><a href="{% url 'core:background_queue_list' %}">{% trans 'Background Tasks' %}</a></li>
  8. <li class="breadcrumb-item"><a href="{% url 'core:background_task_list' queue_index=queue_index status=job.get_status.value %}">{{ queue.name }}</a></li>
  9. {% endblock breadcrumbs %}
  10. {% block title %}{% trans "Job" %} {{ job.id }}{% endblock %}
  11. {% block subtitle %}
  12. <div class="text-secondary fs-5">
  13. <span>{% trans "Created" %} {{ job.created_at|isodatetime }}</span>
  14. </div>
  15. {% endblock subtitle %}
  16. {% block object_identifier %}{% endblock %}
  17. {% block controls %}
  18. <div class="btn-list mb-2">
  19. {% url 'core:background_task_delete' job_id=job.id as delete_url %}
  20. {% include "buttons/delete.html" with url=delete_url %}
  21. {% if job.is_started %}
  22. <a href="{% url 'core:background_task_stop' job.id %}" class="btn btn-primary">
  23. <i class="mdi mdi-stop-circle-outline"></i> {% trans "Stop" %}
  24. </a>
  25. {% endif %}
  26. {% if job.is_failed %}
  27. <a href="{% url 'core:background_task_requeue' job.id %}" class="btn btn-primary">
  28. <i class="mdi mdi-sync"></i> {% trans "Requeue" %}
  29. </a>
  30. {% endif %}
  31. {% if not job.is_queued and not job.is_failed %}
  32. <a href="{% url 'core:background_task_enqueue' job.id %}" class="btn btn-primary">
  33. <i class="mdi mdi-sync"></i> {% trans "Enqueue" %}
  34. </a>
  35. {% endif %}
  36. </div>
  37. {% endblock controls %}
  38. {% block tabs %}
  39. <ul class="nav nav-tabs">
  40. <li class="nav-item" role="presentation">
  41. <a class="nav-link active" role="tab">{% trans "Job" %}</a>
  42. </li>
  43. </ul>
  44. {% endblock tabs %}
  45. {% block content %}
  46. <div class="row">
  47. <div class="col col-md-12">
  48. <div class="card">
  49. <h2 class="card-header">{% trans "Job" %}</h2>
  50. <table class="table table-hover attr-table">
  51. <tr>
  52. <th scope="row">{% trans "Queue" %}</th>
  53. <td>{{ job.origin|placeholder }}</td>
  54. </tr>
  55. <tr>
  56. <th scope="row">{% trans "Timeout" %}</th>
  57. <td>{{ job.timeout|placeholder }}</td>
  58. </tr>
  59. <tr>
  60. <th scope="row">{% trans "Result TTL" %}</th>
  61. <td>{{ job.result_ttl|placeholder }}</td>
  62. </tr>
  63. <tr>
  64. <th scope="row">{% trans "Created" %}</th>
  65. <td>{{ job.created_at|isodatetime }}</td>
  66. </tr>
  67. <tr>
  68. <th scope="row">{% trans "Queued" %}</th>
  69. <td>{{ job.enqueued_at|isodatetime }}</td>
  70. </tr>
  71. <tr>
  72. <th scope="row">{% trans "Status" %}</th>
  73. <td>{{ job.get_status|placeholder }}</td>
  74. </tr>
  75. <tr>
  76. <th scope="row">{% trans "Callable" %}</th>
  77. <td>{{ object.get_type_display|placeholder }}</td>
  78. </tr>
  79. <tr>
  80. <th scope="row">{% trans "Meta" %}</th>
  81. <td>{{ job.meta|placeholder }}</td>
  82. </tr>
  83. <tr>
  84. <th scope="row">{% trans "Arguments" %}</th>
  85. <td>{{ jobs.args|placeholder }}</td>
  86. </tr>
  87. <tr>
  88. <th scope="row">{% trans "Keyword Arguments" %}</th>
  89. {# TODO: Render as formatted JSON #}
  90. <td>{{ job.kwargs }}</td>
  91. </tr>
  92. {% if dependency_id %}
  93. <tr>
  94. <th scope="row">{% trans "Depends on" %}</th>
  95. <td><a href="{% url 'core:background_task' job.id %}">{{ dependency_id }}</a></td>
  96. </tr>
  97. {% endif %}
  98. {% if exc_info %}
  99. <tr>
  100. <th scope="row">{% trans "Exception" %}</th>
  101. <td><pre>{% if job.exc_info %}{{ job.exc_info|linebreaks }}{% endif %}</pre></td>
  102. </tr>
  103. {% endif %}
  104. </table>
  105. </div>
  106. </div>
  107. </div>
  108. {% endblock content %}