Marcus Christie created AIRAVATA-2934:
-----------------------------------------

             Summary: Dynamically load Django apps into the Django portal
                 Key: AIRAVATA-2934
                 URL: https://issues.apache.org/jira/browse/AIRAVATA-2934
             Project: Airavata
          Issue Type: Bug
          Components: Django Portal
            Reporter: Marcus Christie


Develop a mechanism for automatically including Django apps that are installed 
in the Django portal's virtual environment.

The mechanism that seems most promising is to make use of entry points which I 
[wrote about in this blog 
post|https://marcus.4christies.com/2018/10/dynamically-including-django-apps-using-entry-points/].
 The entry point could register the AppConfig object of the Django app.

This would allow the Django portal to:
* loop over these Django apps and add them to INSTALLED_APPS in settings.py
* add these apps to the urls.py url mappings

In addition there is some metadata what would be useful for the AppConfig to 
provide:
* {{url_home}} - the home url of the app so that it can be linked to. In 
builtin Django apps in the Airavata portal, this is used to build the links to 
the various apps.
* {{app_order}} - the order of the app in dynamically built list of apps
* {{fa_icon_class}} - FontAwesome icon class to use for the app
* {{app_description}} - Longer description of the app

This metadata would be in addition to [{{name}}, {{label}} and 
{{verbose_name}}, which are built in properties of 
AppConfig|https://docs.djangoproject.com/en/2.1/ref/applications/#application-configuration].



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to