{% extends 'base/layout.html' %} {% load helpers %} {% load form_helpers %} {% block title %}Deploy MTP Harness{% endblock %} {% block content %}

Deploy MTP Harness

One form submit deploys an entire inter-rack fibre harness: a parent FibreTrunk + N cassette devices + N native dcim.Cables linking the source patch-panel RearPort to each destination + N TrunkBreakout rows binding the cables to the trunk at chosen fibre ranges. The whole batch is applied atomically — if any row fails validation, nothing is saved. After submit you'll see a preview before anything hits the database.

{% csrf_token %} {% if form.non_field_errors %}
{{ form.non_field_errors }}
{% endif %}
Trunk metadata
{% render_field form.trunk_cid %} {% render_field form.trunk_type %} {% render_field form.fibre_count %} {% render_field form.length_m %} {% render_field form.manufacturer %}
Source patch panel
{% render_field form.source_rack %} {% render_field form.source_device %}
Cassette & cable defaults
{% render_field form.cassette_device_type %} {% render_field form.cassette_device_role %} {% render_field form.cable_type %} {% render_field form.default_cable_length_m %}
Destinations
{{ formset.management_form }} {% if formset.non_form_errors %}
{{ formset.non_form_errors }}
{% endif %} {% for dest_form in formset %}
Destination {{ forloop.counter }}
{% if dest_form.non_field_errors %}
{{ dest_form.non_field_errors }}
{% endif %} {% for field in dest_form %} {% render_field field %} {% endfor %}
{% endfor %}
Cancel
{% endblock %}