1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

Remove FieldChoicesViewSet

This commit is contained in:
Jeremy Stretch
2020-03-12 10:48:17 -04:00
parent 997247ee77
commit ea9de37dd1
15 changed files with 7 additions and 167 deletions

View File

@@ -371,49 +371,3 @@ class ModelViewSet(_ModelViewSet):
logger = logging.getLogger('netbox.api.views.ModelViewSet')
logger.info(f"Deleting {instance} (PK: {instance.pk})")
return super().perform_destroy(instance)
class FieldChoicesViewSet(ViewSet):
"""
Expose the built-in numeric values which represent static choices for a model's field.
"""
permission_classes = [IsAuthenticatedOrLoginNotRequired]
fields = []
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
# Compile a dict of all fields in this view
self._fields = OrderedDict()
for serializer_class, field_list in self.fields:
for field_name in field_list:
model_name = serializer_class.Meta.model._meta.verbose_name
key = ':'.join([model_name.lower().replace(' ', '-'), field_name])
serializer = serializer_class()
choices = []
for k, v in serializer.get_fields()[field_name].choices.items():
if type(v) in [list, tuple]:
for k2, v2 in v:
choices.append({
'value': k2,
'label': v2,
})
else:
choices.append({
'value': k,
'label': v,
})
self._fields[key] = choices
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 "Field Choices"