Skip to content

Commit

Permalink
Merge pull request #121 from ArnesSI/nb36
Browse files Browse the repository at this point in the history
netbox 3.6 compatibility
  • Loading branch information
matejv authored Sep 3, 2023
2 parents 383be3e + 1ae768e commit 0b6db81
Show file tree
Hide file tree
Showing 15 changed files with 45 additions and 36 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ jobs:
strategy:
fail-fast: false
matrix:
netbox-version: ["v3.5.8"]
netbox-version: ["v3.6.0"]
services:
redis:
image: redis
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ support older netbox version as per table below:
| 3.3 | 1.1.x |
| 3.4 | 1.2.x |
| 3.5 | 1.3.x & 1.4.x |
| 3.6 | 1.5.x |

## Installing

Expand Down
2 changes: 1 addition & 1 deletion netbox_inventory/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ class NetBoxInventoryConfig(PluginConfig):
author = 'Matej Vadnjal'
author_email = 'matej.vadnjal@arnes.si'
base_url = 'inventory'
min_version = '3.5.2'
min_version = '3.6.0'
default_settings = {
'top_level_menu': True,
'used_status_name': 'used',
Expand Down
7 changes: 6 additions & 1 deletion netbox_inventory/forms/assign.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,6 @@ class AssetAssignMixin(forms.Form):
required=False,
help_text=Asset._meta.get_field('contact').help_text,
)
tags = None

def _clean_hardware_type(self, kind):
hardware_type = self.cleaned_data[f'{kind}_type']
Expand Down Expand Up @@ -61,6 +60,12 @@ def _clean_hardware(self, kind):
setattr(self.instance, kind, hardware)
return hardware

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

# remove tags field from form
self.fields.pop('tags')


class AssetDeviceAssignForm(AssetAssignMixin, NetBoxModelForm):
site = DynamicModelChoiceField(
Expand Down
4 changes: 2 additions & 2 deletions netbox_inventory/forms/bulk.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from netbox.forms import NetBoxModelBulkEditForm, NetBoxModelImportForm
from utilities.forms import add_blank_choice
from utilities.forms.fields import (
ChoiceField, CommentField, CSVChoiceField, CSVModelChoiceField,
CommentField, CSVChoiceField, CSVModelChoiceField,
DynamicModelChoiceField
)
from tenancy.models import Contact, Tenant
Expand Down Expand Up @@ -34,7 +34,7 @@ class AssetBulkEditForm(NetBoxModelBulkEditForm):
name = forms.CharField(
required=False,
)
status = ChoiceField(
status = forms.ChoiceField(
choices=add_blank_choice(AssetStatusChoices),
required=False,
initial='',
Expand Down
6 changes: 3 additions & 3 deletions netbox_inventory/forms/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
from dcim.models import Device, DeviceType, Manufacturer, ModuleType, Site, Location, Rack
from netbox.forms import NetBoxModelFilterSetForm
from utilities.forms import BOOLEAN_WITH_BLANK_CHOICES
from utilities.forms.fields import DynamicModelMultipleChoiceField, MultipleChoiceField, TagFilterField
from utilities.forms.fields import DynamicModelMultipleChoiceField, TagFilterField
from utilities.forms.widgets import DatePicker
from tenancy.forms import ContactModelFilterForm
from tenancy.models import Contact, Tenant
Expand Down Expand Up @@ -43,11 +43,11 @@ class AssetFilterForm(NetBoxModelFilterSetForm):
)),
)

