1 Commits
Author SHA1 Message Date
wkoot d773a407a2 Fix filtering on foreign objects (#67)
Closes #65

Signed-off-by: wkoot <3715211+wkoot@users.noreply.github.com>
2025-04-11 12:29:03 +02:00
5 changed files with 22 additions and 16 deletions
+6
View File
@@ -2,6 +2,12 @@
## [Unreleased] ## [Unreleased]
## [1.8.1](https://github.com/ICTU/netbox_slm/releases/tag/1.8.1) - 2025-04-11
### Fixed
* Fix filtering on foreign objects (#65)
## [1.8.0](https://github.com/ICTU/netbox_slm/releases/tag/1.8.0) - 2025-02-25 ## [1.8.0](https://github.com/ICTU/netbox_slm/releases/tag/1.8.0) - 2025-02-25
### Added ### Added
+1 -1
View File
@@ -16,7 +16,7 @@ limitations under the License.
from netbox.plugins import PluginConfig from netbox.plugins import PluginConfig
__version__ = "1.8.0" __version__ = "1.8.1"
class SLMConfig(PluginConfig): class SLMConfig(PluginConfig):
+11 -11
View File
@@ -19,7 +19,7 @@ class SoftwareProductFilterSet(NetBoxModelFilterSet):
name = CharFilter(lookup_expr="icontains") name = CharFilter(lookup_expr="icontains")
description = CharFilter(lookup_expr="icontains") description = CharFilter(lookup_expr="icontains")
manufacturer = ModelMultipleChoiceFilter(queryset=Manufacturer.objects.all()) manufacturer_id = ModelMultipleChoiceFilter(queryset=Manufacturer.objects.all())
class Meta: class Meta:
model = SoftwareProduct model = SoftwareProduct
@@ -47,12 +47,12 @@ class SoftwareProductVersionFilterSet(NetBoxModelFilterSet):
release_type = MultipleChoiceFilter(choices=SoftwareReleaseTypes.choices) release_type = MultipleChoiceFilter(choices=SoftwareReleaseTypes.choices)
manufacturer = ModelMultipleChoiceFilter( manufacturer_id = ModelMultipleChoiceFilter(
field_name="software_product__manufacturer", field_name="software_product__manufacturer",
queryset=Manufacturer.objects.all(), queryset=Manufacturer.objects.all(),
) )
software_product = ModelMultipleChoiceFilter( software_product_id = ModelMultipleChoiceFilter(
queryset=SoftwareProduct.objects.all(), queryset=SoftwareProduct.objects.all(),
label="Software Product", label="Software Product",
) )
@@ -78,17 +78,17 @@ class SoftwareProductVersionFilterSet(NetBoxModelFilterSet):
class SoftwareProductInstallationFilterSet(NetBoxModelFilterSet): class SoftwareProductInstallationFilterSet(NetBoxModelFilterSet):
"""Filter capabilities for SoftwareProductInstallation instances.""" """Filter capabilities for SoftwareProductInstallation instances."""
device = ModelMultipleChoiceFilter(queryset=Device.objects.all()) device_id = ModelMultipleChoiceFilter(queryset=Device.objects.all())
virtualmachine = ModelMultipleChoiceFilter( virtualmachine_id = ModelMultipleChoiceFilter(
queryset=VirtualMachine.objects.all(), queryset=VirtualMachine.objects.all(),
label="Virtual Machine", label="Virtual Machine",
) )
cluster = ModelMultipleChoiceFilter(queryset=Cluster.objects.all()) cluster_id = ModelMultipleChoiceFilter(queryset=Cluster.objects.all())
software_product = ModelMultipleChoiceFilter( software_product_id = ModelMultipleChoiceFilter(
queryset=SoftwareProduct.objects.all(), queryset=SoftwareProduct.objects.all(),
label="Software Product", label="Software Product",
) )
version = ModelMultipleChoiceFilter(queryset=SoftwareProductVersion.objects.all()) version_id = ModelMultipleChoiceFilter(queryset=SoftwareProductVersion.objects.all())
class Meta: class Meta:
model = SoftwareProductInstallation model = SoftwareProductInstallation
@@ -116,12 +116,12 @@ class SoftwareLicenseFilterSet(NetBoxModelFilterSet):
spdx_expression = CharFilter(lookup_expr="icontains", label="SPDX expression") spdx_expression = CharFilter(lookup_expr="icontains", label="SPDX expression")
stored_location = CharFilter(lookup_expr="icontains") stored_location = CharFilter(lookup_expr="icontains")
software_product = ModelMultipleChoiceFilter( software_product_id = ModelMultipleChoiceFilter(
queryset=SoftwareProduct.objects.all(), queryset=SoftwareProduct.objects.all(),
label="Software Product", label="Software Product",
) )
version = ModelMultipleChoiceFilter(queryset=SoftwareProductVersion.objects.all()) version_id = ModelMultipleChoiceFilter(queryset=SoftwareProductVersion.objects.all())
installation = ModelMultipleChoiceFilter(queryset=SoftwareProductInstallation.objects.all()) installation_id = ModelMultipleChoiceFilter(queryset=SoftwareProductInstallation.objects.all())
class Meta: class Meta:
model = SoftwareLicense model = SoftwareLicense
@@ -12,10 +12,10 @@
{% endif %} {% endif %}
</h2> </h2>
{% if search_obj == "cluster" %} {% if search_obj == "cluster" %}
{% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" cluster=object.pk %} {% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" cluster_id=object.pk %}
{% elif search_obj == "device" %} {% elif search_obj == "device" %}
{% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" device=object.pk %} {% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" device_id=object.pk %}
{% elif search_obj == "virtualmachine" %} {% elif search_obj == "virtualmachine" %}
{% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" virtualmachine=object.pk %} {% htmx_table "plugins:netbox_slm:softwareproductinstallation_list" virtualmachine_id=object.pk %}
{% endif %} {% endif %}
</div> </div>
+1 -1
View File
@@ -2,7 +2,7 @@
sonar.organization=ictu sonar.organization=ictu
sonar.projectKey=ICTU_netbox_slm sonar.projectKey=ICTU_netbox_slm
sonar.projectName=netbox-slm sonar.projectName=netbox-slm
sonar.projectVersion=1.8.0 sonar.projectVersion=1.8.1
# Path is relative to the sonar-project.properties file # Path is relative to the sonar-project.properties file
sonar.sources=netbox_slm sonar.sources=netbox_slm