Why it was needed?
After launching numerous portal based apps it has become very difficult for a user to navigate between apps. Also apps like Frappe CRM, Gameplan, Helpdesk can be installed as standalone apps in a separate sites (SaaS flow).
There are two cases:
1. SaaS flow (one app per site):
After login, user should be redirected to the installed app’s portal page. But currently, user is redirected to the desk (/app) and they have no idea about it and they get lost.
2. Multi-app flow through FC (multiple apps in one site):
After login, user get redirected to the desk (/app) and they have to navigate to the portal page of the app they want to use but they don’t know how many apps are installed and how to navigate to the portal page of the app they want to use.
Restarted previous attempt to fix it
Faris started working on this issue Old PR. But for some reason it never got merged. So I basically restarted it in a separate New PR.
With this new apps page the second case was resolved. So now if a site has multiple apps after login you will be landed on the apps page and you can select an app you want to work on.
For SaaS flow, since there is only one app (portal app) is installed on a site you will be redirected to that apps portal page after login. E.g if Gameplan is installed you will be redirected to /g. But what if only ERPNext app is installed since it is not a portal based app you will be redirected to /app/home.
Additional feature:
You can set any app as default to avoid landing on apps page.
-
User Level
-
System Level
How can we show our custom apps on apps page
If you need your app to be included in apps page add these details in hooks.py. Below is the example of Frappe CRM app.
Here has_permission option is used to show/hide app icon based on app based business logic. E.g. Hide icon if user is a Website User.
# Each item in the list will be shown as an app in the apps page
add_to_apps_screen = [{
"name": "crm",
"logo": "/assets/crm/logo.png",
"title": "CRM",
"route": "/crm",
"has_permission": "crm.api.check_app_permission"
}]
It is supported in v15 and above