wip installation model

This commit is contained in:
Hedde van der Heide
2021-12-08 15:36:47 +01:00
parent 76b0dd2c5d
commit 92a1a58eb0
12 changed files with 430 additions and 19 deletions
+17 -1
View File
@@ -5,7 +5,7 @@ from netbox.api.serializers import PrimaryModelSerializer, OrganizationalModelSe
# NestedRecordSerializer,
# NestedNameServerSerializer,
# )
from netbox_slm.models import SoftwareProduct
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
class SoftwareProductSerializer(PrimaryModelSerializer):
@@ -22,3 +22,19 @@ class SoftwareProductSerializer(PrimaryModelSerializer):
def get_display(self, obj):
return obj.name
class SoftwareProductVersionSerializer(PrimaryModelSerializer):
display = serializers.SerializerMethodField()
url = serializers.HyperlinkedIdentityField(
view_name="plugins-api:netbox_slm-api:softwareproductversion-detail"
)
class Meta:
model = SoftwareProductVersion
fields = [
'id', 'display', 'url', 'name', 'software_product', 'tags', 'custom_field_data', 'created', 'last_updated',
]
def get_display(self, obj):
return obj.name
+3 -1
View File
@@ -1,11 +1,13 @@
from netbox.api import OrderedDefaultRouter
from netbox_slm.api.views import (
NetboxSLMRootView,
SoftwareProductViewSet
SoftwareProductViewSet,
SoftwareProductVersionViewSet,
)
router = OrderedDefaultRouter()
router.APIRootView = NetboxSLMRootView
router.register("softwareproducts", SoftwareProductViewSet)
router.register("softwareproductversions", SoftwareProductVersionViewSet)
urlpatterns = router.urls
+15 -3
View File
@@ -4,9 +4,9 @@ from rest_framework.response import Response
from rest_framework.routers import APIRootView
from extras.api.views import CustomFieldModelViewSet
from netbox_slm.api.serializers import SoftwareProductSerializer
from netbox_slm.filters import SoftwareProductFilter
from netbox_slm.models import SoftwareProduct
from netbox_slm.api.serializers import SoftwareProductSerializer, SoftwareProductVersionSerializer
from netbox_slm.filters import SoftwareProductFilter, SoftwareProductVersionFilter
from netbox_slm.models import SoftwareProduct, SoftwareProductVersion
class NetboxSLMRootView(APIRootView):
@@ -29,4 +29,16 @@ class SoftwareProductViewSet(CustomFieldModelViewSet):
# serializer = RecordSerializer(records, many=True, context={"request": request})
# return Response(serializer.data)
class SoftwareProductVersionViewSet(CustomFieldModelViewSet):
queryset = SoftwareProductVersion.objects.all()
serializer_class = SoftwareProductVersionSerializer
filterset_class = SoftwareProductVersionFilter
# @action(detail=True, methods=["get"])
# def records(self, request, pk=None):
# records = Record.objects.filter(zone=pk)
# serializer = RecordSerializer(records, many=True, context={"request": request})
# return Response(serializer.data)
# for reference: https://github.com/auroraresearchlab/netbox-dns/blob/main/netbox_dns/api/views.py