wip installation model
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user