status = MultipleChoiceField(
status = forms.MultipleChoiceField(
choices=AssetStatusChoices,
required=False,
)
kind = MultipleChoiceField(
kind = forms.MultipleChoiceField(
choices=HardwareKindChoices,
required=False,
help_text='Type of hardware',
Expand Down
9 changes: 6 additions & 3 deletions netbox_inventory/forms/reassign.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from dcim.models import Device, InventoryItem, Module, Site, Location, Manufacturer
from netbox.forms import NetBoxModelForm
from utilities.forms.fields import DynamicModelChoiceField, ChoiceField
from utilities.forms.fields import DynamicModelChoiceField
from ..choices import AssetStatusChoices
from ..models import Asset, InventoryItemType, InventoryItemGroup
from ..utils import get_status_for
Expand All @@ -28,13 +28,12 @@ class AssetReassignMixin(forms.Form):
query_params={'site_id': '$storage_site',},
help_text='Limit New Asset choices only to assets stored at this location',
)
asset_status = ChoiceField(
asset_status = forms.ChoiceField(
choices=AssetStatusChoices,
initial=get_status_for('stored'),
label='Old Asset Status',
help_text='Status to set to existing asset that is being unassigned',
)
tags = None

class Meta:
fields = ('storage_site', 'storage_location', 'assigned_asset', 'asset_status')
Expand Down Expand Up @@ -100,6 +99,10 @@ def _clean_asset(self, asset, instance):

def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)

# remove tags field from form
self.fields.pop('tags')

try:
self.instance.assigned_asset
except Asset.DoesNotExist:
Expand Down
6 changes: 3 additions & 3 deletions netbox_inventory/tests/asset/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -142,9 +142,9 @@ def setUpTestData(cls):
module_type1 = ModuleType.objects.create(model='Module Type 1', manufacturer=manufacturer)
inventoryitem_type1 = InventoryItemType.objects.create(model='II Type 1', manufacturer=manufacturer)
site1 = Site.objects.create(name='Site 1', slug='site1')
device_role1 = DeviceRole.objects.create(name='Device Role 1', slug='devicerole1')
cls.device1 = Device.objects.create(name='Device 1', device_role=device_role1, device_type=device_type1, site=site1, status='active')
cls.device2 = Device.objects.create(name='Device 2', device_role=device_role1, device_type=device_type2, site=site1, status='active')
role1 = DeviceRole.objects.create(name='Device Role 1', slug='devicerole1')
cls.device1 = Device.objects.create(name='Device 1', role=role1, device_type=device_type1, site=site1, status='active')
cls.device2 = Device.objects.create(name='Device 2', role=role1, device_type=device_type2, site=site1, status='active')
cls.inventoryitem1 = InventoryItem.objects.create(device=cls.device1, name='II 1')
supplier1 = Supplier.objects.create(name='Supplier1', slug='supplier1')
cls.purchase1 = Purchase.objects.create(name='Purchase1', supplier=supplier1)
Expand Down
10 changes: 5 additions & 5 deletions netbox_inventory/tests/asset/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ def setUp(self):
model='device_type1',
slug='device_type1'
)
self.device_role1 = DeviceRole.objects.create(
name='device_role1',
slug='device_role1'
self.role1 = DeviceRole.objects.create(
name='role1',
slug='role1'
)
self.asset1 = Asset.objects.create(
asset_tag='asset1',
Expand All @@ -53,14 +53,14 @@ def setUp(self):
site=self.site1,
status='active',
device_type=self.device_type1,
device_role=self.device_role1,
role=self.role1,
name='device1',
)
self.device2 = Device.objects.create(
site=self.site1,
status='active',
device_type=self.device_type1,
device_role=self.device_role1,
role=self.role1,
name='device2',
)

Expand Down
8 changes: 4 additions & 4 deletions netbox_inventory/tests/asset/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,9 @@ def setUpTestData(cls):
manufacturer=manufacturer1,
u_height=1,
)
device_role1 = DeviceRole.objects.create(
name='device_role1',
slug='device_role1',
role1 = DeviceRole.objects.create(
name='role1',
slug='role1',
color='9e9e9e',
)
asset1 = Asset.objects.create(
Expand Down Expand Up @@ -116,7 +116,7 @@ def test_assign_device_from_asset(self):
)
device = Device.objects.create(
name='test-device-assign',
device_role = DeviceRole.objects.first(),
role = DeviceRole.objects.first(),
device_type=asset.device_type,
site = Site.objects.first(),
status = 'active',
Expand Down
12 changes: 6 additions & 6 deletions netbox_inventory/tests/asset/test_views_create.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ def setUp(self):
manufacturer=self.manufacturer1,
model='module_type1',
)
self.device_role1 = DeviceRole.objects.create(
name='device_role1',
slug='device_role1'
self.role1 = DeviceRole.objects.create(
name='role1',
slug='role1'
)
self.inventoryitem_type1 = InventoryItemType.objects.create(
manufacturer=self.manufacturer1,
Expand All @@ -47,7 +47,7 @@ def setUp(self):
site=self.site1,
status='active',
device_type=self.device_type1,
device_role=self.device_role1,
role=self.role1,
name='device1',
)
self.module_bay1 = ModuleBay.objects.create(
Expand Down Expand Up @@ -131,7 +131,7 @@ def setUp(self):
self.form_data = {
'site': self.site1.pk,
'device_type': self.device_type1.pk,
'device_role': self.device_role1.pk,
'role': self.role1.pk,
'status': 'active',
'name': 'tested_device',
}
Expand Down Expand Up @@ -181,7 +181,7 @@ def setUp(self):
self.form_data = {
'site': self.site1.pk,
'device_type': self.device_type1.pk,
'device_role': self.device_role1.pk,
'role': self.role1.pk,
'status': 'active',
'name': 'tested_device',
}
Expand Down
8 changes: 4 additions & 4 deletions netbox_inventory/tests/asset/test_views_reassign.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,9 @@ def setUp(self):
manufacturer=self.manufacturer1,
model='module_type1',
)
self.device_role1 = DeviceRole.objects.create(
name='device_role1',
slug='device_role1'
self.role1 = DeviceRole.objects.create(
name='role1',
slug='role1'
)
self.inventoryitem_type1 = InventoryItemType.objects.create(
manufacturer=self.manufacturer1,
Expand All @@ -62,7 +62,7 @@ def setUp(self):
site=self.site1,
status='active',
device_type=self.device_type1,
device_role=self.device_role1,
role=self.role1,
name='device1',
)
self.module_bay1 = ModuleBay.objects.create(
Expand Down
2 changes: 1 addition & 1 deletion netbox_inventory/tests/test_load.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class NetboxDnsVersionTestCase(SimpleTestCase):
"""

def test_version(self):
assert __version__ == "1.4.3"
assert __version__ == "1.5.0"


class AppTest(APITestCase):
Expand Down
2 changes: 1 addition & 1 deletion netbox_inventory/version.py
Original file line number Diff line number Diff line change
@@ -1 +1 @@
__version__ = '1.4.3'
__version__ = '1.5.0'
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "netbox-inventory"
version = "1.4.3"
version = "1.5.0"
authors = [
{ name="Matej Vadnjal", email="matej.vadnjal@arnes.si" },
]
Expand Down

0 comments on commit 0b6db81

Please sign in to comment.