Scouting: Add button for docked/engaged attempt

Signed-off-by: Emily Markova <emily.markova@gmail.com>
Change-Id: If69eb7bf08dbcd73f35fe4e05f3e8c9594a50332
diff --git a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs b/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
index cd6afc6..b472c58 100644
--- a/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
+++ b/scouting/webserver/requests/messages/request_2023_data_scouting_response.fbs
@@ -25,11 +25,13 @@
   high_cones:int (id:17);
   cones_dropped:int (id:18);
   // Time in nanoseconds.
-  avg_cycle:int64 (id:19);
-  docked_auto:bool (id:20);
-  engaged_auto:bool (id:23);
-  docked:bool (id:25);
-  engaged:bool (id:26);
+  avg_cycle: int64 (id:19);
+  docked_auto: bool (id:20);
+  engaged_auto: bool (id:23);
+  balance_attempt_auto: bool (id:27);
+  docked: bool (id:25);
+  engaged: bool (id:26);
+  balance_attempt: bool (id:28);
 
   collected_by:string (id:24);
 }
diff --git a/scouting/webserver/requests/messages/submit_actions.fbs b/scouting/webserver/requests/messages/submit_actions.fbs
index 5488a79..8c79097 100644
--- a/scouting/webserver/requests/messages/submit_actions.fbs
+++ b/scouting/webserver/requests/messages/submit_actions.fbs
@@ -18,6 +18,7 @@
 table AutoBalanceAction {
     docked:bool (id:0);
     engaged:bool (id:1);
+    balance_attempt:bool (id:2);
 }
 
 table PickupObjectAction {
@@ -38,6 +39,7 @@
 table EndMatchAction {
     docked:bool (id:0);
     engaged:bool (id:1);
+    balance_attempt:bool (id:2);
 }
 
 union ActionType {
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index bb40ecf..9305274 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -404,6 +404,9 @@
 			if autoBalanceAction.Engaged() {
 				stat.EngagedAuto = true
 			}
+			if autoBalanceAction.BalanceAttempt() {
+				stat.BalanceAttemptAuto = true
+			}
 		} else if action_type == submit_actions.ActionTypePickupObjectAction {
 			var pick_up_action submit_actions.PickupObjectAction
 			pick_up_action.Init(actionTable.Bytes, actionTable.Pos)
@@ -476,6 +479,9 @@
 			if endMatchAction.Engaged() {
 				stat.Engaged = true
 			}
+			if endMatchAction.BalanceAttempt() {
+				stat.BalanceAttempt = true
+			}
 		}
 	}
 	if cycles != 0 {
@@ -512,33 +518,35 @@
 	var response Request2023DataScoutingResponseT
 	for _, stat := range stats {
 		response.StatsList = append(response.StatsList, &request_2023_data_scouting_response.Stats2023T{
-			TeamNumber:       stat.TeamNumber,
-			MatchNumber:      stat.MatchNumber,
-			SetNumber:        stat.SetNumber,
-			CompLevel:        stat.CompLevel,
-			StartingQuadrant: stat.StartingQuadrant,
-			LowCubesAuto:     stat.LowCubesAuto,
-			MiddleCubesAuto:  stat.MiddleCubesAuto,
-			HighCubesAuto:    stat.HighCubesAuto,
-			CubesDroppedAuto: stat.CubesDroppedAuto,
-			LowConesAuto:     stat.LowConesAuto,
-			MiddleConesAuto:  stat.MiddleConesAuto,
-			HighConesAuto:    stat.HighConesAuto,
-			ConesDroppedAuto: stat.ConesDroppedAuto,
-			LowCubes:         stat.LowCubes,
-			MiddleCubes:      stat.MiddleCubes,
-			HighCubes:        stat.HighCubes,
-			CubesDropped:     stat.CubesDropped,
-			LowCones:         stat.LowCones,
-			MiddleCones:      stat.MiddleCones,
-			HighCones:        stat.HighCones,
-			ConesDropped:     stat.ConesDropped,
-			AvgCycle:         stat.AvgCycle,
-			DockedAuto:       stat.DockedAuto,
-			EngagedAuto:      stat.EngagedAuto,
-			Docked:           stat.Docked,
-			Engaged:          stat.Engaged,
-			CollectedBy:      stat.CollectedBy,
+			TeamNumber:         stat.TeamNumber,
+			MatchNumber:        stat.MatchNumber,
+			SetNumber:          stat.SetNumber,
+			CompLevel:          stat.CompLevel,
+			StartingQuadrant:   stat.StartingQuadrant,
+			LowCubesAuto:       stat.LowCubesAuto,
+			MiddleCubesAuto:    stat.MiddleCubesAuto,
+			HighCubesAuto:      stat.HighCubesAuto,
+			CubesDroppedAuto:   stat.CubesDroppedAuto,
+			LowConesAuto:       stat.LowConesAuto,
+			MiddleConesAuto:    stat.MiddleConesAuto,
+			HighConesAuto:      stat.HighConesAuto,
+			ConesDroppedAuto:   stat.ConesDroppedAuto,
+			LowCubes:           stat.LowCubes,
+			MiddleCubes:        stat.MiddleCubes,
+			HighCubes:          stat.HighCubes,
+			CubesDropped:       stat.CubesDropped,
+			LowCones:           stat.LowCones,
+			MiddleCones:        stat.MiddleCones,
+			HighCones:          stat.HighCones,
+			ConesDropped:       stat.ConesDropped,
+			AvgCycle:           stat.AvgCycle,
+			DockedAuto:         stat.DockedAuto,
+			EngagedAuto:        stat.EngagedAuto,
+			BalanceAttemptAuto: stat.BalanceAttemptAuto,
+			Docked:             stat.Docked,
+			Engaged:            stat.Engaged,
+			BalanceAttempt:     stat.BalanceAttempt,
+			CollectedBy:        stat.CollectedBy,
 		})
 	}
 
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index fb0be5c..dab3174 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -131,7 +131,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: true,
-				Docked: false, Engaged: false, CollectedBy: "alex",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: false, CollectedBy: "alex",
 			},
 			{
 				TeamNumber: "973", MatchNumber: 3, SetNumber: 1,
@@ -142,7 +143,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "bob",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "bob",
 			},
 		},
 	}
