This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git


The following commit(s) were added to refs/heads/develop by this push:
     new 1bebb7eb AIRAVATA-3696 instantiate output view providers in ready()
1bebb7eb is described below

commit 1bebb7eb5253de3a1cedb57372380ceb98eb8d1b
Author: Marcus Christie <[email protected]>
AuthorDate: Thu Apr 27 10:20:42 2023 -0400

    AIRAVATA-3696 instantiate output view providers in ready()
---
 django_airavata/apps/api/apps.py         |  6 ++++++
 django_airavata/apps/api/output_views.py | 11 +++++++----
 django_airavata/settings.py              |  4 ----
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/django_airavata/apps/api/apps.py b/django_airavata/apps/api/apps.py
index a9c0abb2..b95d88e4 100644
--- a/django_airavata/apps/api/apps.py
+++ b/django_airavata/apps/api/apps.py
@@ -1,4 +1,5 @@
 from django.apps import AppConfig
+from pkg_resources import iter_entry_points
 
 
 class ApiConfig(AppConfig):
@@ -7,3 +8,8 @@ class ApiConfig(AppConfig):
 
     def ready(self):
         from . import signals  # noqa
+        from . import output_views
+
+        # Load and create instances of each output view provider
+        for entry_point in 
iter_entry_points(group='airavata.output_view_providers'):
+            output_views.OUTPUT_VIEW_PROVIDERS[entry_point.name] = 
entry_point.load()()
diff --git a/django_airavata/apps/api/output_views.py 
b/django_airavata/apps/api/output_views.py
index 46531bb7..69040df5 100644
--- a/django_airavata/apps/api/output_views.py
+++ b/django_airavata/apps/api/output_views.py
@@ -16,6 +16,9 @@ logger = logging.getLogger(__name__)
 
 BASE_DIR = os.path.dirname(os.path.abspath(__file__))
 
+# This is populated by apps.ApiConfig.ready()
+OUTPUT_VIEW_PROVIDERS = {}
+
 
 class DefaultViewProvider:
     display_type = 'default'
@@ -83,8 +86,8 @@ def get_output_views(request, experiment, 
application_interface=None):
             if output_view_provider_id in DEFAULT_VIEW_PROVIDERS:
                 output_view_provider = DEFAULT_VIEW_PROVIDERS[
                     output_view_provider_id]
-            elif output_view_provider_id in settings.OUTPUT_VIEW_PROVIDERS:
-                output_view_provider = settings.OUTPUT_VIEW_PROVIDERS[
+            elif output_view_provider_id in OUTPUT_VIEW_PROVIDERS:
+                output_view_provider = OUTPUT_VIEW_PROVIDERS[
                     output_view_provider_id]
             else:
                 logger.warning("Unable to find output view provider with "
@@ -111,8 +114,8 @@ def _get_output_view_provider(output_view_provider_id):
 
     if output_view_provider_id in DEFAULT_VIEW_PROVIDERS:
         return DEFAULT_VIEW_PROVIDERS[output_view_provider_id]
-    elif output_view_provider_id in settings.OUTPUT_VIEW_PROVIDERS:
-        return settings.OUTPUT_VIEW_PROVIDERS[output_view_provider_id]
+    elif output_view_provider_id in OUTPUT_VIEW_PROVIDERS:
+        return OUTPUT_VIEW_PROVIDERS[output_view_provider_id]
 
 
 def _get_output_view_providers(experiment_output, application_interface):
diff --git a/django_airavata/settings.py b/django_airavata/settings.py
index 0e293a9b..1508324e 100644
--- a/django_airavata/settings.py
+++ b/django_airavata/settings.py
@@ -638,7 +638,3 @@ dynamic_apps.load(INSTALLED_APPS, "airavata.djangoapp")
 # Merge WEBPACK_LOADER settings from custom Django apps
 settings_module = sys.modules[__name__]
 dynamic_apps.merge_settings(settings_module)
-
-OUTPUT_VIEW_PROVIDERS = {}
-for entry_point in iter_entry_points(group='airavata.output_view_providers'):
-    OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()

Reply via email to