Update event settings for 2016.

This commit is contained in:
Patrick Fairbank
2016-07-29 23:17:39 -07:00
parent 18bbcf8d7f
commit 3b86b09734
7 changed files with 69 additions and 24 deletions

View File

@@ -154,7 +154,7 @@ func TestArenaMatchFlow(t *testing.T) {
// Check endgame and match end.
mainArena.matchStartTime = time.Now().
Add(-time.Duration(mainArena.matchTiming.AutoDurationSec+mainArena.matchTiming.PauseDurationSec+
mainArena.matchTiming.TeleopDurationSec-mainArena.matchTiming.EndgameTimeLeftSec) * time.Second)
mainArena.matchTiming.TeleopDurationSec-mainArena.matchTiming.EndgameTimeLeftSec) * time.Second)
mainArena.Update()
assert.Equal(t, ENDGAME_PERIOD, mainArena.MatchState)
assert.Equal(t, false, mainArena.AllianceStations["B3"].DsConn.Auto)

View File

@@ -8,8 +8,6 @@ CREATE TABLE event_settings (
selectionround2order VARCHAR(1),
selectionround3order VARCHAR(1),
teaminfodownloadenabled bool,
redgoallightsaddress VARCHAR(255),
bluegoallightsaddress VARCHAR(255),
tbapublishingenabled bool,
tbaeventcode VARCHAR(16),
tbasecretid VARCHAR(255),
@@ -23,7 +21,12 @@ CREATE TABLE event_settings (
bandwidthmonitoringenabled bool,
tbadownloadenabled bool,
adminpassword VARCHAR(255),
readerpassword VARCHAR(255)
readerpassword VARCHAR(255),
redgoallightsaddress VARCHAR(255),
reddefenselightsaddress VARCHAR(255),
bluegoallightsaddress VARCHAR(255),
bluedefenselightsaddress VARCHAR(255),
initialtowerstrength int
);
-- +goose Down

View File

@@ -14,8 +14,6 @@ type EventSettings struct {
SelectionRound2Order string
SelectionRound3Order string
TBADownloadEnabled bool
RedGoalLightsAddress string
BlueGoalLightsAddress string
TbaPublishingEnabled bool
TbaEventCode string
TbaSecretId string
@@ -29,6 +27,11 @@ type EventSettings struct {
BandwidthMonitoringEnabled bool
AdminPassword string
ReaderPassword string
RedGoalLightsAddress string
RedDefenseLightsAddress string
BlueGoalLightsAddress string
BlueDefenseLightsAddress string
InitialTowerStrength int
}
const eventSettingsId = 0
@@ -45,6 +48,10 @@ func (database *Database) GetEventSettings() (*EventSettings, error) {
eventSettings.SelectionRound2Order = "L"
eventSettings.SelectionRound3Order = ""
eventSettings.TBADownloadEnabled = true
// Game-specific default settings.
eventSettings.InitialTowerStrength = 10
err = database.eventSettingsMap.Insert(eventSettings)
if err != nil {
return nil, err

View File

@@ -18,8 +18,8 @@ func TestEventSettingsReadWrite(t *testing.T) {
eventSettings, err := db.GetEventSettings()
assert.Nil(t, err)
assert.Equal(t, EventSettings{Id: 0, Name: "Untitled Event", Code: "UE", DisplayBackgroundColor: "#00ff00",
NumElimAlliances: 8, SelectionRound2Order: "L", SelectionRound3Order: "",
TBADownloadEnabled: true}, *eventSettings)
NumElimAlliances: 8, SelectionRound2Order: "L", SelectionRound3Order: "", TBADownloadEnabled: true,
InitialTowerStrength: 10}, *eventSettings)
eventSettings.Name = "Chezy Champs"
eventSettings.Code = "cc"

View File

@@ -51,8 +51,6 @@ func SettingsPostHandler(w http.ResponseWriter, r *http.Request) {
eventSettings.SelectionRound2Order = r.PostFormValue("selectionRound2Order")
eventSettings.SelectionRound3Order = r.PostFormValue("selectionRound3Order")
eventSettings.TBADownloadEnabled = r.PostFormValue("TBADownloadEnabled") == "on"
eventSettings.RedGoalLightsAddress = r.PostFormValue("redGoalLightsAddress")
eventSettings.BlueGoalLightsAddress = r.PostFormValue("blueGoalLightsAddress")
eventSettings.TbaPublishingEnabled = r.PostFormValue("tbaPublishingEnabled") == "on"
eventSettings.TbaEventCode = r.PostFormValue("tbaEventCode")
eventSettings.TbaSecretId = r.PostFormValue("tbaSecretId")
@@ -66,6 +64,18 @@ func SettingsPostHandler(w http.ResponseWriter, r *http.Request) {
eventSettings.BandwidthMonitoringEnabled = r.PostFormValue("bandwidthMonitoringEnabled") == "on"
eventSettings.AdminPassword = r.PostFormValue("adminPassword")
eventSettings.ReaderPassword = r.PostFormValue("readerPassword")
eventSettings.RedGoalLightsAddress = r.PostFormValue("redGoalLightsAddress")
eventSettings.RedDefenseLightsAddress = r.PostFormValue("redDefenseLightsAddress")
eventSettings.BlueGoalLightsAddress = r.PostFormValue("blueGoalLightsAddress")
eventSettings.BlueDefenseLightsAddress = r.PostFormValue("blueDefenseLightsAddress")
initialTowerStrength, _ := strconv.Atoi(r.PostFormValue("initialTowerStrength"))
if initialTowerStrength < 1 {
renderSettings(w, r, "Initial tower strength must be at least 1.")
return
}
eventSettings.InitialTowerStrength = initialTowerStrength
err := db.SaveEventSettings(eventSettings)
if err != nil {
handleWebErr(w, err)

View File

@@ -33,7 +33,8 @@ func TestSetupSettings(t *testing.T) {
// Change the settings and check the response.
recorder = postHttpResponse("/setup/settings", "name=Chezy Champs&code=CC&displayBackgroundColor=#ff00ff&"+
"numElimAlliances=16&tbaPublishingEnabled=on&tbaEventCode=2014cc&tbaSecretId=secretId&tbaSecret=tbasec")
"numElimAlliances=16&tbaPublishingEnabled=on&tbaEventCode=2014cc&tbaSecretId=secretId&tbaSecret=tbasec&"+
"initialTowerStrength=9001")
assert.Equal(t, 302, recorder.Code)
recorder = getHttpResponse("/setup/settings")
assert.Contains(t, recorder.Body.String(), "Chezy Champs")
@@ -44,6 +45,7 @@ func TestSetupSettings(t *testing.T) {
assert.Contains(t, recorder.Body.String(), "2014cc")
assert.Contains(t, recorder.Body.String(), "secretId")
assert.Contains(t, recorder.Body.String(), "tbasec")
assert.Contains(t, recorder.Body.String(), "9001")
}
func TestSetupSettingsInvalidValues(t *testing.T) {

View File

@@ -146,19 +146,6 @@
</div>
</fieldset>
<fieldset>
<legend>Field I/O</legend>
<div class="form-group">
<label class="col-lg-5 control-label">Red goal LED controller address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="redGoalLightsAddress" value="{{.RedGoalLightsAddress}}">
</div>
</div>
<div class="form-group">
<label class="col-lg-5 control-label">Blue goal LED controller address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="blueGoalLightsAddress" value="{{.BlueGoalLightsAddress}}">
</div>
</div>
<legend>Networking</legend>
<p>Enable this setting if you have a Cisco Aironet AP1252AG access point and Catalyst 3500-series
switch available, for isolating each team to its own SSID and VLAN.</p>
@@ -205,6 +192,42 @@
</div>
</div>
</fieldset>
<fieldset>
<legend>LED Controllers</legend>
<div class="form-group">
<label class="col-lg-5 control-label">Red goal address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="redGoalLightsAddress" value="{{.RedGoalLightsAddress}}">
</div>
</div>
<div class="form-group">
<label class="col-lg-5 control-label">Red defense address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="redDefenseLightsAddress" value="{{.RedDefenseLightsAddress}}">
</div>
</div>
<div class="form-group">
<label class="col-lg-5 control-label">Blue goal address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="blueGoalLightsAddress" value="{{.BlueGoalLightsAddress}}">
</div>
</div>
<div class="form-group">
<label class="col-lg-5 control-label">Blue defense address/port</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="blueDefenseLightsAddress" value="{{.BlueDefenseLightsAddress}}">
</div>
</div>
</fieldset>
<fieldset>
<legend>2016 Game Rules</legend>
<div class="form-group">
<label class="col-lg-5 control-label">Initial tower strength</label>
<div class="col-lg-7">
<input type="text" class="form-control" name="initialTowerStrength" value="{{.InitialTowerStrength}}">
</div>
</div>
</fieldset>
<div class="form-group">
<div class="col-lg-7 col-lg-offset-5">
<button type="submit" class="btn btn-info">Save</button>