@@ -214,7 +216,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "isaac",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "isaac",
 			},
 			{
 				TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
@@ -225,7 +228,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: false, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "unknown",
+				BalanceAttemptAuto: true, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "unknown",
 			},
 		},
 	}
@@ -253,7 +257,8 @@
 				HighCubes: 2, CubesDropped: 1, LowCones: 1,
 				MiddleCones: 2, HighCones: 0, ConesDropped: 1,
 				AvgCycle: 34, DockedAuto: true, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "isaac",
+				BalanceAttemptAuto: false, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "isaac",
 			},
 			{
 				TeamNumber: "2343", MatchNumber: 1, SetNumber: 2,
@@ -264,7 +269,8 @@
 				HighCubes: 1, CubesDropped: 0, LowCones: 0,
 				MiddleCones: 2, HighCones: 1, ConesDropped: 1,
 				AvgCycle: 53, DockedAuto: false, EngagedAuto: false,
-				Docked: false, Engaged: false, CollectedBy: "unknown",
+				BalanceAttemptAuto: true, Docked: false, Engaged: false,
+				BalanceAttempt: true, CollectedBy: "unknown",
 			},
 		},
 	}
@@ -332,8 +338,9 @@
 				ActionTaken: &submit_actions.ActionTypeT{
 					Type: submit_actions.ActionTypeAutoBalanceAction,
 					Value: &submit_actions.AutoBalanceActionT{
-						Docked:  true,
-						Engaged: true,
+						Docked:         true,
+						Engaged:        true,
+						BalanceAttempt: false,
 					},
 				},
 				Timestamp: 2400,
@@ -363,8 +370,9 @@
 				ActionTaken: &submit_actions.ActionTypeT{
 					Type: submit_actions.ActionTypeEndMatchAction,
 					Value: &submit_actions.EndMatchActionT{
-						Docked:  true,
-						Engaged: false,
+						Docked:         true,
+						Engaged:        false,
+						BalanceAttempt: true,
 					},
 				},
 				Timestamp: 4000,
@@ -388,7 +396,8 @@
 		HighCubes: 0, CubesDropped: 0, LowCones: 0,
 		MiddleCones: 0, HighCones: 1, ConesDropped: 0,
 		AvgCycle: 1100, DockedAuto: true, EngagedAuto: true,
-		Docked: true, Engaged: false, CollectedBy: "katie",
+		BalanceAttemptAuto: false, Docked: true, Engaged: false,
+		BalanceAttempt: true, CollectedBy: "katie",
 	}
 
 	if expected != response {