UEWBot / dipvis

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

Improve the roll call experience #169

Closed UEWBot closed 3 years ago

UEWBot commented 3 years ago

In practice, roll call never goes as smoothly as we'd like. Particularly for a larger tournament, there may well be "standby" players who are willing to play but would be quite happy not to. In practice, the TD often has to go to the roll call page multiple times to get the list correct.

So seeding boards directly from the roll call page is not ideal. It's also not good to have two different possible paths through the software from the roll call page to the seeded boards.

So I think we should modify the roll call page to always go to the "who's playing 2 boards and who's sitting out" page, and if we have an exact multiple of seven players, it can just say that. The "submit" button should probably be an explicit "seed boards" or similar.

The other issue is when somebody is completely missed at roll call, and this is only discovered when the board call is done. That one's tricky - TDs will either go back to the roll call, fix it, and re-seed the boards, or they'll just substitute a player. Both are currently supported. The question is whether they need to be more straight-forward.

UEWBot commented 3 years ago

It would make sense to add a "back to roll call" link to the "get seven" page. That would ensure that the roll call page is in a good state.

It would also be good to add a "Standby" flag to TournamentPlayer, to identify somebody who is willing to play if needed. They should appear on the roll call list, and be checked in if present, but they shouldn't be counted unless they're needed - that implies that the get_seven page would also have a list of standby players and the opportunity to pull them in if needed (as the first choice, because a TD is likely to do that rather than having somebody sit out or play two boards).

The case of a player who arrives after boards have been seeded is more tricky - we certainly can provide the option to go back to the roll call from that page (with a warning that the existing seedings will be discarded). What we probably want, though, is a "replace a player" page that will create and destroy RoundPlayers (or modify their game_count attributes) as well as create and destroy GamePlayers - that recognises the two cases - boards have already been (at least partially) announced or they haven't.

UEWBot commented 3 years ago

See also issues #162 #161 and #177.

UEWBot commented 3 years ago

I think "standby" is a little more complex. Ideally, we're able to flag players as standby for particular rounds. We do have players, for example, who want to play round 2 but would prefer to not play round 1.

UEWBot commented 3 years ago

One way to do this would be:

UEWBot commented 3 years ago

Need to ensure that we handle 4 distinct cases:

  1. Got a multiple of 7 without any standby players (no action needed)
  2. Can get to a multiple of 7 with some standby players (pick which standby players will play)
  3. Can get to a multiple of 7 with all standby players playing (no action needed)
  4. Need either players to sit out or players to play two boards (pick who will do what) 4a standby players will all play if we enter players to play two boards 4b no standby players will play if we enter players to sit out