Quellcode durchsuchen

#10054: Simplify cable forms

jeremystretch vor 2 Jahren
Ursprung
Commit
da7293524e

+ 3 - 69
netbox/dcim/forms/connections.py

@@ -15,68 +15,16 @@ def get_cable_form(a_type, b_type):
 
             for cable_end, term_cls in (('a', a_type), ('b', b_type)):
 
-                attrs[f'termination_{cable_end}_region'] = DynamicModelChoiceField(
-                    queryset=Region.objects.all(),
-                    label=_('Region'),
-                    required=False,
-                    initial_params={
-                        'sites': f'$termination_{cable_end}_site'
-                    }
-                )
-                attrs[f'termination_{cable_end}_sitegroup'] = DynamicModelChoiceField(
-                    queryset=SiteGroup.objects.all(),
-                    label=_('Site group'),
-                    required=False,
-                    initial_params={
-                        'sites': f'$termination_{cable_end}_site'
-                    }
-                )
-                attrs[f'termination_{cable_end}_site'] = DynamicModelChoiceField(
-                    queryset=Site.objects.all(),
-                    label=_('Site'),
-                    required=False,
-                    query_params={
-                        'region_id': f'$termination_{cable_end}_region',
-                        'group_id': f'$termination_{cable_end}_sitegroup',
-                    }
-                )
-                attrs[f'termination_{cable_end}_location'] = DynamicModelChoiceField(
-                    queryset=Location.objects.all(),
-                    label=_('Location'),
-                    required=False,
-                    null_option='None',
-                    query_params={
-                        'site_id': f'$termination_{cable_end}_site'
-                    }
-                )
-
                 # Device component
                 if hasattr(term_cls, 'device'):
 
-                    attrs[f'termination_{cable_end}_rack'] = DynamicModelChoiceField(
-                        queryset=Rack.objects.all(),
-                        label=_('Rack'),
-                        required=False,
-                        null_option='None',
-                        initial_params={
-                            'devices': f'$termination_{cable_end}_device'
-                        },
-                        query_params={
-                            'site_id': f'$termination_{cable_end}_site',
-                            'location_id': f'$termination_{cable_end}_location',
-                        }
-                    )
                     attrs[f'termination_{cable_end}_device'] = DynamicModelChoiceField(
                         queryset=Device.objects.all(),
                         label=_('Device'),
                         required=False,
+                        selector=True,
                         initial_params={
                             f'{term_cls._meta.model_name}s__in': f'${cable_end}_terminations'
-                        },
-                        query_params={
-                            'site_id': f'$termination_{cable_end}_site',
-                            'location_id': f'$termination_{cable_end}_location',
-                            'rack_id': f'$termination_{cable_end}_rack',
                         }
                     )
                     attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField(
@@ -96,12 +44,9 @@ def get_cable_form(a_type, b_type):
                         queryset=PowerPanel.objects.all(),
                         label=_('Power Panel'),
                         required=False,
+                        selector=True,
                         initial_params={
                             'powerfeeds__in': f'${cable_end}_terminations'
-                        },
-                        query_params={
-                            'site_id': f'$termination_{cable_end}_site',
-                            'location_id': f'$termination_{cable_end}_location',
                         }
                     )
                     attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField(
@@ -116,23 +61,12 @@ def get_cable_form(a_type, b_type):
                 # CircuitTermination
                 elif term_cls == CircuitTermination:
 
-                    attrs[f'termination_{cable_end}_provider'] = DynamicModelChoiceField(
-                        queryset=Provider.objects.all(),
-                        label=_('Provider'),
-                        initial_params={
-                            'circuits': f'$termination_{cable_end}_circuit'
-                        },
-                        required=False
-                    )
                     attrs[f'termination_{cable_end}_circuit'] = DynamicModelChoiceField(
                         queryset=Circuit.objects.all(),
                         label=_('Circuit'),
+                        selector=True,
                         initial_params={
                             'terminations__in': f'${cable_end}_terminations'
-                        },
-                        query_params={
-                            'provider_id': f'$termination_{cable_end}_provider',
-                            'site_id': f'$termination_{cable_end}_site',
                         }
                     )
                     attrs[f'{cable_end}_terminations'] = DynamicModelMultipleChoiceField(

+ 4 - 4
netbox/templates/circuits/inc/circuit_termination.html

@@ -74,10 +74,10 @@
                       <span class="mdi mdi-ethernet-cable" aria-hidden="true"></span> Connect
                     </button>
                     <ul class="dropdown-menu">
-                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ termination.site.pk }}&return_url={{ object.get_absolute_url }}">Interface</a></li>
-                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ termination.site.pk }}&return_url={{ object.get_absolute_url }}">Front Port</a></li>
-                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ termination.site.pk }}&return_url={{ object.get_absolute_url }}">Rear Port</a></li>
-                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ termination.site.pk }}&return_url={{ object.get_absolute_url }}">Circuit Termination</a></li>
+                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.interface&return_url={{ object.get_absolute_url }}">Interface</a></li>
+                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}">Front Port</a></li>
+                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}">Rear Port</a></li>
+                      <li><a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=circuits.circuittermination&a_terminations={{ termination.pk }}&b_terminations_type=circuits.circuittermination&return_url={{ object.get_absolute_url }}">Circuit Termination</a></li>
                     </ul>
                   </div>
                 {% endif %}

