osu-web
osu-web copied to clipboard
Update number of nominations required to qualify Beatmap
- Updated required nominations
- Moved the nomination logic out to its own class
- Removed the
try-catch
dance onnominate()
- went through the nomination and qualification tests to make sure they were passing/failing on the things they were supposed to be
- the
expectExceptionCallable
wrapper is so that we can run additional assertions after the test throws to make sure it didn't do the thing it wasn't supposed to do. -
withHypes()
test factory isn't used by any test, it's for quickly seeding aBeatmapset
with necessary number of hypes for nomination. - throws an error if nominating puts the mapset in an invalid state that can't be qualified (e.g. main ruleset changing and making the number of nominations invalid)
- how long has this been using the wrong translation key 👀
- [x] we're just going to deal with it when it happens/reset the nominations. ~~might be a problem with existing nominations since they might fail the nomination count check~~ 🤔
- ~~there's appears to be only 1 beatmapset with a limited nomination that might fail the check so maybe it's better to handle it manually when it arises instead of coding in an exception for it.~~
- [x] Main ruleset probably needs to be stored somewhere, constantly re-querying everything to get the summary counts for
BeatmapPanel
is probably not a good idea... - remove ability to do legacy nominations
I'm still not quite satisfied with the number of repeated things the tests do each time, but we've had questions in the past about notifications, etc not being sent due to a user setting, when they have been dispatched.
The new rules for nomination on hybrid sets are:
2 nominations required for the main ruleset and 1 on every other ruleset. There must be one full nominator on every ruleset.
- The main ruleset is the one with the most difficulties
- If the number of difficulties are the same, then the one with the most diffs by the host if the main ruleset. If 1 and 2 do not result in a clear main ruleset, then any ruleset that satisfies the previous criteria is used.
- [x] updating logic if 1 and 2 not met Probationary BNs cannot be the only nomination on their ruleset (i.e. can only nominate the main ruleset)
(draft while I fix some missing stuff + rebase)
Let's get this in this week. If we can't, it's probably about time to close it and rethink the whole system. Maybe it should be moved out of osu-web to allow for more rapid development.
The underlying drive behind this change may be outdated by the time it's implemented at this rate (I think we've over 6 months now).