mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
refactor to plugin app config
This commit is contained in:
parent
685d3df6d1
commit
8ef7a813ec
@ -19,24 +19,14 @@ import socket
|
||||
import string
|
||||
import shutil
|
||||
import sys
|
||||
import importlib
|
||||
from datetime import datetime
|
||||
|
||||
try:
|
||||
from importlib import metadata
|
||||
except:
|
||||
import importlib_metadata as metadata
|
||||
|
||||
|
||||
import moneyed
|
||||
|
||||
import yaml
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from django.contrib.messages import constants as messages
|
||||
|
||||
from plugin import plugins as inventree_plugins
|
||||
from plugin.integration import IntegrationPluginBase
|
||||
|
||||
|
||||
def _is_true(x):
|
||||
# Shortcut function to determine if a value "looks" like a boolean
|
||||
@ -869,31 +859,7 @@ if not TESTING:
|
||||
if DEBUG or TESTING:
|
||||
PLUGIN_DIRS.append('plugin.samples')
|
||||
|
||||
# collect all plugins from paths
|
||||
PLUGINS = []
|
||||
for plugin in PLUGIN_DIRS:
|
||||
modules = inventree_plugins.get_plugins(importlib.import_module(plugin), IntegrationPluginBase, True)
|
||||
if modules:
|
||||
[PLUGINS.append(item) for item in modules]
|
||||
|
||||
# Get plugins from setup entry points
|
||||
for entry in metadata.entry_points().get('inventree_plugins', []):
|
||||
plugin = entry.load()
|
||||
plugin.is_package = True
|
||||
PLUGINS.append(plugin)
|
||||
|
||||
# collect integration plugins
|
||||
INTEGRATION_PLUGINS = {}
|
||||
INTEGRATION_PLUGIN_SETTING = {}
|
||||
INTEGRATION_APPS_LOADED = False # Marks if apps were reloaded yet
|
||||
|
||||
for plugin in inventree_plugins.load_integration_plugins():
|
||||
# check if package
|
||||
was_packaged = getattr(plugin, 'is_package', False)
|
||||
|
||||
# init package
|
||||
plugin.is_package = was_packaged
|
||||
plugin = plugin()
|
||||
plugin.is_package = was_packaged
|
||||
# safe reference
|
||||
INTEGRATION_PLUGINS[plugin.slug] = plugin
|
||||
|
@ -1,5 +1,6 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
import importlib
|
||||
import pathlib
|
||||
from typing import OrderedDict
|
||||
|
||||
@ -7,12 +8,46 @@ from django.apps import AppConfig, apps
|
||||
from django.conf import settings
|
||||
from django.db.utils import OperationalError, ProgrammingError
|
||||
|
||||
try:
|
||||
from importlib import metadata
|
||||
except:
|
||||
import importlib_metadata as metadata
|
||||
|
||||
from plugin import plugins as inventree_plugins
|
||||
from plugin.integration import IntegrationPluginBase
|
||||
|
||||
|
||||
class PluginConfig(AppConfig):
|
||||
name = 'plugin'
|
||||
|
||||
def ready(self):
|
||||
from common.models import InvenTreeSetting
|
||||
|
||||
# Collect plugins from paths
|
||||
for plugin in settings.PLUGIN_DIRS:
|
||||
modules = inventree_plugins.get_plugins(importlib.import_module(plugin), IntegrationPluginBase, True)
|
||||
if modules:
|
||||
[settings.PLUGINS.append(item) for item in modules]
|
||||
|
||||
# Collect plugins from setup entry points
|
||||
for entry in metadata.entry_points().get('inventree_plugins', []):
|
||||
plugin = entry.load()
|
||||
plugin.is_package = True
|
||||
settings.PLUGINS.append(plugin)
|
||||
|
||||
# Initialize integration plugins
|
||||
for plugin in inventree_plugins.load_integration_plugins():
|
||||
# check if package
|
||||
was_packaged = getattr(plugin, 'is_package', False)
|
||||
|
||||
# init package
|
||||
plugin.is_package = was_packaged
|
||||
plugin = plugin()
|
||||
plugin.is_package = was_packaged
|
||||
# safe reference
|
||||
settings.INTEGRATION_PLUGINS[plugin.slug] = plugin
|
||||
|
||||
# activate integrations
|
||||
plugins = settings.INTEGRATION_PLUGINS.items()
|
||||
|
||||
try:
|
||||
|
Loading…
Reference in New Issue
Block a user