Просмотр исходного кода

CircuitTermination should inherit from CableTermination

Jeremy Stretch 7 лет назад
Родитель
Сommit
3420b5fbdf
3 измененных файлов с 12 добавлено и 4 удалено
  1. 7 2
      netbox/circuits/migrations/0013_cables.py
  2. 2 1
      netbox/circuits/models.py
  3. 3 1
      netbox/dcim/models.py

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

@@ -57,7 +57,7 @@ class Migration(migrations.Migration):
 
 
     operations = [
     operations = [
 
 
-        # Add CircuitTermination.connected_endpoint
+        # Add new CircuitTermination fields
         migrations.AddField(
         migrations.AddField(
             model_name='circuittermination',
             model_name='circuittermination',
             name='connected_endpoint',
             name='connected_endpoint',
@@ -68,11 +68,16 @@ class Migration(migrations.Migration):
             name='connection_status',
             name='connection_status',
             field=models.NullBooleanField(default=True),
             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
         # Copy CircuitTermination connections to Interfaces as Cables
         migrations.RunPython(circuit_terminations_to_cables),
         migrations.RunPython(circuit_terminations_to_cables),
 
 
-        # Model changes
+        # Remove interface field from CircuitTermination
         migrations.RemoveField(
         migrations.RemoveField(
             model_name='circuittermination',
             model_name='circuittermination',
             name='interface',
             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.constants import CONNECTION_STATUS_CHOICES, CONNECTION_STATUS_CONNECTED, STATUS_CLASSES
 from dcim.fields import ASNField
 from dcim.fields import ASNField
+from dcim.models import CableTermination
 from extras.models import CustomFieldModel, ObjectChange
 from extras.models import CustomFieldModel, ObjectChange
 from utilities.models import ChangeLoggedModel
 from utilities.models import ChangeLoggedModel
 from utilities.utils import serialize_object
 from utilities.utils import serialize_object
@@ -211,7 +212,7 @@ class Circuit(ChangeLoggedModel, CustomFieldModel):
         return self._get_termination('Z')
         return self._get_termination('Z')
 
 
 
 
-class CircuitTermination(models.Model):
+class CircuitTermination(CableTermination):
     circuit = models.ForeignKey(
     circuit = models.ForeignKey(
         to='circuits.Circuit',
         to='circuits.Circuit',
         on_delete=models.CASCADE,
         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 taggit.managers import TaggableManager
 from timezone_field import TimeZoneField
 from timezone_field import TimeZoneField
 
 
-from circuits.models import Circuit, CircuitTermination
 from extras.models import ConfigContextModel, CustomFieldModel, ObjectChange
 from extras.models import ConfigContextModel, CustomFieldModel, ObjectChange
 from utilities.fields import ColorField, NullableCharField
 from utilities.fields import ColorField, NullableCharField
 from utilities.managers import NaturalOrderByManager
 from utilities.managers import NaturalOrderByManager
@@ -336,6 +335,7 @@ class Site(ChangeLoggedModel, CustomFieldModel):
 
 
     @property
     @property
     def count_circuits(self):
     def count_circuits(self):
+        from circuits.models import Circuit
         return Circuit.objects.filter(terminations__site=self).count()
         return Circuit.objects.filter(terminations__site=self).count()
 
 
     @property
     @property
@@ -2023,6 +2023,8 @@ class Interface(CableTermination, ComponentModel):
 
 
     @connected_endpoint.setter
     @connected_endpoint.setter
     def connected_endpoint(self, value):
     def connected_endpoint(self, value):
+        from circuits.models import CircuitTermination
+
         if value is None:
         if value is None:
             self._connected_interface = None
             self._connected_interface = None
             self._connected_circuittermination = None
             self._connected_circuittermination = None