Skip to content

Commit 72646a6

Browse files
authored
Update PluginMenuItem permissions and remove bulk import/edit (#41)
Closes #37
1 parent 86215f4 commit 72646a6

13 files changed

+18
-212
lines changed

netbox_slm/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
from netbox.plugins import PluginConfig
22

3-
__version__ = "1.6.0"
3+
__version__ = "1.7.0"
44

55

66
class SLMConfig(PluginConfig):

netbox_slm/forms/__init__.py

+4-24
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,4 @@
1-
from .software_license import (
2-
SoftwareLicenseForm,
3-
SoftwareLicenseFilterForm,
4-
SoftwareLicenseImportForm,
5-
SoftwareLicenseBulkEditForm,
6-
)
7-
from .software_product import (
8-
SoftwareProductForm,
9-
SoftwareProductFilterForm,
10-
SoftwareProductImportForm,
11-
SoftwareProductBulkEditForm,
12-
)
13-
from .software_product_installation import (
14-
SoftwareProductInstallationForm,
15-
SoftwareProductInstallationFilterForm,
16-
SoftwareProductInstallationImportForm,
17-
SoftwareProductInstallationBulkEditForm,
18-
)
19-
from .software_product_version import (
20-
SoftwareProductVersionForm,
21-
SoftwareProductVersionFilterForm,
22-
SoftwareProductVersionImportForm,
23-
SoftwareProductVersionBulkEditForm,
24-
)
1+
from .software_license import SoftwareLicenseForm, SoftwareLicenseFilterForm
2+
from .software_product import SoftwareProductForm, SoftwareProductFilterForm
3+
from .software_product_installation import SoftwareProductInstallationForm, SoftwareProductInstallationFilterForm
4+
from .software_product_version import SoftwareProductVersionForm, SoftwareProductVersionFilterForm

netbox_slm/forms/software_license.py

+1-23
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from django.forms import DateField
22
from django.urls import reverse_lazy
33

4-
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
4+
from netbox.forms import NetBoxModelForm, NetBoxModelFilterSetForm
55
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion, SoftwareProductInstallation, SoftwareLicense
66
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField, LaxURLField
77
from utilities.forms.rendering import FieldSet
@@ -65,25 +65,3 @@ class SoftwareLicenseFilterForm(NetBoxModelFilterSetForm):
6565
model = SoftwareLicense
6666
fieldsets = (FieldSet(None, ("q", "tag")),)
6767
tag = TagFilterField(model)
68-
69-
70-
class SoftwareLicenseImportForm(NetBoxModelImportForm):
71-
class Meta:
72-
model = SoftwareLicense
73-
fields = (
74-
"name",
75-
"description",
76-
"type",
77-
"stored_location",
78-
"stored_location_url",
79-
"start_date",
80-
"expiration_date",
81-
)
82-
83-
84-
class SoftwareLicenseBulkEditForm(NetBoxModelBulkEditForm):
85-
software_product = DynamicModelChoiceField(queryset=SoftwareProduct.objects.all(), required=False)
86-
version = DynamicModelChoiceField(queryset=SoftwareProductVersion.objects.all(), required=False)
87-
installation = DynamicModelChoiceField(queryset=SoftwareProductInstallation.objects.all(), required=False)
88-
model = SoftwareLicense
89-
fieldsets = (FieldSet(None, ("software_product", "version", "installation")),)

netbox_slm/forms/software_product.py

+1-24
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
1-
from django import forms
2-
31
from dcim.models import Manufacturer
4-
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
2+
from netbox.forms import NetBoxModelForm, NetBoxModelFilterSetForm
53
from netbox_slm.models import SoftwareProduct
64
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
75
from utilities.forms.rendering import FieldSet
@@ -32,24 +30,3 @@ class SoftwareProductFilterForm(NetBoxModelFilterSetForm):
3230
model = SoftwareProduct
3331
fieldsets = (FieldSet(None, ("q", "tag")),)
3432
tag = TagFilterField(model)
35-
36-
37-
class SoftwareProductImportForm(NetBoxModelImportForm):
38-
class Meta:
39-
model = SoftwareProduct
40-
fields = (
41-
"name",
42-
"description",
43-
"manufacturer",
44-
)
45-
46-
47-
class SoftwareProductBulkEditForm(NetBoxModelBulkEditForm):
48-
pk = forms.ModelMultipleChoiceField(
49-
queryset=SoftwareProduct.objects.all(),
50-
widget=forms.MultipleHiddenInput(),
51-
)
52-
53-
class Meta:
54-
model = SoftwareProduct
55-
nullable_fields = []

netbox_slm/forms/software_product_installation.py

+3-16
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
from django import forms
1+
from django.forms import ValidationError
22
from django.urls import reverse_lazy
33

44
from dcim.models import Device
5-
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
5+
from netbox.forms import NetBoxModelForm, NetBoxModelFilterSetForm
66
from netbox_slm.models import SoftwareProductInstallation, SoftwareProduct, SoftwareProductVersion
77
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
88
from utilities.forms.rendering import FieldSet
@@ -48,7 +48,7 @@ def clean_version(self):
4848
version = self.cleaned_data["version"]
4949
software_product = self.cleaned_data["software_product"]
5050
if version not in software_product.softwareproductversion_set.all():
51-
raise forms.ValidationError(
51+
raise ValidationError(
5252
f"Version '{version}' doesn't exist on {software_product}, make sure you've "
5353
f"selected a compatible version or first select the software product."
5454
)
@@ -59,16 +59,3 @@ class SoftwareProductInstallationFilterForm(NetBoxModelFilterSetForm):
5959
model = SoftwareProductInstallation
6060
fieldsets = (FieldSet(None, ("q", "tag")),)
6161
tag = TagFilterField(model)
62-
63-
64-
class SoftwareProductInstallationImportForm(NetBoxModelImportForm):
65-
class Meta:
66-
model = SoftwareProductInstallation
67-
fields = tuple()
68-
69-
70-
class SoftwareProductInstallationBulkEditForm(NetBoxModelBulkEditForm):
71-
software_product = DynamicModelChoiceField(queryset=SoftwareProduct.objects.all(), required=False)
72-
version = DynamicModelChoiceField(queryset=SoftwareProductVersion.objects.all(), required=False)
73-
model = SoftwareProductInstallation
74-
fieldsets = (FieldSet(None, ("software_product", "version")),)

netbox_slm/forms/software_product_version.py

+4-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
from django import forms
1+
from django.forms import DateField
22
from django.urls import reverse_lazy
33

4-
from netbox.forms import NetBoxModelForm, NetBoxModelImportForm, NetBoxModelBulkEditForm, NetBoxModelFilterSetForm
4+
from netbox.forms import NetBoxModelForm, NetBoxModelFilterSetForm
55
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
66
from utilities.forms.fields import CommentField, DynamicModelChoiceField, TagFilterField
77
from utilities.forms.rendering import FieldSet
@@ -13,8 +13,8 @@ class SoftwareProductVersionForm(NetBoxModelForm):
1313

1414
comments = CommentField()
1515

16-
release_date = forms.DateField(required=False, widget=DatePicker())
17-
end_of_support = forms.DateField(required=False, widget=DatePicker())
16+
release_date = DateField(required=False, widget=DatePicker())
17+
end_of_support = DateField(required=False, widget=DatePicker())
1818

1919
software_product = DynamicModelChoiceField(
2020
queryset=SoftwareProduct.objects.all(),
@@ -42,20 +42,3 @@ class SoftwareProductVersionFilterForm(NetBoxModelFilterSetForm):
4242
model = SoftwareProductVersion
4343
fieldsets = (FieldSet(None, ("q", "tag")),)
4444
tag = TagFilterField(model)
45-
46-
47-
class SoftwareProductVersionImportForm(NetBoxModelImportForm):
48-
class Meta:
49-
model = SoftwareProductVersion
50-
fields = ("name",)
51-
52-
53-
class SoftwareProductVersionBulkEditForm(NetBoxModelBulkEditForm):
54-
pk = forms.ModelMultipleChoiceField(
55-
queryset=SoftwareProduct.objects.all(),
56-
widget=forms.MultipleHiddenInput(),
57-
)
58-
59-
class Meta:
60-
model = SoftwareProductVersion
61-
nullable_fields = []

netbox_slm/navigation.py

+4-24
Original file line numberDiff line numberDiff line change
@@ -4,73 +4,53 @@
44
PluginMenuItem(
55
link="plugins:netbox_slm:softwareproduct_list",
66
link_text="Software Products",
7+
permissions=["netbox_slm.add_softwareproduct"],
78
buttons=(
89
PluginMenuButton(
910
"plugins:netbox_slm:softwareproduct_add",
1011
"Add",
1112
"mdi mdi-plus-thick",
1213
permissions=["netbox_slm.add_softwareproduct"],
1314
),
14-
PluginMenuButton(
15-
"plugins:netbox_slm:softwareproduct_import",
16-
"Import",
17-
"mdi mdi-upload",
18-
permissions=["netbox_slm.add_softwareproduct"],
19-
),
2015
),
2116
),
2217
PluginMenuItem(
2318
link="plugins:netbox_slm:softwareproductversion_list",
2419
link_text="Versions",
20+
permissions=["netbox_slm.add_softwareproductversion"],
2521
buttons=(
2622
PluginMenuButton(
2723
"plugins:netbox_slm:softwareproductversion_add",
2824
"Add",
2925
"mdi mdi-plus-thick",
3026
permissions=["netbox_slm.add_softwareproductversion"],
3127
),
32-
PluginMenuButton(
33-
"plugins:netbox_slm:softwareproductversion_import",
34-
"Import",
35-
"mdi mdi-upload",
36-
permissions=["netbox_slm.add_softwareproductversion"],
37-
),
3828
),
3929
),
4030
PluginMenuItem(
4131
link="plugins:netbox_slm:softwareproductinstallation_list",
4232
link_text="Installations",
33+
permissions=["netbox_slm.add_softwareproductinstallation"],
4334
buttons=(
4435
PluginMenuButton(
4536
"plugins:netbox_slm:softwareproductinstallation_add",
4637
"Add",
4738
"mdi mdi-plus-thick",
4839
permissions=["netbox_slm.add_softwareproductinstallation"],
4940
),
50-
PluginMenuButton(
51-
"plugins:netbox_slm:softwareproductinstallation_import",
52-
"Import",
53-
"mdi mdi-upload",
54-
permissions=["netbox_slm.add_softwareproductinstallation"],
55-
),
5641
),
5742
),
5843
PluginMenuItem(
5944
link="plugins:netbox_slm:softwarelicense_list",
6045
link_text="Licenses",
46+
permissions=["netbox_slm.add_softwarelicense"],
6147
buttons=(
6248
PluginMenuButton(
6349
"plugins:netbox_slm:softwarelicense_add",
6450
"Add",
6551
"mdi mdi-plus-thick",
6652
permissions=["netbox_slm.add_softwarelicense"],
6753
),
68-
PluginMenuButton(
69-
"plugins:netbox_slm:softwarelicense_import",
70-
"Import",
71-
"mdi mdi-upload",
72-
permissions=["netbox_slm.add_softwarelicense"],
73-
),
7454
),
7555
),
7656
)

netbox_slm/urls.py

-18
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
# SoftwareProduct
99
path("software-products/", views.SoftwareProductListView.as_view(), name="softwareproduct_list"),
1010
path("software-products/add/", views.SoftwareProductEditView.as_view(), name="softwareproduct_add"),
11-
path("software-products/import/", views.SoftwareProductBulkImportView.as_view(), name="softwareproduct_import"),
12-
path("software-products/edit/", views.SoftwareProductBulkEditView.as_view(), name="softwareproduct_bulk_edit"),
1311
path(
1412
"software-products/delete/", views.SoftwareProductBulkDeleteView.as_view(), name="softwareproduct_bulk_delete"
1513
),
@@ -27,10 +25,6 @@
2725
# SoftwareProductVersion
2826
path("versions/", views.SoftwareProductVersionListView.as_view(), name="softwareproductversion_list"),
2927
path("versions/add/", views.SoftwareProductVersionEditView.as_view(), name="softwareproductversion_add"),
30-
path(
31-
"versions/import/", views.SoftwareProductVersionBulkImportView.as_view(), name="softwareproductversion_import"
32-
),
33-
path("versions/edit/", views.SoftwareProductVersionBulkEditView.as_view(), name="softwareproductversion_bulk_edit"),
3428
path(
3529
"versions/delete/",
3630
views.SoftwareProductVersionBulkDeleteView.as_view(),
@@ -60,16 +54,6 @@
6054
views.SoftwareProductInstallationEditView.as_view(),
6155
name="softwareproductinstallation_add",
6256
),
63-
path(
64-
"installations/import/",
65-
views.SoftwareProductInstallationBulkImportView.as_view(),
66-
name="softwareproductinstallation_import",
67-
),
68-
path(
69-
"installations/edit/",
70-
views.SoftwareProductInstallationBulkEditView.as_view(),
71-
name="softwareproductinstallation_bulk_edit",
72-
),
7357
path(
7458
"installations/delete/",
7559
views.SoftwareProductInstallationBulkDeleteView.as_view(),
@@ -99,8 +83,6 @@
9983
# SoftwareLicense
10084
path("licenses/", views.SoftwareLicenseListView.as_view(), name="softwarelicense_list"),
10185
path("licenses/add/", views.SoftwareLicenseEditView.as_view(), name="softwarelicense_add"),
102-
path("licenses/import/", views.SoftwareLicenseBulkImportView.as_view(), name="softwarelicense_import"),
103-
path("licenses/edit/", views.SoftwareLicenseBulkEditView.as_view(), name="softwarelicense_bulk_edit"),
10486
path("licenses/delete/", views.SoftwareLicenseBulkDeleteView.as_view(), name="softwarelicense_bulk_delete"),
10587
path("licenses/<int:pk>/", views.SoftwareLicenseView.as_view(), name="softwarelicense"),
10688
path("licenses/<int:pk>/delete/", views.SoftwareLicenseDeleteView.as_view(), name="softwarelicense_delete"),

netbox_slm/views/__init__.py

-8
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,26 @@
33
SoftwareLicenseView,
44
SoftwareLicenseEditView,
55
SoftwareLicenseDeleteView,
6-
SoftwareLicenseBulkImportView,
7-
SoftwareLicenseBulkEditView,
86
SoftwareLicenseBulkDeleteView,
97
)
108
from .software_product import (
119
SoftwareProductListView,
1210
SoftwareProductView,
1311
SoftwareProductEditView,
1412
SoftwareProductDeleteView,
15-
SoftwareProductBulkImportView,
16-
SoftwareProductBulkEditView,
1713
SoftwareProductBulkDeleteView,
1814
)
1915
from .software_product_installation import (
2016
SoftwareProductInstallationListView,
2117
SoftwareProductInstallationView,
2218
SoftwareProductInstallationEditView,
2319
SoftwareProductInstallationDeleteView,
24-
SoftwareProductInstallationBulkImportView,
25-
SoftwareProductInstallationBulkEditView,
2620
SoftwareProductInstallationBulkDeleteView,
2721
)
2822
from .software_product_version import (
2923
SoftwareProductVersionListView,
3024
SoftwareProductVersionView,
3125
SoftwareProductVersionEditView,
3226
SoftwareProductVersionDeleteView,
33-
SoftwareProductVersionBulkImportView,
34-
SoftwareProductVersionBulkEditView,
3527
SoftwareProductVersionBulkDeleteView,
3628
)

netbox_slm/views/software_license.py

-13
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,6 @@ class SoftwareLicenseDeleteView(generic.ObjectDeleteView):
3131
queryset = SoftwareLicense.objects.all()
3232

3333

34-
class SoftwareLicenseBulkImportView(generic.BulkImportView):
35-
queryset = SoftwareLicense.objects.all()
36-
model_form = forms.SoftwareLicenseImportForm
37-
table = tables.SoftwareLicenseTable
38-
39-
40-
class SoftwareLicenseBulkEditView(generic.BulkEditView):
41-
queryset = SoftwareLicense.objects.all()
42-
filterset = filtersets.SoftwareLicenseFilterSet
43-
table = tables.SoftwareLicenseTable
44-
form = forms.SoftwareLicenseBulkEditForm
45-
46-
4734
class SoftwareLicenseBulkDeleteView(generic.BulkDeleteView):
4835
queryset = SoftwareLicense.objects.all()
4936
table = tables.SoftwareLicenseTable

netbox_slm/views/software_product.py

-14
Original file line numberDiff line numberDiff line change
@@ -35,20 +35,6 @@ class SoftwareProductDeleteView(generic.ObjectDeleteView):
3535
queryset = SoftwareProduct.objects.all()
3636

3737

38-
class SoftwareProductBulkImportView(generic.BulkImportView):
39-
queryset = SoftwareProduct.objects.all()
40-
model_form = forms.SoftwareProductImportForm
41-
table = tables.SoftwareProductTable
42-
43-
44-
class SoftwareProductBulkEditView(generic.BulkEditView):
45-
queryset = SoftwareProduct.objects.all()
46-
filterset = filtersets.SoftwareProductFilterSet
47-
filterset_form = forms.SoftwareProductFilterForm
48-
table = tables.SoftwareProductTable
49-
form = forms.SoftwareProductBulkEditForm
50-
51-
5238
class SoftwareProductBulkDeleteView(generic.BulkDeleteView):
5339
queryset = SoftwareProduct.objects.all()
5440
table = tables.SoftwareProductTable

0 commit comments

Comments
 (0)