From f53a3aa42bdb7b0dd0c41ba3cf4e73af058ec8d9 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Wed, 28 Feb 2024 16:55:23 -0500 Subject: [PATCH] Clean up obsolete logic for view/serializer resolution --- netbox/utilities/api.py | 17 +++-------------- netbox/utilities/utils.py | 19 ++++--------------- 2 files changed, 7 insertions(+), 29 deletions(-) diff --git a/netbox/utilities/api.py b/netbox/utilities/api.py index ef9a5d724..25a350c81 100644 --- a/netbox/utilities/api.py +++ b/netbox/utilities/api.py @@ -31,24 +31,13 @@ def get_serializer_for_model(model, prefix=''): """ Dynamically resolve and return the appropriate serializer for a model. """ - app_name, model_name = model._meta.label.split('.') - # TODO: Remove this logic - # Serializers for Django's auth models are in the users app - if app_name == 'auth': - app_name = 'users' - # Account for changes using Proxy model - if app_name == 'users': - if model_name == 'NetBoxUser': - model_name = 'User' - elif model_name == 'NetBoxGroup': - model_name = 'Group' - - serializer_name = f'{app_name}.api.serializers.{prefix}{model_name}Serializer' + app_label, model_name = model._meta.label.split('.') + serializer_name = f'{app_label}.api.serializers.{prefix}{model_name}Serializer' try: return dynamic_import(serializer_name) except AttributeError: raise SerializerNotFound( - f"Could not determine serializer for {app_name}.{model_name} with prefix '{prefix}'" + f"Could not determine serializer for {app_label}.{model_name} with prefix '{prefix}'" ) diff --git a/netbox/utilities/utils.py b/netbox/utilities/utils.py index ca0fd142d..5a25b4465 100644 --- a/netbox/utilities/utils.py +++ b/netbox/utilities/utils.py @@ -1,11 +1,12 @@ import datetime import decimal import json -import nh3 import re from decimal import Decimal from itertools import count, groupby +from urllib.parse import urlencode +import nh3 from django.contrib.contenttypes.models import ContentType from django.core import serializers from django.db.models import Count, ManyToOneRel, OuterRef, Subquery @@ -23,7 +24,6 @@ from dcim.choices import CableLengthUnitChoices, WeightUnitChoices from extras.utils import is_taggable from netbox.config import get_config from netbox.plugins import PluginConfig -from urllib.parse import urlencode from utilities.constants import HTTP_REQUEST_META_SAFE_COPY from .constants import HTML_ALLOWED_ATTRIBUTES, HTML_ALLOWED_TAGS @@ -48,27 +48,16 @@ def get_viewname(model, action=None, rest_api=False): model_name = model._meta.model_name if rest_api: + viewname = f'{app_label}-api:{model_name}' if is_plugin: - viewname = f'plugins-api:{app_label}-api:{model_name}' - else: - # TODO: Remove this logic - # Alter the app_label for group and user model_name to point to users app - if app_label == 'auth' and model_name in ['group', 'user']: - app_label = 'users' - if app_label == 'users' and model._meta.proxy and model_name in ['netboxuser', 'netboxgroup']: - model_name = model._meta.proxy_for_model._meta.model_name - - viewname = f'{app_label}-api:{model_name}' - # Append the action, if any + viewname = f'plugins-api:{viewname}' if action: viewname = f'{viewname}-{action}' else: viewname = f'{app_label}:{model_name}' - # Prepend the plugins namespace if this is a plugin model if is_plugin: viewname = f'plugins:{viewname}' - # Append the action, if any if action: viewname = f'{viewname}_{action}'