+ 80 - 117
netbox/templates/dcim/cable_edit.html

@@ -3,124 +3,87 @@
 {% load helpers %}
 {% load form_helpers %}
 
-{% block content-wrapper %}
-  <div class="tab-content">
-    {% render_errors form %}
-    <form method="post">
-      {% csrf_token %}
-      {% for field in form.hidden_fields %}
-          {{ field }}
-      {% endfor %}
-      <div class="row my-3">
-          <div class="col col-md-5">
-              <div class="card h-100">
-                  <h5 class="card-header offset-sm-3">A Side</h5>
-                  <div class="card-body">
-                      {% render_field form.termination_a_region %}
-                      {% render_field form.termination_a_sitegroup %}
-                      {% render_field form.termination_a_site %}
-                      {% render_field form.termination_a_location %}
-                      {% if 'termination_a_rack' in form.fields %}
-                          {% render_field form.termination_a_rack %}
-                      {% endif %}
-                      {% if 'termination_a_device' in form.fields %}
-                          {% render_field form.termination_a_device %}
-                      {% endif %}
-                      {% if 'termination_a_powerpanel' in form.fields %}
-                          {% render_field form.termination_a_powerpanel %}
-                      {% endif %}
-                      {% if 'termination_a_provider' in form.fields %}
-                          {% render_field form.termination_a_provider %}
-                      {% endif %}
-                      {% if 'termination_a_circuit' in form.fields %}
-                          {% render_field form.termination_a_circuit %}
-                      {% endif %}
-                      {% render_field form.a_terminations %}
-                  </div>
-              </div>
-          </div>
-          <div class="col col-md-2 flex-column justify-content-center align-items-center d-none d-md-flex">
-              <i class="mdi mdi-swap-horizontal-bold mdi-48px"></i>
-          </div>
-          <div class="col col-md-5">
-              <div class="card h-100">
-                  <h5 class="card-header offset-sm-3">B Side</h5>
-                  <div class="card-body">
-                      {% render_field form.termination_b_region %}
-                      {% render_field form.termination_b_sitegroup %}
-                      {% render_field form.termination_b_site %}
-                      {% render_field form.termination_b_location %}
-                      {% if 'termination_b_rack' in form.fields %}
-                          {% render_field form.termination_b_rack %}
-                      {% endif %}
-                      {% if 'termination_b_device' in form.fields %}
-                          {% render_field form.termination_b_device %}
-                      {% endif %}
-                      {% if 'termination_b_powerpanel' in form.fields %}
-                          {% render_field form.termination_b_powerpanel %}
-                      {% endif %}
-                      {% if 'termination_b_provider' in form.fields %}
-                          {% render_field form.termination_b_provider %}
-                      {% endif %}
-                      {% if 'termination_b_circuit' in form.fields %}
-                          {% render_field form.termination_b_circuit %}
-                      {% endif %}
-                      {% render_field form.b_terminations %}
-                  </div>
-              </div>
-          </div>
-      </div>
-      <div class="row my-3 justify-content-center">
-        <div class="col col-md-8">
-          <div class="card">
-            <h5 class="card-header offset-sm-3">Cable</h5>
-            <div class="card-body">
-              {% render_field form.status %}
-              {% render_field form.type %}
-              {% render_field form.tenant_group %}
-              {% render_field form.tenant %}
-              {% render_field form.label %}
-              {% render_field form.description %}
-              {% render_field form.color %}
-              <div class="row mb-3">
-                <label class="col-sm-3 col-form-label text-lg-end">{{ form.length.label }}</label>
-                <div class="col-md-5">
-                  {{ form.length }}
-                </div>
-                <div class="col-md-4">
-                  {{ form.length_unit }}
-                </div>
-                <div class="invalid-feedback"></div>
-              </div>
-              {% render_field form.tags %}
-            </div>
-          </div>
-            <div class="card">
-              <h5 class="card-header text-center">Comments</h5>
-              <div class="card-body">
-              {% render_field form.comments %}
-              </div>
-            </div>
-          {% if form.custom_fields %}
-            <div class="card">
-              <h5 class="card-header offset-sm-3">Custom Fields</h5>
-              <div class="card-body">
-                {% render_custom_fields form %}
-              </div>
-            </div>
-          {% endif %}
-        </div>
+{% block form %}
+
+  {# A side termination #}
+  <div class="field-group mb-5">
+    <div class="row mb-2">
+      <h5 class="offset-sm-3">A Side</h5>
+    </div>
+    {% if 'termination_a_device' in form.fields %}
+      {% render_field form.termination_a_device %}
+    {% endif %}
+    {% if 'termination_a_powerpanel' in form.fields %}
+      {% render_field form.termination_a_powerpanel %}
+    {% endif %}
+    {% if 'termination_a_circuit' in form.fields %}
+      {% render_field form.termination_a_circuit %}
+    {% endif %}
+    {% render_field form.a_terminations %}
+  </div>
+
+  {# B side termination #}
+  <div class="field-group mb-5">
+    <div class="row mb-2">
+      <h5 class="offset-sm-3">B Side</h5>
+    </div>
+    {% if 'termination_b_device' in form.fields %}
+      {% render_field form.termination_b_device %}
+    {% endif %}
+    {% if 'termination_b_powerpanel' in form.fields %}
+      {% render_field form.termination_b_powerpanel %}
+    {% endif %}
+    {% if 'termination_b_circuit' in form.fields %}
+      {% render_field form.termination_b_circuit %}
+    {% endif %}
+    {% render_field form.b_terminations %}
+  </div>
+
+  {# Cable attributes #}
+  <div class="field-group mb-5">
+    <div class="row mb-2">
+      <h5 class="offset-sm-3">Cable</h5>
+    </div>
+    {% render_field form.status %}
+    {% render_field form.type %}
+    {% render_field form.label %}
+    {% render_field form.description %}
+    {% render_field form.color %}
+    <div class="row mb-3">
+      <label class="col-sm-3 col-form-label text-lg-end">{{ form.length.label }}</label>
+      <div class="col-md-5">
+        {{ form.length }}
       </div>
-      <div class="row my-3">
-        <div class="col col-md-12 text-center">
-          {% if object.pk %}
-            <button type="submit" name="_update" class="btn btn-primary">Save</button>
-          {% else %}
-            <button type="submit" name="_create" class="btn btn-primary">Create</button>
-          {% endif %}
-          <a href="{{ return_url }}" class="btn btn-outline-danger">Cancel</a>
-        </div>
+      <div class="col-md-4">
+        {{ form.length_unit }}
       </div>
-    </form>
+      <div class="invalid-feedback"></div>
+    </div>
+    {% render_field form.tags %}
   </div>
+
+  <div class="field-group mb-5">
+    <div class="row mb-2">
+      <h5 class="offset-sm-3">Tenancy</h5>
+    </div>
+    {% render_field form.tenant_group %}
+    {% render_field form.tenant %}
+  </div>
+
+  {% if form.custom_fields %}
+    <div class="field-group mb-5">
+      <div class="row mb-2">
+        <h5 class="offset-sm-3">Custom Fields</h5>
+      </div>
+      {% render_custom_fields form %}
+    </div>
+  {% endif %}
+
+  {% if form.comments %}
+    <div class="field-group mb-5">
+      <h5 class="text-center">Comments</h5>
+      {% render_field form.comments %}
+    </div>
+  {% endif %}
+
 {% endblock %}

+ 3 - 3
netbox/templates/dcim/consoleport.html

@@ -71,13 +71,13 @@
                       </button>
                       <ul class="dropdown-menu dropdown-menu-end">
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleserverport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Console Server Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleserverport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Console Server Port</a>
                         </li>
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
                         </li>
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
                         </li>
                       </ul>
                     </div>

+ 3 - 3
netbox/templates/dcim/consoleserverport.html

@@ -71,13 +71,13 @@
                       </button>
                       <ul class="dropdown-menu dropdown-menu-end">
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Console Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Console Port</a>
                         </li>
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
                         </li>
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.consoleserverport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
                         </li>
                       </ul>
                     </div>

+ 6 - 6
netbox/templates/dcim/frontport.html

@@ -109,22 +109,22 @@
                                 </button>
                                 <ul class="dropdown-menu dropdown-menu-end">
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Interface</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&return_url={{ object.get_absolute_url }}">Interface</a>
                                     </li>
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleserverport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Console Server Port</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleserverport&return_url={{ object.get_absolute_url }}">Console Server Port</a>
                                     </li>
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Console Port</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.consoleport&return_url={{ object.get_absolute_url }}">Console Port</a>
                                     </li>
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Front Port</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}">Front Port</a>
                                     </li>
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Rear Port</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}">Rear Port</a>
                                     </li>
                                     <li>
-                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.device.site.pk }}&return_url={{ object.get_absolute_url }}">Circuit Termination</a>
+                                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.frontport&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&return_url={{ object.get_absolute_url }}">Circuit Termination</a>
                                     </li>
                                 </ul>
                             </div>

