We have received lots of feedback about the complex navigational structure in Decidim. E.g. if the city has active budgeting phase in multiple processes, the users would first have to browse to processes => (possibly select a process group) => select a process => switch to the budgeting tab => authorize themselves (if required) => start the budgeting.
In this case the users are not really interested in anything else but the budgeting phase and it would be better to guide them through the process with a simple flow.
In this particular case the desired user flow would be something like this:
- Require the user to login (needed for budgeting)
- Require the user to authorize them with 1, many or all selected authorization method (needed for budgeting)
- Select the budgeting component from the desired process (only displaying those that the user is authorized in for the budgeting action)
- Do the budgeting
- Repeat the budgeting for any other components the user is authorized in
Also, in the budgeting phase, the user should not be shown the UI overhead links from the participatory space, i.e. the participatory space's header which shows its title, steps and sub-navigation. They are only interested about performing the budgeting in the desired process, so focus the user's attention to the actual budgeting.
The same kind of process could be applied to any component out there, e.g. proposals/ideas. The most use cases we've had, there is always one active phase (proposal, budgeting, etc.) that the users are interested in at the given time. They come to the platform for that particular purpose and are confused when they have to browse through multiple different views in order to perform what they came to do.
We actually tried to build a general module which would allow just this but quickly noticed it was pretty hard to implement this generally because of the way the internal functionality of the components is tied to the participatory space they are in. Basically we ended up creating a flow tool tied to the budgeting component which has its own routes for the budgeting component served by controllers that override the budgeting component's controllers.
The overrides were required to hide the participatory space's navigational structure from the user. Other than that, this component could have been created more generally that would allow attaching it to any component out there.