feat: integriertes Dokumentations-Wiki für NetBox hinzufügen

- Markdown-Dokumentationen direkt in NetBox erstellen
- Dokumente Standorten, Racks, Geräten, VMs und Clustern zuordnen
- DOCX-, XLSX-, PDF-, Markdown- und Textimporte unterstützen
- REST-API, Suche, Berechtigungen und Änderungsprotokoll ergänzen
- Installation, Konfiguration und Importgrenzen dokumentieren
This commit is contained in:
2026-07-22 10:23:58 +02:00
commit ab0ed26ad3
24 changed files with 764 additions and 0 deletions
+1
View File
@@ -0,0 +1 @@
+20
View File
@@ -0,0 +1,20 @@
from netbox.api.serializers import NetBoxModelSerializer
from rest_framework import serializers
from ..models import Document, DocumentAssignment
class DocumentSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name="plugins-api:netbox_documentation-api:document-detail")
class Meta:
model = Document
fields = ("id", "url", "display", "title", "slug", "summary", "body", "is_published", "tags", "created", "last_updated")
class DocumentAssignmentSerializer(NetBoxModelSerializer):
url = serializers.HyperlinkedIdentityField(view_name="plugins-api:netbox_documentation-api:documentassignment-detail")
class Meta:
model = DocumentAssignment
fields = ("id", "url", "display", "document", "assigned_object_type", "assigned_object_id", "note", "tags", "created", "last_updated")
+8
View File
@@ -0,0 +1,8 @@
from netbox.api.routers import NetBoxRouter
from . import views
router = NetBoxRouter()
router.register("documents", views.DocumentViewSet)
router.register("assignments", views.DocumentAssignmentViewSet)
urlpatterns = router.urls
+17
View File
@@ -0,0 +1,17 @@
from netbox.api.viewsets import NetBoxModelViewSet
from ..filtersets import DocumentFilterSet, AssignmentFilterSet
from ..models import Document, DocumentAssignment
from .serializers import DocumentSerializer, DocumentAssignmentSerializer
class DocumentViewSet(NetBoxModelViewSet):
queryset = Document.objects.all()
serializer_class = DocumentSerializer
filterset_class = DocumentFilterSet
class DocumentAssignmentViewSet(NetBoxModelViewSet):
queryset = DocumentAssignment.objects.all()
serializer_class = DocumentAssignmentSerializer
filterset_class = AssignmentFilterSet