Move project menu list into an async call, avoiding the same repeated calls per project - #23656
Merged
Conversation
… calls per project
oliverguenther
force-pushed
the
chore/async-project-menu
branch
from
June 10, 2026 09:15
5f91854 to
aa27c6d
Compare
oliverguenther
force-pushed
the
chore/async-project-menu
branch
from
June 10, 2026 09:24
ce86fc2 to
ca6fbe9
Compare
dombesz
approved these changes
Jun 11, 2026
dombesz
left a comment
Contributor
There was a problem hiding this comment.
LGTM 👍
Feel free to merge once CI is green.
Project menus can be accessed by: 1. Users with read permission if the project is active. 2. Admins only if the project is archived. Since there is no dedicated authorization method for such case, a new helper method require_admin_or_active_project is added.
…ed action menus too. The component is subclassed in various places that do not implement the lazy row menu, so it still has to support 2 operational modes.
dombesz
force-pushed
the
chore/async-project-menu
branch
from
June 12, 2026 11:41
89d03d5 to
0f6ed76
Compare
ulferts
requested changes
Jun 12, 2026
ulferts
left a comment
Contributor
There was a problem hiding this comment.
I spotted two things:
- The action is called
menu. Initially I thought this referred to the menu with in the project when in it is rather about the row menu. Something likelist_row_menumight prevent that and would be easy to change to. - When opening the now asynchronous menus of projects at the bottom of the page, the behaviour is not always correct. It oftentimes continues to open to the bottom even if there isn't enough space. This was different before, with the synchronous menu.
I guess the former can easily be changed whereas the latter requires a bug report as this is probably behaviour that exists in the component itself.
dombesz
force-pushed
the
chore/async-project-menu
branch
from
June 12, 2026 15:50
04bc275 to
d12f683
Compare
|
Warning Flaky specs
|
dombesz
force-pushed
the
chore/async-project-menu
branch
from
June 12, 2026 16:51
181cfe5 to
d12f683
Compare
Contributor
|
Thanks @ulferts , I addressed the first issue in this PR as it is relevant. The second issue will be addressed in the |
|
Warning Flaky specs
|
ulferts
approved these changes
Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Ticket: https://community.openproject.org/wp/OP-19536
The action menu of the project list is currently rendered inline for every project eagerly, which has a significant chunk of render time, especially since a lot of permission checks are involved.
For non-logged-in users, this render time is completely useless, which is why we can also shortcut the menu entirely.
Edit by Attila:
The
RowComponentis inherited in various places which still define inline menu items. The implementation is updated to handle both inline menu items and a menu url provided.