+ 4 - 4
netbox/templates/dcim/interface.html

@@ -182,16 +182,16 @@
                     </button>
                     <ul class="dropdown-menu dropdown-menu-end">
                       <li>
-                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Interface</a>
+                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&return_url={{ object.get_absolute_url }}">Interface</a>
                       </li>
                       <li>
-                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Front Port</a>
+                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}">Front Port</a>
                       </li>
                       <li>
-                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}">Rear Port</a>
+                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}">Rear Port</a>
                       </li>
                       <li>
-                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.device.site.pk }}&return_url={{ object.get_absolute_url }}">Circuit Termination</a>
+                        <a class="dropdown-item" href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.interface&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&return_url={{ object.get_absolute_url }}">Circuit Termination</a>
                       </li>
                     </ul>
                   </div>

+ 1 - 1
netbox/templates/dcim/powerfeed.html

@@ -122,7 +122,7 @@
         {% if not object.mark_connected and not object.cable %}
         <div class="card-footer">
           {% if perms.dcim.add_cable %}
-            <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerfeed&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="btn btn-primary btn-sm float-end">
+            <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerfeed&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerport&return_url={{ object.get_absolute_url }}" class="btn btn-primary btn-sm float-end">
               <i class="mdi mdi-ethernet-cable" aria-hidden="true"></i> Connect
             </a>
           {% endif %}

