2
0
Эх сурвалжийг харах

CircuitTermination should inherit from CableTermination

Jeremy Stretch 7 жил өмнө
parent
commit
3420b5fbdf

+ 7 - 2
netbox/circuits/migrations/0013_cables.py

@@ -57,7 +57,7 @@ class Migration(migrations.Migration):
 
     operations = [
 
-        # Add CircuitTermination.connected_endpoint
+        # Add new CircuitTermination fields
         migrations.AddField(
             model_name='circuittermination',
             name='connected_endpoint',
@@ -68,11 +68,16 @@ class Migration(migrations.Migration):
             name='connection_status',
             field=models.NullBooleanField(default=True),
         ),
+        migrations.AddField(
+            model_name='circuittermination',
+            name='cable',
+            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='dcim.Cable'),
+        ),
 
         # Copy CircuitTermination connections to Interfaces as Cables
         migrations.RunPython(circuit_terminations_to_cables),
 
-        # Model changes
+        # Remove interface field from CircuitTermination
         migrations.RemoveField(
             model_name='circuittermination',
             name='interface',

+ 2 - 1
netbox/circuits/models.py

@@ -5,6 +5,7 @@ from taggit.managers import TaggableManager
 
 from dcim.constants import CONNECTION_STATUS_CHOICES, CONNECTION_STATUS_CONNECTED, STATUS_CLASSES
 from dcim.fields import ASNField
+from dcim.models import CableTermination
 from extras.models import CustomFieldModel, ObjectChange
 from utilities.models import ChangeLoggedModel
 from utilities.utils import serialize_object
@@ -211,7 +212,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel):
         return self._get_termination('Z')
 
 
-class CircuitTermination(models.Model):
+class CircuitTermination(CableTermination):
     circuit = models.ForeignKey(
         to='circuits.Circuit',
         on_delete=models.CASCADE,

+ 3 - 1
netbox/dcim/models.py

@@ -15,7 +15,6 @@ from mptt.models import MPTTModel, TreeForeignKey
 from taggit.managers import TaggableManager
 from timezone_field import TimeZoneField
 
-from circuits.models import Circuit, CircuitTermination
 from extras.models import ConfigContextModel, CustomFieldModel, ObjectChange
 from utilities.fields import ColorField, NullableCharField
 from utilities.managers import NaturalOrderByManager
@@ -336,6 +335,7 @@ class Site(ChangeLoggedModel, CustomFieldModel):
 
     @property
     def count_circuits(self):
+        from circuits.models import Circuit
         return Circuit.objects.filter(terminations__site=self).count()
 
     @property
@@ -2023,6 +2023,8 @@ class Interface(CableTermination, ComponentModel):
 
     @connected_endpoint.setter
     def connected_endpoint(self, value):
+        from circuits.models import CircuitTermination
+
         if value is None:
             self._connected_interface = None
             self._connected_circuittermination = None