CircuitTermination should inherit from CableTermination

This commit is contained in:
Jeremy Stretch 2018-10-30 14:27:45 -04:00
parent 4df74780b8
commit 3420b5fbdf
3 changed files with 12 additions and 4 deletions

View File

@ -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',

View File

@ -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,

View File

@ -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