-
Notifications
You must be signed in to change notification settings - Fork 279
Add category types and allow teams to be in more than one category #3043
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
base: main
Are you sure you want to change the base?
Conversation
4b3e640 to
ed306f7
Compare
55d3c52 to
80b7c0b
Compare
80b7c0b to
6953f19
Compare
| ->leftJoin('t.affiliation', 'ta') | ||
| ->leftJoin('t.category', 'tc') | ||
| ->leftJoin('t.categories', 'tc') | ||
| ->leftJoin('t.categories', 'tcc', Join::WITH, 'BIT_AND(tcc.types, :scoring) = :scoring') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why do we need the extra tcc, aren't you joining this to be the same category?
| ->from(Team::class, 't') | ||
| ->select('t') | ||
| ->leftJoin('t.category', 'tc') | ||
| ->leftJoin('t.categories', 'tc') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
phpcs below
| {# only print legend when there's more than one category #} | ||
| {% if limitToTeamIds is null and usedCategories | length > 1 and hasDifferentCategoryColors %} | ||
| {% if limitToTeamIds is null and colorCategories | length > 0 and hasDifferentCategoryColors %} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The comment is now not in line with the code. Why do we need to print the legend with only 1 category?
| } | ||
|
|
||
| if ($filter->categories) { | ||
| // Use a new join, since we need both the other two category joins for other logic already |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you don't limit tcc so can re use it here,
This fixes #2937
I added validation to make sure each team is in at most one scoring category and a config checker to make sure they are in at least one (since this is not an error but still weird).
There are some minor changes to the scoreboard compared to before:
TYPE_BADGE_TOPtype.I decided that filtering on the scoreboard should be possible with all category types, since I think this makes sense (i.e. one can filter on all teams that advanced to finals before or all teams that didn't).
I also decided that we can have categories without any type. The above mentioned example is a good use case: all teams NOT advancing to finals from EUC could be put in that category, so you can filter on it.
The PR is quite big, since it's quite a lot of changes. I split some of the work up in separate commits, but plan to squash before merging.