mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-16 16:52:17 -06:00
Add deserialize_object() to Cable
This commit is contained in:
@@ -18,7 +18,7 @@ from utilities.conversion import to_meters
|
|||||||
from utilities.exceptions import AbortRequest
|
from utilities.exceptions import AbortRequest
|
||||||
from utilities.fields import ColorField, GenericArrayForeignKey
|
from utilities.fields import ColorField, GenericArrayForeignKey
|
||||||
from utilities.querysets import RestrictedQuerySet
|
from utilities.querysets import RestrictedQuerySet
|
||||||
from utilities.serialization import serialize_object
|
from utilities.serialization import deserialize_object, serialize_object
|
||||||
from wireless.models import WirelessLink
|
from wireless.models import WirelessLink
|
||||||
from .device_components import FrontPort, RearPort, PathEndpoint
|
from .device_components import FrontPort, RearPort, PathEndpoint
|
||||||
|
|
||||||
@@ -108,6 +108,8 @@ class Cable(PrimaryModel):
|
|||||||
# Cache the original status so we can check later if it's been changed
|
# Cache the original status so we can check later if it's been changed
|
||||||
self._orig_status = self.__dict__.get('status')
|
self._orig_status = self.__dict__.get('status')
|
||||||
|
|
||||||
|
self._a_terminations = []
|
||||||
|
self._b_terminations = []
|
||||||
self._terminations_modified = False
|
self._terminations_modified = False
|
||||||
|
|
||||||
# Assign or retrieve A/B terminations
|
# Assign or retrieve A/B terminations
|
||||||
@@ -251,6 +253,24 @@ class Cable(PrimaryModel):
|
|||||||
|
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def deserialize_object(cls, data, pk=None):
|
||||||
|
a_terminations = data.pop('a_terminations', [])
|
||||||
|
b_terminations = data.pop('b_terminations', [])
|
||||||
|
|
||||||
|
instance = deserialize_object(cls, data, pk=pk)
|
||||||
|
|
||||||
|
# Assign A & B termination objects to the Cable instance
|
||||||
|
queryset = CableTermination.objects.prefetch_related('termination')
|
||||||
|
instance.a_terminations = [
|
||||||
|
ct.termination for ct in queryset.filter(pk__in=a_terminations)
|
||||||
|
]
|
||||||
|
instance.b_terminations = [
|
||||||
|
ct.termination for ct in queryset.filter(pk__in=b_terminations)
|
||||||
|
]
|
||||||
|
|
||||||
|
return instance
|
||||||
|
|
||||||
def get_terminations(self):
|
def get_terminations(self):
|
||||||
"""
|
"""
|
||||||
Return two dictionaries mapping A & B side terminating objects to their corresponding CableTerminations
|
Return two dictionaries mapping A & B side terminating objects to their corresponding CableTerminations
|
||||||
|
|||||||
Reference in New Issue
Block a user