devicetype.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. {% extends '_base.html' %}
  2. {% load buttons %}
  3. {% load custom_links %}
  4. {% load helpers %}
  5. {% block title %}{{ devicetype.manufacturer }} {{ devicetype.model }}{% endblock %}
  6. {% block header %}
  7. <div class="row noprint">
  8. <div class="col-md-12">
  9. <ol class="breadcrumb">
  10. <li><a href="{% url 'dcim:devicetype_list' %}">Device Types</a></li>
  11. <li><a href="{% url 'dcim:devicetype_list' %}?manufacturer={{ devicetype.manufacturer.slug }}">{{ devicetype.manufacturer }}</a></li>
  12. <li>{{ devicetype.model }}</li>
  13. </ol>
  14. </div>
  15. </div>
  16. <div class="pull-right noprint">
  17. {% if perms.dcim.change_devicetype %}
  18. <div class="btn-group">
  19. <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
  20. <span class="glyphicon glyphicon-plus" aria-hidden="true"></span> Add Components <span class="caret"></span>
  21. </button>
  22. <ul class="dropdown-menu">
  23. {% if perms.dcim.add_consoleporttemplate %}<li><a href="{% url 'dcim:consoleporttemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Console Ports</a></li>{% endif %}
  24. {% if perms.dcim.add_consoleserverporttemplate %}<li><a href="{% url 'dcim:consoleserverporttemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Console Server Ports</a></li>{% endif %}
  25. {% if perms.dcim.add_powerporttemplate %}<li><a href="{% url 'dcim:powerporttemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Power Ports</a></li>{% endif %}
  26. {% if perms.dcim.add_poweroutlettemplate %}<li><a href="{% url 'dcim:poweroutlettemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Power Outlets</a></li>{% endif %}
  27. {% if perms.dcim.add_interfacetemplate %}<li><a href="{% url 'dcim:interfacetemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Interfaces</a></li>{% endif %}
  28. {% if perms.dcim.add_frontporttemplate %}<li><a href="{% url 'dcim:frontporttemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Front Ports</a></li>{% endif %}
  29. {% if perms.dcim.add_rearporttemplate %}<li><a href="{% url 'dcim:rearporttemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Rear Ports</a></li>{% endif %}
  30. {% if perms.dcim.add_devicebaytemplate %}<li><a href="{% url 'dcim:devicebaytemplate_add' %}?device_type={{ devicetype.pk }}&return_url={{ devicetype.get_absolute_url }}">Device Bays</a></li>{% endif %}
  31. </ul>
  32. </div>
  33. {% endif %}
  34. {% if perms.dcim.add_devicetype %}
  35. {% clone_button devicetype %}
  36. {% endif %}
  37. {% if perms.dcim.change_devicetype %}
  38. {% edit_button devicetype use_pk=True %}
  39. {% endif %}
  40. {% if perms.dcim.delete_devicetype %}
  41. {% delete_button devicetype use_pk=True %}
  42. {% endif %}
  43. </div>
  44. <h1>{{ devicetype.manufacturer }} {{ devicetype.model }}</h1>
  45. {% include 'inc/created_updated.html' with obj=devicetype %}
  46. <div class="pull-right noprint">
  47. {% custom_links devicetype %}
  48. </div>
  49. <ul class="nav nav-tabs">
  50. <li role="presentation"{% if not active_tab %} class="active"{% endif %}>
  51. <a href="{{ devicetype.get_absolute_url }}">Device Type</a>
  52. </li>
  53. {% if perms.extras.view_objectchange %}
  54. <li role="presentation"{% if active_tab == 'changelog' %} class="active"{% endif %}>
  55. <a href="{% url 'dcim:devicetype_changelog' pk=devicetype.pk %}">Change Log</a>
  56. </li>
  57. {% endif %}
  58. </ul>
  59. {% endblock %}
  60. {% block content %}
  61. <div class="row">
  62. <div class="col-md-6">
  63. <div class="panel panel-default">
  64. <div class="panel-heading">
  65. <strong>Chassis</strong>
  66. </div>
  67. <table class="table table-hover panel-body attr-table">
  68. <tr>
  69. <td>Manufacturer</td>
  70. <td><a href="{% url 'dcim:devicetype_list' %}?manufacturer={{ devicetype.manufacturer.slug }}">{{ devicetype.manufacturer }}</a></td>
  71. </tr>
  72. <tr>
  73. <td>Model Name</td>
  74. <td>
  75. {{ devicetype.model }}<br/>
  76. <small class="text-muted">{{ devicetype.slug }}</small>
  77. </td>
  78. </tr>
  79. <tr>
  80. <td>Part Number</td>
  81. <td>{{ devicetype.part_number|placeholder }}</td>
  82. </tr>
  83. <tr>
  84. <td>Height (U)</td>
  85. <td>{{ devicetype.u_height }}</td>
  86. </tr>
  87. <tr>
  88. <td>Full Depth</td>
  89. <td>
  90. {% if devicetype.is_full_depth %}
  91. <i class="glyphicon glyphicon-ok text-success" title="Yes"></i>
  92. {% else %}
  93. <i class="glyphicon glyphicon-remove text-danger" title="No"></i>
  94. {% endif %}
  95. </td>
  96. </tr>
  97. <tr>
  98. <td>Parent/Child</td>
  99. <td>
  100. {% if devicetype.subdevice_role == True %}
  101. <label class="label label-primary">Parent</label>
  102. {% elif devicetype.subdevice_role == False %}
  103. <label class="label label-info">Child</label>
  104. {% else %}
  105. <span class="text-muted">&mdash;</span>
  106. {% endif %}
  107. </td>
  108. </tr>
  109. <tr>
  110. <td>Front Image</td>
  111. <td>
  112. {% if devicetype.front_image %}
  113. <a href="{{ devicetype.front_image.url }}">
  114. <img src="{{ devicetype.front_image.url }}" alt="{{ devicetype.front_image.name }}" class="img-responsive" />
  115. </a>
  116. {% else %}
  117. <span class="text-muted">&mdash;</span>
  118. {% endif %}
  119. </td>
  120. </tr>
  121. <tr>
  122. <td>Rear Image</td>
  123. <td>
  124. {% if devicetype.rear_image %}
  125. <a href="{{ devicetype.rear_image.url }}">
  126. <img src="{{ devicetype.rear_image.url }}" alt="{{ devicetype.rear_image.name }}" class="img-responsive" />
  127. </a>
  128. {% else %}
  129. <span class="text-muted">&mdash;</span>
  130. {% endif %}
  131. </td>
  132. </tr>
  133. <tr>
  134. <td>Instances</td>
  135. <td><a href="{% url 'dcim:device_list' %}?device_type_id={{ devicetype.pk }}">{{ devicetype.instances.count }}</a></td>
  136. </tr>
  137. </table>
  138. </div>
  139. </div>
  140. <div class="col-md-6">
  141. {% include 'inc/custom_fields_panel.html' with obj=devicetype %}
  142. {% include 'extras/inc/tags_panel.html' with tags=devicetype.tags.all url='dcim:devicetype_list' %}
  143. <div class="panel panel-default">
  144. <div class="panel-heading">
  145. <strong>Comments</strong>
  146. </div>
  147. <div class="panel-body rendered-markdown">
  148. {% if devicetype.comments %}
  149. {{ devicetype.comments|render_markdown }}
  150. {% else %}
  151. <span class="text-muted">None</span>
  152. {% endif %}
  153. </div>
  154. </div>
  155. </div>
  156. </div>
  157. {% if devicetype.consoleport_templates.exists or devicetype.powerport_templates.exists %}
  158. <div class="row">
  159. <div class="col-md-6">
  160. {% include 'dcim/inc/devicetype_component_table.html' with table=consoleport_table title='Console Ports' add_url='dcim:consoleporttemplate_add' edit_url='dcim:consoleporttemplate_bulk_edit' delete_url='dcim:consoleporttemplate_bulk_delete' %}
  161. </div>
  162. <div class="col-md-6">
  163. {% include 'dcim/inc/devicetype_component_table.html' with table=powerport_table title='Power Ports' add_url='dcim:powerporttemplate_add' edit_url='dcim:powerporttemplate_bulk_edit' delete_url='dcim:powerporttemplate_bulk_delete' %}
  164. </div>
  165. </div>
  166. {% endif %}
  167. {% if devicetype.is_parent_device or devicebay_table.rows %}
  168. <div class="row">
  169. <div class="col-md-12">
  170. {% include 'dcim/inc/devicetype_component_table.html' with table=devicebay_table title='Device Bays' add_url='dcim:devicebaytemplate_add' edit_url=None delete_url='dcim:devicebaytemplate_bulk_delete' %}
  171. </div>
  172. </div>
  173. {% endif %}
  174. {% if devicetype.consoleserverport_templates.exists %}
  175. <div class="row">
  176. <div class="col-md-12">
  177. {% include 'dcim/inc/devicetype_component_table.html' with table=consoleserverport_table title='Console Server Ports' add_url='dcim:consoleserverporttemplate_add' edit_url='dcim:consoleserverporttemplate_bulk_edit' delete_url='dcim:consoleserverporttemplate_bulk_delete' %}
  178. </div>
  179. </div>
  180. {% endif %}
  181. {% if devicetype.poweroutlet_templates.exists %}
  182. <div class="row">
  183. <div class="col-md-12">
  184. {% include 'dcim/inc/devicetype_component_table.html' with table=poweroutlet_table title='Power Outlets' add_url='dcim:poweroutlettemplate_add' edit_url='dcim:poweroutlettemplate_bulk_edit' delete_url='dcim:poweroutlettemplate_bulk_delete' %}
  185. </div>
  186. </div>
  187. {% endif %}
  188. {% if devicetype.interface_templates.exists %}
  189. <div class="row">
  190. <div class="col-md-12">
  191. {% include 'dcim/inc/devicetype_component_table.html' with table=interface_table title='Interfaces' add_url='dcim:interfacetemplate_add' edit_url='dcim:interfacetemplate_bulk_edit' delete_url='dcim:interfacetemplate_bulk_delete' %}
  192. </div>
  193. </div>
  194. {% endif %}
  195. {% if devicetype.frontport_templates.exists or devicetype.rearport_templates.exists %}
  196. <div class="row">
  197. <div class="col-md-6">
  198. {% include 'dcim/inc/devicetype_component_table.html' with table=front_port_table title='Front Ports' add_url='dcim:frontporttemplate_add' edit_url='dcim:frontporttemplate_bulk_edit' delete_url='dcim:frontporttemplate_bulk_delete' %}
  199. </div>
  200. <div class="col-md-6">
  201. {% include 'dcim/inc/devicetype_component_table.html' with table=rear_port_table title='Rear Ports' add_url='dcim:rearporttemplate_add' edit_url='dcim:rearporttemplate_bulk_edit' delete_url='dcim:rearporttemplate_bulk_delete' %}
  202. </div>
  203. </div>
  204. {% endif %}
  205. {% endblock %}