Browse Source

Move object_type_identifier() & object_type_name() to utilities.object_types

Jeremy Stretch 1 year ago
parent
commit
6ac700e43f

+ 1 - 1
netbox/extras/dashboard/widgets.py

@@ -15,10 +15,10 @@ from django.utils.translation import gettext as _
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.choices import BookmarkOrderingChoices
 from extras.choices import BookmarkOrderingChoices
 from netbox.choices import ButtonColorChoices
 from netbox.choices import ButtonColorChoices
+from utilities.object_types import object_type_identifier, object_type_name
 from utilities.permissions import get_permission_for_model
 from utilities.permissions import get_permission_for_model
 from utilities.querydict import dict_to_querydict
 from utilities.querydict import dict_to_querydict
 from utilities.templatetags.builtins.filters import render_markdown
 from utilities.templatetags.builtins.filters import render_markdown
-from utilities.utils import object_type_identifier, object_type_name
 from utilities.views import get_viewname
 from utilities.views import get_viewname
 from .utils import register_widget
 from .utils import register_widget
 
 

+ 0 - 2
netbox/extras/models/search.py

@@ -4,9 +4,7 @@ from django.db import models
 from django.utils.translation import gettext_lazy as _
 from django.utils.translation import gettext_lazy as _
 
 
 from netbox.search.utils import get_indexer
 from netbox.search.utils import get_indexer
-from netbox.registry import registry
 from utilities.fields import RestrictedGenericForeignKey
 from utilities.fields import RestrictedGenericForeignKey
