-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/59184 order by stages and gates on project list #17530
Draft
EinLama
wants to merge
9
commits into
dev
Choose a base branch
from
feature/59184-order-by-stages-and-gates-on-project-list
base: dev
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Feature/59184 order by stages and gates on project list #17530
EinLama
wants to merge
9
commits into
dev
from
feature/59184-order-by-stages-and-gates-on-project-list
+331
−0
Conversation
This file contains 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
EinLama
force-pushed
the
feature/59184-order-by-stages-and-gates-on-project-list
branch
from
January 4, 2025 15:16
c6e1367
to
d9ffe12
Compare
EinLama
force-pushed
the
feature/59184-order-by-stages-and-gates-on-project-list
branch
from
January 6, 2025 08:44
f551cb5
to
73a8642
Compare
Using a named subquery will break as those have to be unique. The same issue applies to CTEs - they need a unique name per query. To solve this, I have allowed queries to use CTEs and define their name. The name will be derived from the definition id, which is unique per query. Therefore, you can now order by multiple life cycle definitions at once.
def order(scope) | ||
with_raise_on_invalid do | ||
# Note that a gate does not define an end_date. This code still works. | ||
direction_clause = Arel.sql("#{cte_name}.start_date #{direction}, #{cte_name}.end_date #{direction}") |
Check warning
Code scanning / Brakeman
Possible SQL injection. Warning
Possible SQL injection.
# Note that a gate does not define an end_date. This code still works. | ||
direction_clause = Arel.sql("#{cte_name}.start_date #{direction}, #{cte_name}.end_date #{direction}") | ||
|
||
scope.where("#{cte_name}.def_id = :def_id OR #{cte_name}.def_id IS NULL", def_id: life_cycle_step_definition.id) |
Check notice
Code scanning / Brakeman
Possible SQL injection. Note
Possible SQL injection.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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/59184
What are you trying to accomplish?
Screenshots
What approach did you choose and why?
Merge checklist