mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-15 12:08:17 -06:00
Add new api endpoint for CustomFieldChoices
This commit is contained in:
parent
6a8c935380
commit
dcfa9826d5
@ -17,6 +17,9 @@ router.APIRootView = ExtrasRootView
|
|||||||
# Field choices
|
# Field choices
|
||||||
router.register(r'_choices', views.ExtrasFieldChoicesViewSet, basename='field-choice')
|
router.register(r'_choices', views.ExtrasFieldChoicesViewSet, basename='field-choice')
|
||||||
|
|
||||||
|
# Custom field choices
|
||||||
|
router.register(r'_custom_field_choices', views.CustomFieldChoicesViewSet, base_name='custom-field-choice')
|
||||||
|
|
||||||
# Graphs
|
# Graphs
|
||||||
router.register(r'graphs', views.GraphViewSet)
|
router.register(r'graphs', views.GraphViewSet)
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
from collections import OrderedDict
|
||||||
|
|
||||||
from django.contrib.contenttypes.models import ContentType
|
from django.contrib.contenttypes.models import ContentType
|
||||||
from django.db.models import Count
|
from django.db.models import Count
|
||||||
from django.http import Http404, HttpResponse
|
from django.http import Http404, HttpResponse
|
||||||
@ -9,8 +11,8 @@ from rest_framework.viewsets import ReadOnlyModelViewSet, ViewSet
|
|||||||
|
|
||||||
from extras import filters
|
from extras import filters
|
||||||
from extras.models import (
|
from extras.models import (
|
||||||
ConfigContext, CustomField, ExportTemplate, Graph, ImageAttachment, ObjectChange, ReportResult, TopologyMap,
|
ConfigContext, CustomField, CustomFieldChoice, ExportTemplate, Graph, ImageAttachment, ObjectChange, ReportResult, TopologyMap,
|
||||||
Tag
|
Tag,
|
||||||
)
|
)
|
||||||
from extras.reports import get_report, get_reports
|
from extras.reports import get_report, get_reports
|
||||||
from utilities.api import FieldChoicesViewSet, IsAuthenticatedOrLoginNotRequired, ModelViewSet
|
from utilities.api import FieldChoicesViewSet, IsAuthenticatedOrLoginNotRequired, ModelViewSet
|
||||||
@ -28,6 +30,36 @@ class ExtrasFieldChoicesViewSet(FieldChoicesViewSet):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Custom field choices
|
||||||
|
#
|
||||||
|
|
||||||
|
class CustomFieldChoicesViewSet(ViewSet):
|
||||||
|
"""
|
||||||
|
"""
|
||||||
|
permission_classes = [IsAuthenticatedOrLoginNotRequired]
|
||||||
|
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
super(CustomFieldChoicesViewSet, self).__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
self._fields = OrderedDict()
|
||||||
|
|
||||||
|
for cfc in CustomFieldChoice.objects.all():
|
||||||
|
self._fields.setdefault(cfc.field.name, {})
|
||||||
|
self._fields[cfc.field.name][cfc.value] = cfc.pk
|
||||||
|
|
||||||
|
def list(self, request):
|
||||||
|
return Response(self._fields)
|
||||||
|
|
||||||
|
def retrieve(self, request, pk):
|
||||||
|
if pk not in self._fields:
|
||||||
|
raise Http404
|
||||||
|
return Response(self._fields[pk])
|
||||||
|
|
||||||
|
def get_view_name(self):
|
||||||
|
return "Custom Field choices"
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
# Custom fields
|
# Custom fields
|
||||||
#
|
#
|
||||||
|
Loading…
Reference in New Issue
Block a user