Skip to content

Commit

Permalink
Merge branch 'main' into sunset_showdown_2024
Browse files Browse the repository at this point in the history
  • Loading branch information
patfair committed Jul 19, 2024
2 parents fcdf8d6 + 1b7f953 commit f213bbe
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 9 deletions.
8 changes: 4 additions & 4 deletions field/arena.go
Original file line number Diff line number Diff line change
Expand Up @@ -985,17 +985,17 @@ func (arena *Arena) handlePlcInputOutput() {
blueAmpSpeaker.UpdateState(
blueAmpNoteCount, blueSpeakerNoteCount, blueAmplifyButton, blueCoopButton, matchStartTime, currentTime,
)
redAmplifiedTimeRemaining := redAmpSpeaker.AmplifiedTimeRemaining(currentTime)
arena.RedRealtimeScore.AmplifiedTimeRemainingSec = int(math.Ceil(redAmplifiedTimeRemaining))
blueAmplifiedTimeRemaining := blueAmpSpeaker.AmplifiedTimeRemaining(currentTime)
arena.BlueRealtimeScore.AmplifiedTimeRemainingSec = int(math.Ceil(blueAmplifiedTimeRemaining))
if !oldRedScore.Equals(redScore) || !oldBlueScore.Equals(blueScore) ||
oldRedAmplifiedTimeRemainingSec != arena.RedRealtimeScore.AmplifiedTimeRemainingSec ||
oldBlueAmplifiedTimeRemainingSec != arena.BlueRealtimeScore.AmplifiedTimeRemainingSec {
arena.RealtimeScoreNotifier.Notify()
}

// Handle the amp outputs.
redAmplifiedTimeRemaining := redAmpSpeaker.AmplifiedTimeRemaining(currentTime)
arena.RedRealtimeScore.AmplifiedTimeRemainingSec = int(math.Ceil(redAmplifiedTimeRemaining))
blueAmplifiedTimeRemaining := blueAmpSpeaker.AmplifiedTimeRemaining(currentTime)
arena.BlueRealtimeScore.AmplifiedTimeRemainingSec = int(math.Ceil(blueAmplifiedTimeRemaining))
if arena.MatchState == AutoPeriod || arena.MatchState == PausePeriod || arena.MatchState == TeleopPeriod {
redLowAmpLight := redAmpSpeaker.BankedAmpNotes >= 1
redHighAmpLight := redAmpSpeaker.BankedAmpNotes >= 2
Expand Down
6 changes: 4 additions & 2 deletions web/setup_settings.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,14 +56,16 @@ func (web *Web) settingsPostHandler(w http.ResponseWriter, r *http.Request) {
playoffType = model.DoubleEliminationPlayoff
numAlliances = 8
}
if eventSettings.PlayoffType != playoffType {
if eventSettings.PlayoffType != playoffType || eventSettings.NumPlayoffAlliances != numAlliances {
alliances, err := web.arena.Database.GetAllAlliances()
if err != nil {
handleWebErr(w, err)
return
}
if len(alliances) > 0 {
web.renderSettings(w, r, "Cannot change playoff type after alliance selection has been finalized.")
web.renderSettings(
w, r, "Cannot change playoff type or size after alliance selection has been finalized.",
)
return
}
}
Expand Down
12 changes: 9 additions & 3 deletions web/setup_settings_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,15 +50,21 @@ func TestSetupSettingsDoubleElimination(t *testing.T) {

func TestSetupSettingsInvalidValues(t *testing.T) {
web := setupTestWeb(t)
recorder := web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numPlayoffAlliances=8")
assert.Equal(t, 303, recorder.Code)

// Invalid number of alliances.
recorder := web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numAlliances=1")
recorder = web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numAlliances=1")
assert.Contains(t, recorder.Body.String(), "must be between 2 and 16")

// Changing the playoff type after alliance selection is finalized.
assert.Nil(t, web.arena.Database.CreateAlliance(&model.Alliance{Id: 1}))
recorder = web.postHttpResponse("/setup/settings", "playoffType=SingleEliminationPlayoff&numPlayoffAlliances=8")
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type after alliance selection")
recorder = web.postHttpResponse("/setup/settings", "playoffType=DoubleEliminationPlayoff")
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type or size after alliance selection")

// Changing the playoff size after alliance selection is finalized.
recorder = web.postHttpResponse("/setup/settings", "numPlayoffAlliances=2")
assert.Contains(t, recorder.Body.String(), "Cannot change playoff type or size after alliance selection")
}

func TestSetupSettingsClearDb(t *testing.T) {
Expand Down

0 comments on commit f213bbe

Please sign in to comment.