[ 
https://issues.apache.org/jira/browse/AIRAVATA-2934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16797548#comment-16797548
 ] 

ASF subversion and git services commented on AIRAVATA-2934:
-----------------------------------------------------------

Commit 750cbe71a885402f381ac47196430f4794c8bfeb in airavata-django-portal's 
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=750cbe7 ]

AIRAVATA-2934 Integrate custom Django apps in navigation


> 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
>            Assignee: Marcus Christie
>            Priority: Major
>
> 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].
> Probably for a future issue, but here are some additional concerns:
> * Django apps that integrate with the portal should use templates that extend 
> [base.html|https://github.com/apache/airavata-django-portal/blob/master/django_airavata/templates/base.html]
> * How to handle building JS code if the Django app requires a build step?  
> Perhaps could be part of running {{python setup.py install}}?
> * Have the AppConfig provide metadata for populating the left hand side 
> navigation in the Django portal
> h2. TODO
> - [ ] Have test django app extend base.html
> - [ ] Implement placeholder left hand side navigation. Create a separate 
> issue for metadata for populating the left hand side navigation.
> - [ ] Documentation



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

Reply via email to