virtualchassis_edit.html 4.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. {% extends 'base/layout.html' %}
  2. {% load helpers %}
  3. {% load form_helpers %}
  4. {% block title %}{% if vc_form.instance %}Editing Virtual Chassis {{ vc_form.instance }}{% else %}New Virtual Chassis{% endif %}{% endblock %}
  5. {% block content %}
  6. <form action="" method="post" enctype="multipart/form-data" class="form-object-edit">
  7. {% csrf_token %}
  8. {{ pk_form.pk }}
  9. {{ formset.management_form }}
  10. <div class="card">
  11. <h5 class="card-header">Virtual Chassis</h5>
  12. <div class="card-body">
  13. {% render_field vc_form.name %}
  14. {% render_field vc_form.domain %}
  15. {% render_field vc_form.master %}
  16. {% render_field vc_form.tags %}
  17. </div>
  18. </div>
  19. {% if vc_form.custom_fields %}
  20. <div class="card">
  21. <h5 class="card-header">Custom Fields</h5>
  22. <div class="card-body">
  23. {% render_custom_fields vc_form %}
  24. </div>
  25. </div>
  26. {% endif %}
  27. <div class="card">
  28. <h5 class="card-header">Members</h5>
  29. <div class="card-body">
  30. <table class="table">
  31. <thead>
  32. <tr>
  33. <th>Device</th>
  34. <th>ID</th>
  35. <th>Rack/Unit</th>
  36. <th>Serial</th>
  37. <th>Position</th>
  38. <th>Priority</th>
  39. <th></th>
  40. </tr>
  41. </thead>
  42. <tbody>
  43. {% for form in formset %}
  44. {% for field in form.hidden_fields %}
  45. {{ field }}
  46. {% endfor %}
  47. {% with device=form.instance virtual_chassis=vc_form.instance %}
  48. <tr>
  49. <td>
  50. <a href="{{ device.get_absolute_url }}">{{ device }}</a>
  51. </td>
  52. <td>{{ device.pk }}</td>
  53. <td>
  54. {% if device.rack %}
  55. {{ device.rack }} / {{ device.position }}
  56. {% else %}
  57. <span class="text-muted">&mdash;</span>
  58. {% endif %}
  59. </td>
  60. <td>{{ device.serial|placeholder }}</td>
  61. <td>
  62. {{ form.vc_position }}
  63. {% if form.vc_position.errors %}
  64. <br /><small class="text-danger">{{ form.vc_position.errors.0 }}</small>
  65. {% endif %}
  66. </td>
  67. <td>
  68. {{ form.vc_priority }}
  69. {% if form.vc_priority.errors %}
  70. <br /><small class="text-danger">{{ form.vc_priority.errors.0 }}</small>
  71. {% endif %}
  72. </td>
  73. <td>
  74. {% if virtual_chassis.pk %}
  75. <a href="{% url 'dcim:virtualchassis_remove_member' pk=device.pk %}?return_url={% url 'dcim:virtualchassis_edit' pk=virtual_chassis.pk %}" class="btn btn-danger btn-sm{% if virtual_chassis.master == device %} disabled{% endif %}">
  76. <span class="mdi mdi-trash-can-outline" aria-hidden="true"></span>
  77. </a>
  78. {% endif %}
  79. </td>
  80. </tr>
  81. {% endwith %}
  82. {% endfor %}
  83. </tbody>
  84. </table>
  85. </div>
  86. </div>
  87. <div class="text-end">
  88. <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
  89. {% if vc_form.instance.pk %}
  90. <button type="submit" name="_update" class="btn btn-primary">Save</button>
  91. {% else %}
  92. <button type="submit" name="_create" class="btn btn-primary">Create</button>
  93. {% endif %}
  94. </div>
  95. </form>
  96. {% endblock %}