UEWBot / dipvis

Django-based visualiser for tournaments for the boardgame Diplomacy
GNU General Public License v3.0
7 stars 4 forks source link

Add support for Circuits #281

Open UEWBot opened 7 months ago

UEWBot commented 7 months ago

A circuit is made up of a number of tournaments, over a period of time (usually, or always, a calendar year). Scores from the tournaments are combined in some way to calculate a ranking for the circuit. See https://world-diplomacy-database.com/php/results/circuit_list.php for examples

UEWBot commented 5 months ago

Sounds like two main classes - CircuitScoringSystem and Circuit. I don't see any reason why a Tournament should be prohibited from being in multiple Circuits. I guess we also need a CircuitPlayer, if only to store scores (we could calculate them on-demand, but that seems like a lot of repeated work given that they only change a few times a year).

UEWBot commented 5 months ago

There may be an issue with deciding who actually gets points from each tournament (in the weeds, players who registered but didn't play, registered and volunteered to sit out, etc). At the very least, we probably need to be able to tweak scores (or at least zero them out)

UEWBot commented 5 months ago

We probably also need a CircuitSeries, analogous to Series, to tie together the Circuit instances.

We need some intermediate model or something to allow us to have an arbitrary threshold for qualification - for example, a TD may decide that only players who played 2 or more games are qualified for the circuit. We may also have a tournament threshold e.g. players must have competed in 3 tournaments to be ranked on the circuit .

UEWBot commented 5 months ago

Should also be able to generate a CSV file for uploading results to the WDD.

UEWBot commented 4 months ago

Initially at least, qualification can be one by creating CircuitPlayers or not. If a player isn't qualified for the Circuit, don't create a CircutPlayer for them.