diff --git a/netbox_lifecycle/__init__.py b/netbox_lifecycle/__init__.py index 6a4ce28..851ecca 100644 --- a/netbox_lifecycle/__init__.py +++ b/netbox_lifecycle/__init__.py @@ -28,9 +28,7 @@ def ready(self): from django.contrib.contenttypes.fields import GenericRelation from dcim.models import DeviceType, ModuleType - from netbox_lifecycle.models import ( - HardwareLifecycle, - ) # ,SupportContractAssignment + from netbox_lifecycle.models import HardwareLifecycle # Add Generic Relations to appropriate models GenericRelation( diff --git a/netbox_lifecycle/api/_serializers/hardware.py b/netbox_lifecycle/api/_serializers/hardware.py index 98c86a4..5121179 100644 --- a/netbox_lifecycle/api/_serializers/hardware.py +++ b/netbox_lifecycle/api/_serializers/hardware.py @@ -1,11 +1,9 @@ from django.contrib.contenttypes.models import ContentType -from drf_spectacular.utils import extend_schema_field from rest_framework import serializers from netbox.api.fields import ContentTypeField from netbox.api.serializers import NetBoxModelSerializer from netbox_lifecycle.models import HardwareLifecycle -from utilities.api import get_serializer_for_model __all__ = ('HardwareLifecycleSerializer',) @@ -53,9 +51,3 @@ class Meta: 'assigned_object_id', 'end_of_sale', ) - - @extend_schema_field(serializers.JSONField(allow_null=True)) - def get_assigned_object(self, instance): - serializer = get_serializer_for_model(instance.assigned_object) - context = {'request': self.context['request']} - return serializer(instance.assigned_object, context=context, nested=True).data diff --git a/netbox_lifecycle/models/contract.py b/netbox_lifecycle/models/contract.py index 0b1c777..1857c19 100644 --- a/netbox_lifecycle/models/contract.py +++ b/netbox_lifecycle/models/contract.py @@ -6,7 +6,6 @@ from django.urls import reverse from django.utils.translation import gettext as _ -from dcim.choices import DeviceStatusChoices from netbox.models import PrimaryModel from netbox_lifecycle.constants import ( @@ -208,11 +207,6 @@ def status(self): return CONTRACT_STATUS_EXPIRED return CONTRACT_STATUS_ACTIVE - def get_device_status_color(self): - if self.device is None: - return - return DeviceStatusChoices.colors.get(self.device.status) - def clean(self): has_hardware = self.device or self.module has_license = self.license diff --git a/netbox_lifecycle/models/netbox_polymprohic.py b/netbox_lifecycle/models/netbox_polymprohic.py deleted file mode 100644 index 7260bf3..0000000 --- a/netbox_lifecycle/models/netbox_polymprohic.py +++ /dev/null @@ -1,17 +0,0 @@ -from polymorphic.models import PolymorphicModel -from polymorphic.query import PolymorphicQuerySet - -from netbox.models import NetBoxModel - -from utilities.querysets import RestrictedQuerySet - - -class RestrictedPolymorphicQuerySet(PolymorphicQuerySet, RestrictedQuerySet): - pass - - -class NetBoxPolymorphicModel(NetBoxModel, PolymorphicModel): - objects = RestrictedPolymorphicQuerySet.as_manager() - - class Meta: - abstract = True diff --git a/netbox_lifecycle/tests/test_api.py b/netbox_lifecycle/tests/test_api.py index 0770e98..37047fa 100644 --- a/netbox_lifecycle/tests/test_api.py +++ b/netbox_lifecycle/tests/test_api.py @@ -2,6 +2,7 @@ from rest_framework import status from dcim.models import Manufacturer, DeviceType, Module, ModuleBay, ModuleType +from extras.models import Tag from utilities.testing import APIViewTestCases, APITestCase, create_test_device from netbox_lifecycle.models import * @@ -48,6 +49,20 @@ def setUpTestData(cls): ] Vendor.objects.bulk_create(vendors) + def test_create_vendor_with_tags(self): + """Test creating a vendor with tags via the API.""" + self.add_permissions('netbox_lifecycle.add_vendor') + Tag.objects.create(name='Test Tag', slug='test-tag') + url = reverse('plugins-api:netbox_lifecycle-api:vendor-list') + data = { + 'name': 'Vendor with Tags', + 'tags': [{'name': 'Test Tag'}], + } + response = self.client.post(url, data, format='json', **self.header) + self.assertHttpStatus(response, status.HTTP_201_CREATED) + self.assertEqual(len(response.data['tags']), 1) + self.assertEqual(response.data['tags'][0]['name'], 'Test Tag') + class LicenseTest(APIViewTestCases.APIViewTestCase): model = License diff --git a/netbox_lifecycle/views/contract.py b/netbox_lifecycle/views/contract.py index 4320d7c..e23b6a9 100644 --- a/netbox_lifecycle/views/contract.py +++ b/netbox_lifecycle/views/contract.py @@ -10,7 +10,6 @@ from netbox_lifecycle.filtersets import ( SupportContractFilterSet, VendorFilterSet, - # LicenseAssignmentFilterSet, SupportContractAssignmentFilterSet, SupportSKUFilterSet, ) @@ -31,14 +30,12 @@ from netbox_lifecycle.models import ( SupportContract, Vendor, - # LicenseAssignment, SupportContractAssignment, SupportSKU, ) from netbox_lifecycle.tables import ( SupportContractTable, VendorTable, - # LicenseAssignmentTable, SupportContractAssignmentTable, SupportSKUTable, )