Misc cleanup per PR feedback

This commit is contained in:
Jeremy Stretch 2024-11-18 09:05:04 -05:00
parent 4426f47106
commit c79e822bd7
3 changed files with 34 additions and 2 deletions

View File

@ -303,11 +303,15 @@ class VirtualCircuitTerminationForm(NetBoxModelForm):
selector=True, selector=True,
query_params={ query_params={
'kind': 'virtual', 'kind': 'virtual',
'virtual_circuit_termination_id': 'null',
},
context={
'parent': 'device',
} }
) )
fieldsets = ( fieldsets = (
FieldSet('virtual_circuit', 'role', 'description', 'tags', 'interface'), FieldSet('virtual_circuit', 'role', 'interface', 'description', 'tags'),
) )
class Meta: class Meta:

View File

@ -156,3 +156,9 @@ class VirtualCircuitTermination(
return self.virtual_circuit.terminations.filter( return self.virtual_circuit.terminations.filter(
role=VirtualCircuitTerminationRoleChoices.ROLE_HUB role=VirtualCircuitTerminationRoleChoices.ROLE_HUB
) )
def clean(self):
super().clean()
if self.interface and not self.interface.is_virtual:
raise ValidationError("Virtual circuits may be terminated only to virtual interfaces.")

View File

@ -20,6 +20,7 @@
<div class="row"> <div class="row">
<div class="col col-md-6"> <div class="col col-md-6">
<div class="card"> <div class="card">
<h2 class="card-header">{% trans "Virtual Circuit Termination" %}</h2>
<table class="table table-hover attr-table"> <table class="table table-hover attr-table">
<tr> <tr>
<th scope="row">{% trans "Provider" %}</th> <th scope="row">{% trans "Provider" %}</th>
@ -44,10 +45,31 @@
</table> </table>
</div> </div>
{% include 'inc/panels/tags.html' %} {% include 'inc/panels/tags.html' %}
{% include 'inc/panels/custom_fields.html' %}
{% plugin_left_page object %} {% plugin_left_page object %}
</div> </div>
<div class="col col-md-6"> <div class="col col-md-6">
{% include 'inc/panels/custom_fields.html' %} <div class="card">
<h2 class="card-header">{% trans "Interface" %}</h2>
<table class="table table-hover attr-table">
<tr>
<th scope="row">{% trans "Device" %}</th>
<td>{{ object.interface.device|linkify }}</td>
</tr>
<tr>
<th scope="row">{% trans "Interface" %}</th>
<td>{{ object.interface|linkify }}</td>
</tr>
<tr>
<th scope="row">{% trans "Type" %}</th>
<td>{{ object.interface.get_type_display }}</td>
</tr>
<tr>
<th scope="row">{% trans "Description" %}</th>
<td>{{ object.interface.description|placeholder }}</td>
</tr>
</table>
</div>
{% plugin_right_page object %} {% plugin_right_page object %}
</div> </div>
</div> </div>