-from utilities.utils import object_type_identifier
 from ..fields import CachedValueField
 from ..fields import CachedValueField
 
 
 __all__ = (
 __all__ = (

+ 1 - 1
netbox/netbox/api/serializers/generic.py

@@ -5,7 +5,7 @@ from rest_framework import serializers
 from core.models import ObjectType
 from core.models import ObjectType
 from netbox.api.fields import ContentTypeField
 from netbox.api.fields import ContentTypeField
 from utilities.api import get_serializer_for_model
 from utilities.api import get_serializer_for_model
-from utilities.utils import object_type_identifier
+from utilities.object_types import object_type_identifier
 
 
 __all__ = (
 __all__ = (
     'GenericObjectSerializer',
     'GenericObjectSerializer',

+ 1 - 1
netbox/netbox/search/backends.py

@@ -14,9 +14,9 @@ from netaddr.core import AddrFormatError
 from core.models import ObjectType
 from core.models import ObjectType
 from extras.models import CachedValue, CustomField
 from extras.models import CachedValue, CustomField
 from netbox.registry import registry
 from netbox.registry import registry
+from utilities.object_types import object_type_identifier
 from utilities.querysets import RestrictedPrefetch
 from utilities.querysets import RestrictedPrefetch
 from utilities.string import title
 from utilities.string import title
-from utilities.utils import object_type_identifier
 from . import FieldTypes, LookupTypes, get_indexer
 from . import FieldTypes, LookupTypes, get_indexer
 
 
 DEFAULT_LOOKUP_TYPE = LookupTypes.PARTIAL
 DEFAULT_LOOKUP_TYPE = LookupTypes.PARTIAL

+ 1 - 1
netbox/netbox/search/utils.py

@@ -1,5 +1,5 @@
 from netbox.registry import registry
 from netbox.registry import registry
-from utilities.utils import object_type_identifier
+from utilities.object_types import object_type_identifier
 
 
 __all__ = (
 __all__ = (
     'get_indexer',
     'get_indexer',

+ 1 - 1
netbox/netbox/tables/columns.py

@@ -18,9 +18,9 @@ from django_tables2.columns import library
 from django_tables2.utils import Accessor
 from django_tables2.utils import Accessor
 
 
 from extras.choices import CustomFieldTypeChoices
 from extras.choices import CustomFieldTypeChoices
+from utilities.object_types import object_type_identifier, object_type_name
 from utilities.permissions import get_permission_for_model
 from utilities.permissions import get_permission_for_model
 from utilities.templatetags.builtins.filters import render_markdown
 from utilities.templatetags.builtins.filters import render_markdown
-from utilities.utils import object_type_identifier, object_type_name
 from utilities.views import get_viewname
 from utilities.views import get_viewname
 
 
 __all__ = (
 __all__ = (

+ 1 - 1
netbox/utilities/forms/fields/content_types.py

@@ -1,6 +1,6 @@
 from django import forms
 from django import forms
 
 
-from utilities.utils import object_type_name
+from utilities.object_types import object_type_name
 
 
 __all__ = (
 __all__ = (
     'ContentTypeChoiceField',
     'ContentTypeChoiceField',

+ 1 - 1
netbox/utilities/forms/fields/csv.py

@@ -5,7 +5,7 @@ from django.core.exceptions import MultipleObjectsReturned, ObjectDoesNotExist
 from django.db.models import Q
 from django.db.models import Q
 
 
 from utilities.choices import unpack_grouped_choices
 from utilities.choices import unpack_grouped_choices
-from utilities.utils import object_type_identifier
+from utilities.object_types import object_type_identifier
 
 
 __all__ = (
 __all__ = (
     'CSVChoiceField',
     'CSVChoiceField',

+ 29 - 0
netbox/utilities/object_types.py

@@ -0,0 +1,29 @@
+from .string import title
+
+__all__ = (
+    'object_type_identifier',
+    'object_type_name',
+)
+
+
+def object_type_identifier(object_type):
+    """
+    Return a "raw" ObjectType identifier string suitable for bulk import/export (e.g. "dcim.site").
+    """
+    return f'{object_type.app_label}.{object_type.model}'
+
+
+def object_type_name(object_type, include_app=True):
+    """
+    Return a human-friendly ObjectType name (e.g. "DCIM > Site").
+    """
+    try:
+        meta = object_type.model_class()._meta
+        app_label = title(meta.app_config.verbose_name)
+        model_name = title(meta.verbose_name)
+        if include_app:
+            return f'{app_label} > {model_name}'
+        return model_name
+    except AttributeError:
+        # Model does not exist
+        return f'{object_type.app_label} > {object_type.model}'

+ 1 - 1
netbox/utilities/testing/base.py

@@ -12,8 +12,8 @@ from taggit.managers import TaggableManager
 
 
 from core.models import ObjectType
 from core.models import ObjectType
 from users.models import ObjectPermission
 from users.models import ObjectPermission
+from utilities.object_types import object_type_identifier
 from utilities.permissions import resolve_permission_type
 from utilities.permissions import resolve_permission_type
-from utilities.utils import object_type_identifier
 from .utils import extract_form_failures
 from .utils import extract_form_failures
 
 
 __all__ = (
 __all__ = (

+ 0 - 25
netbox/utilities/utils.py

@@ -2,8 +2,6 @@ from django.db.models import ManyToOneRel
 from django.utils import timezone
 from django.utils import timezone
 from django.utils.timezone import localtime
 from django.utils.timezone import localtime
 
 
-from .string import title
-
 
 
 def dynamic_import(name):
 def dynamic_import(name):
     """
     """
@@ -16,29 +14,6 @@ def dynamic_import(name):
     return mod
     return mod
 
 
 
 
-def object_type_name(object_type, include_app=True):
-    """
-    Return a human-friendly ObjectType name (e.g. "DCIM > Site").
-    """
-    try:
-        meta = object_type.model_class()._meta
-        app_label = title(meta.app_config.verbose_name)
-        model_name = title(meta.verbose_name)
-        if include_app:
-            return f'{app_label} > {model_name}'
-        return model_name
-    except AttributeError:
-        # Model does not exist
-        return f'{object_type.app_label} > {object_type.model}'
-
-
-def object_type_identifier(object_type):
-    """
-    Return a "raw" ObjectType identifier string suitable for bulk import/export (e.g. "dcim.site").
-    """
-    return f'{object_type.app_label}.{object_type.model}'
-
-
 def local_now():
 def local_now():
     """
     """
     Return the current date & time in the system timezone.
     Return the current date & time in the system timezone.