Browse Source

Prevented an interface from being connected to itself

Jeremy Stretch 9 years ago
parent
commit
d0b57266ae
2 changed files with 17 additions and 0 deletions
  1. 5 0
      netbox/dcim/models.py
  2. 12 0
      netbox/templates/dcim/interfaceconnection_edit.html

+ 5 - 0
netbox/dcim/models.py

@@ -668,6 +668,11 @@ class InterfaceConnection(models.Model):
     interface_b = models.OneToOneField('Interface', related_name='connected_as_b', on_delete=models.CASCADE)
     connection_status = models.BooleanField(choices=CONNECTION_STATUS_CHOICES, default=CONNECTION_STATUS_CONNECTED, verbose_name='Status')
 
+    def clean(self):
+
+        if self.interface_a == self.interface_b:
+            raise ValidationError("Cannot connect an interface to itself")
+
 
 class Module(models.Model):
     """

+ 12 - 0
netbox/templates/dcim/interfaceconnection_edit.html

@@ -8,6 +8,18 @@
 <form action="." method="post" class="form form-horizontal">
 {% csrf_token %}
 <div class="row">
+    <div class="col-md-6 col-md-offset-3">
+        {% if form.non_field_errors %}
+            <div class="panel panel-danger">
+                <div class="panel-heading"><strong>Errors</strong></div>
+                <div class="panel-body">
+                    {{ form.non_field_errors }}
+                </div>
+            </div>
+        {% endif %}
+    </div>
+</div>
+<div class="row">
 	<div class="col-md-5">
         <div class="panel panel-default">
             <div class="panel-heading text-center">