report_result.html 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. {% extends 'extras/report.html' %}
  2. {% load helpers %}
  3. {% load static %}
  4. {% block title %}{{ report.name }} <span id="pending-result-label">{% include 'extras/inc/job_label.html' with result=result %}</span>{% endblock %}
  5. {% block head %}
  6. <script src="{% static 'jobs.js' %}?v{{ settings.VERSION }}"
  7. onerror="window.location='{% url 'media_failure' %}?filename=jobs.js'"></script>
  8. {% endblock %}
  9. {% block content %}
  10. <div class="row">
  11. <div class="col col-md-12">
  12. <p>
  13. Run: <strong>{{ result.created|annotated_date }}</strong>
  14. {% if result.completed %}
  15. Duration: <strong>{{ result.duration }}</strong>
  16. {% else %}
  17. <div class="spinner-border" role="status">
  18. <span class="visually-hidden">Loading...</span>
  19. </div>
  20. {% endif %}
  21. </p>
  22. {% if result.completed %}
  23. <div class="card">
  24. <h5 class="card-header">
  25. Report Methods
  26. </h5>
  27. <div class="card-body">
  28. <table class="table table-hover">
  29. {% for method, data in result.data.items %}
  30. <tr>
  31. <td><code><a href="#{{ method }}">{{ method }}</a></code></td>
  32. <td class="text-end report-stats">
  33. <span class="badge bg-success">{{ data.success }}</span>
  34. <span class="badge bg-info">{{ data.info }}</span>
  35. <span class="badge bg-warning">{{ data.warning }}</span>
  36. <span class="badge bg-danger">{{ data.failure }}</span>
  37. </td>
  38. </tr>
  39. {% endfor %}
  40. </table>
  41. </div>
  42. </div>
  43. <div class="card">
  44. <h5 class="card-header">
  45. Report Results
  46. </h5>
  47. <div class="card-body">
  48. <table class="table table-hover report">
  49. <thead>
  50. <tr class="table-headings">
  51. <th>Time</th>
  52. <th>Level</th>
  53. <th>Object</th>
  54. <th>Message</th>
  55. </tr>
  56. </thead>
  57. <tbody>
  58. {% for method, data in result.data.items %}
  59. <tr>
  60. <th colspan="4" style="font-family: monospace">
  61. <a name="{{ method }}"></a>{{ method }}
  62. </th>
  63. </tr>
  64. {% for time, level, obj, url, message in data.log %}
  65. <tr class="{% if level == 'failure' %}danger{% elif level %}{{ level }}{% endif %}">
  66. <td>{{ time }}</td>
  67. <td>
  68. <label class="badge bg-{% if level == 'failure' %}danger{% else %}{{ level }}{% endif %}">{{ level|title }}</label>
  69. </td>
  70. <td>
  71. {% if obj and url %}
  72. <a href="{{ url }}">{{ obj }}</a>
  73. {% elif obj %}
  74. {{ obj }}
  75. {% else %}
  76. <span class="muted">&mdash;</span>
  77. {% endif %}
  78. </td>
  79. <td class="rendered-markdown">{{ message|render_markdown }}</td>
  80. </tr>
  81. {% endfor %}
  82. {% endfor %}
  83. </tbody>
  84. </table>
  85. </div>
  86. </div>
  87. {% else %}
  88. <div class="well">Pending results</div>
  89. {% endif %}
  90. </div>
  91. </div>
  92. {% endblock %}
  93. {% block data %}
  94. <span data-job-id="{{ result.pk }}"></span>
  95. <span data-job-complete="{{ result.completed }}"></span>
  96. {% endblock %}