+ 1 - 1
netbox/templates/dcim/poweroutlet.html

@@ -71,7 +71,7 @@
                 <div class="text-muted">
                   Not Connected
                   {% if perms.dcim.add_cable %}
-                    <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.poweroutlet&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" title="Connect" class="btn btn-primary btn-sm float-end">
+                    <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.poweroutlet&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerport&return_url={{ object.get_absolute_url }}" title="Connect" class="btn btn-primary btn-sm float-end">
                       <i class="mdi mdi-ethernet-cable" aria-hidden="true"></i> Connect
                     </a>
                   {% endif %}

+ 2 - 2
netbox/templates/dcim/powerport.html

@@ -77,10 +77,10 @@
                       </button>
                       <ul class="dropdown-menu dropdown-menu-end">
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ object.pk }}&b_terminations_type=dcim.poweroutlet&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Power Outlet</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ object.pk }}&b_terminations_type=dcim.poweroutlet&return_url={{ object.get_absolute_url }}" class="dropdown-item">Power Outlet</a>
                         </li>
                         <li>
-                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerfeed&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Power Feed</a>
+                          <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.powerport&a_terminations={{ object.pk }}&b_terminations_type=dcim.powerfeed&return_url={{ object.get_absolute_url }}" class="dropdown-item">Power Feed</a>
                         </li>
                       </ul>
                     </span>

+ 4 - 4
netbox/templates/dcim/rearport.html

@@ -105,16 +105,16 @@
                                 </button>
                                 <ul class="dropdown-menu dropdown-menu-end">
                                     <li>
-                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Interface</a>
+                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.interface&return_url={{ object.get_absolute_url }}" class="dropdown-item">Interface</a>
                                     </li>
                                     <li>
-                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
+                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.frontport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Front Port</a>
                                     </li>
                                     <li>
-                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&termination_b_site={{ object.device.site.pk }}&termination_b_rack={{ object.device.rack.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
+                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=dcim.rearport&return_url={{ object.get_absolute_url }}" class="dropdown-item">Rear Port</a>
                                     </li>
                                     <li>
-                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&termination_b_site={{ object.device.site.pk }}&return_url={{ object.get_absolute_url }}" class="dropdown-item">Circuit Termination</a>
+                                        <a href="{% url 'dcim:cable_add' %}?a_terminations_type=dcim.rearport&a_terminations={{ object.pk }}&b_terminations_type=circuits.circuittermination&return_url={{ object.get_absolute_url }}" class="dropdown-item">Circuit Termination</a>
                                     </li>
                                 </ul>
                             </span>