Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions netbox_lifecycle/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
8 changes: 0 additions & 8 deletions netbox_lifecycle/api/_serializers/hardware.py
Original file line number Diff line number Diff line change
@@ -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',)
Expand Down Expand Up @@ -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
6 changes: 0 additions & 6 deletions netbox_lifecycle/models/contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 (
Expand Down Expand Up @@ -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
Expand Down
17 changes: 0 additions & 17 deletions netbox_lifecycle/models/netbox_polymprohic.py

This file was deleted.

15 changes: 15 additions & 0 deletions netbox_lifecycle/tests/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -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 *
Expand Down Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions netbox_lifecycle/views/contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
from netbox_lifecycle.filtersets import (
SupportContractFilterSet,
VendorFilterSet,
# LicenseAssignmentFilterSet,
SupportContractAssignmentFilterSet,
SupportSKUFilterSet,
)
Expand All @@ -31,14 +30,12 @@
from netbox_lifecycle.models import (
SupportContract,
Vendor,
# LicenseAssignment,
SupportContractAssignment,
SupportSKU,
)
from netbox_lifecycle.tables import (
SupportContractTable,
VendorTable,
# LicenseAssignmentTable,
SupportContractAssignmentTable,
SupportSKUTable,
)
Expand Down