Closes #10699: Remove custom import_object() function

This commit is contained in:
jeremystretch
2022-10-19 10:40:39 -04:00
parent a44eed5001
commit 85a4b1f881
4 changed files with 39 additions and 53 deletions

View File

@@ -5,8 +5,8 @@ from packaging import version
from django.apps import AppConfig
from django.core.exceptions import ImproperlyConfigured
from django.template.loader import get_template
from django.utils.module_loading import import_string
from extras.plugins.utils import import_object
from extras.registry import registry
from netbox.navigation import MenuGroup
from netbox.search import register_search
@@ -71,31 +71,46 @@ class PluginConfig(AppConfig):
def ready(self):
plugin_name = self.name.rsplit('.', 1)[-1]
# Search extensions
search_indexes = import_object(f"{self.__module__}.{self.search_indexes}") or []
for idx in search_indexes:
register_search()(idx)
# Register search extensions (if defined)
try:
search_indexes = import_string(f"{self.__module__}.{self.search_indexes}")
for idx in search_indexes:
register_search()(idx)
except ImportError:
pass
# Register template content (if defined)
template_extensions = import_object(f"{self.__module__}.{self.template_extensions}")
if template_extensions is not None:
try:
template_extensions = import_string(f"{self.__module__}.{self.template_extensions}")
register_template_extensions(template_extensions)
except ImportError:
pass
# Register navigation menu or menu items (if defined)
if menu := import_object(f"{self.__module__}.{self.menu}"):
# Register navigation menu and/or menu items (if defined)
try:
menu = import_string(f"{self.__module__}.{self.menu}")
register_menu(menu)
if menu_items := import_object(f"{self.__module__}.{self.menu_items}"):
except ImportError:
pass
try:
menu_items = import_string(f"{self.__module__}.{self.menu_items}")
register_menu_items(self.verbose_name, menu_items)
except ImportError:
pass
# Register GraphQL schema (if defined)
graphql_schema = import_object(f"{self.__module__}.{self.graphql_schema}")
if graphql_schema is not None:
try:
graphql_schema = import_string(f"{self.__module__}.{self.graphql_schema}")
register_graphql_schema(graphql_schema)
except ImportError:
pass
# Register user preferences (if defined)
user_preferences = import_object(f"{self.__module__}.{self.user_preferences}")
if user_preferences is not None:
try:
user_preferences = import_string(f"{self.__module__}.{self.user_preferences}")
register_user_preferences(plugin_name, user_preferences)
except ImportError:
pass
@classmethod
def validate(cls, user_config, netbox_version):