powerfeed.html 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. {% extends '_base.html' %}
  2. {% load static %}
  3. {% load custom_links %}
  4. {% load helpers %}
  5. {% block header %}
  6. <div class="row noprint">
  7. <div class="col-sm-8 col-md-9">
  8. <ol class="breadcrumb">
  9. <li><a href="{% url 'dcim:powerfeed_list' %}">Power Feeds</a></li>
  10. <li><a href="{{ powerfeed.power_panel.site.get_absolute_url }}">{{ powerfeed.power_panel.site }}</a></li>
  11. <li><a href="{{ powerfeed.power_panel.get_absolute_url }}">{{ powerfeed.power_panel }}</a></li>
  12. {% if powerfeed.rack %}
  13. <li><a href="{{ powerfeed.rack.get_absolute_url }}">{{ powerfeed.rack }}</a></li>
  14. {% endif %}
  15. <li>{{ powerfeed }}</li>
  16. </ol>
  17. </div>
  18. <div class="col-sm-4 col-md-3">
  19. <form action="{% url 'dcim:powerfeed_list' %}" method="get">
  20. <div class="input-group">
  21. <input type="text" name="q" class="form-control" placeholder="Search power feeds" />
  22. <span class="input-group-btn">
  23. <button type="submit" class="btn btn-primary">
  24. <span class="fa fa-search" aria-hidden="true"></span>
  25. </button>
  26. </span>
  27. </div>
  28. </form>
  29. </div>
  30. </div>
  31. <div class="pull-right noprint">
  32. {% if perms.dcim.change_powerfeed %}
  33. <a href="{% url 'dcim:powerfeed_edit' pk=powerfeed.pk %}" class="btn btn-warning">
  34. <span class="fa fa-pencil" aria-hidden="true"></span>
  35. Edit this power feed
  36. </a>
  37. {% endif %}
  38. {% if perms.dcim.delete_powerfeed %}
  39. <a href="{% url 'dcim:powerfeed_delete' pk=powerfeed.pk %}" class="btn btn-danger">
  40. <span class="fa fa-trash" aria-hidden="true"></span>
  41. Delete this power feed
  42. </a>
  43. {% endif %}
  44. </div>
  45. <h1>{% block title %}{{ powerfeed }}{% endblock %}</h1>
  46. {% include 'inc/created_updated.html' with obj=powerfeed %}
  47. <div class="pull-right noprint">
  48. {% custom_links powerfeed %}
  49. </div>
  50. <ul class="nav nav-tabs">
  51. <li role="presentation"{% if not active_tab %} class="active"{% endif %}>
  52. <a href="{{ powerfeed.get_absolute_url }}">Cable</a>
  53. </li>
  54. {% if perms.extras.view_objectchange %}
  55. <li role="presentation"{% if active_tab == 'changelog' %} class="active"{% endif %}>
  56. <a href="{% url 'dcim:powerfeed_changelog' pk=powerfeed.pk %}">Changelog</a>
  57. </li>
  58. {% endif %}
  59. </ul>
  60. {% endblock %}
  61. {% block content %}
  62. <div class="row">
  63. <div class="col-md-6">
  64. <div class="panel panel-default">
  65. <div class="panel-heading">
  66. <strong>Power Feed</strong>
  67. </div>
  68. <table class="table table-hover panel-body attr-table">
  69. <tr>
  70. <td>Power Panel</td>
  71. <td>
  72. <a href="{{ powerfeed.power_panel.get_absolute_url }}">{{ powerfeed.power_panel }}</a>
  73. </td>
  74. </tr>
  75. <tr>
  76. <td>Rack</td>
  77. <td>
  78. {% if powerfeed.rack %}
  79. <a href="{{ powerfeed.rack.get_absolute_url }}">{{ powerfeed.rack }}</a>
  80. {% else %}
  81. <span class="text-muted">None</span>
  82. {% endif %}
  83. </td>
  84. </tr>
  85. <tr>
  86. <td>Type</td>
  87. <td>
  88. <span class="label label-{{ powerfeed.get_type_class }}">{{ powerfeed.get_type_display }}</span>
  89. </td>
  90. </tr>
  91. <tr>
  92. <td>Status</td>
  93. <td>
  94. <span class="label label-{{ powerfeed.get_status_class }}">{{ powerfeed.get_status_display }}</span>
  95. </td>
  96. </tr>
  97. <tr>
  98. <td>Connected Device</td>
  99. <td>
  100. {% if powerfeed.connected_endpoint %}
  101. <a href="{{ powerfeed.connected_endpoint.device.get_absolute_url }}">{{ powerfeed.connected_endpoint.device }}</a> ({{ powerfeed.connected_endpoint }})
  102. {% else %}
  103. <span class="text-muted">None</span>
  104. {% endif %}
  105. </td>
  106. </tr>
  107. <tr>
  108. <td>Utilization (Allocated)</td>
  109. {% with utilization=powerfeed.connected_endpoint.get_power_draw %}
  110. {% if utilization %}
  111. <td>
  112. {{ utilization.allocated }}VA / {{ powerfeed.available_power }}VA
  113. {% if powerfeed.available_power > 0 %}
  114. {% utilization_graph utilization.allocated|percentage:powerfeed.available_power %}
  115. {% endif %}
  116. </td>
  117. {% else %}
  118. <td class="text-muted">N/A</td>
  119. {% endif %}
  120. {% endwith %}
  121. </tr>
  122. </table>
  123. </div>
  124. <div class="panel panel-default">
  125. <div class="panel-heading">
  126. <strong>Comments</strong>
  127. </div>
  128. <div class="panel-body rendered-markdown">
  129. {% if powerfeed.comments %}
  130. {{ powerfeed.comments|gfm }}
  131. {% else %}
  132. <span class="text-muted">None</span>
  133. {% endif %}
  134. </div>
  135. </div>
  136. </div>
  137. <div class="col-md-6">
  138. <div class="panel panel-default">
  139. <div class="panel-heading">
  140. <strong>Electrical Characteristics</strong>
  141. </div>
  142. <table class="table table-hover panel-body attr-table">
  143. <tr>
  144. <td>Supply</td>
  145. <td>{{ powerfeed.get_supply_display }}</td>
  146. </tr>
  147. <tr>
  148. <td>Voltage</td>
  149. <td>{{ powerfeed.voltage }}V</td>
  150. </tr>
  151. <tr>
  152. <td>Amperage</td>
  153. <td>{{ powerfeed.amperage }}A</td>
  154. </tr>
  155. <tr>
  156. <td>Phase</td>
  157. <td>{{ powerfeed.get_phase_display }}</td>
  158. </tr>
  159. <tr>
  160. <td>Max Utilization</td>
  161. <td>{{ powerfeed.max_utilization }}%</td>
  162. </tr>
  163. </table>
  164. </div>
  165. </div>
  166. </div>
  167. {% endblock %}