scouting: Add "defense received" and "comments" to the database
This patch makes it so the webserver saves the "defense received" and
"comment" fields to the database.
Signed-off-by: Philipp Schrader <philipp.schrader@gmail.com>
Change-Id: I3a76518095f7b38360b5c43ae3a117215244c3da
diff --git a/scouting/db/db.go b/scouting/db/db.go
index 4b40dbc..85395e1 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -25,8 +25,9 @@
StartingQuadrant int32
AutoBallPickedUp [5]bool
// TODO(phil): Re-order auto and teleop fields so auto comes first.
- ShotsMissed, UpperGoalShots, LowerGoalShots int32
- ShotsMissedAuto, UpperGoalAuto, LowerGoalAuto, PlayedDefense int32
+ ShotsMissed, UpperGoalShots, LowerGoalShots int32
+ ShotsMissedAuto, UpperGoalAuto, LowerGoalAuto int32
+ PlayedDefense, DefenseReceivedScore int32
// Climbing level:
// 0 -> "NoAttempt"
// 1 -> "Failed"
@@ -36,6 +37,8 @@
// 5 -> "High"
// 6 -> "Transversal"
Climbing int32
+ // Some non-numerical data that the scout felt worth noting.
+ Comment string
// The username of the person who collected these statistics.
// "unknown" if submitted without logging in.
// Empty if the stats have not yet been collected.
@@ -105,7 +108,9 @@
"UpperGoalAuto INTEGER, " +
"LowerGoalAuto INTEGER, " +
"PlayedDefense INTEGER, " +
+ "DefenseReceivedScore INTEGER, " +
"Climbing INTEGER, " +
+ "Comment VARCHAR, " +
"CollectedBy VARCHAR)")
if err != nil {
database.Close()
@@ -175,7 +180,8 @@
"AutoBall4PickedUp, AutoBall5PickedUp, " +
"ShotsMissed, UpperGoalShots, LowerGoalShots, " +
"ShotsMissedAuto, UpperGoalAuto, LowerGoalAuto, " +
- "PlayedDefense, Climbing, CollectedBy) " +
+ "PlayedDefense, DefenseReceivedScore, Climbing, " +
+ "Comment, CollectedBy) " +
"VALUES (" +
"$1, $2, " +
"$3, " +
@@ -183,7 +189,8 @@
"$7, $8, " +
"$9, $10, $11, " +
"$12, $13, $14, " +
- "$15, $16, $17) " +
+ "$15, $16, $17, " +
+ "$18, $19) " +
"RETURNING id")
if err != nil {
return errors.New(fmt.Sprint("Failed to prepare insertion into stats database: ", err))
@@ -199,7 +206,8 @@
false, false,
0, 0, 0,
0, 0, 0,
- 0, 0, "")
+ 0, 0, 0,
+ "", "")
err = row.Scan(&rowIds[i])
if err != nil {
return errors.New(fmt.Sprint("Failed to insert stats: ", err))
@@ -236,8 +244,9 @@
"AutoBall4PickedUp = $7, AutoBall5PickedUp = $8, " +
"ShotsMissed = $9, UpperGoalShots = $10, LowerGoalShots = $11, " +
"ShotsMissedAuto = $12, UpperGoalAuto = $13, LowerGoalAuto = $14, " +
- "PlayedDefense = $15, Climbing = $16, CollectedBy = $17 " +
- "WHERE MatchNumber = $18 AND TeamNumber = $19")
+ "PlayedDefense = $15, DefenseReceivedScore = $16, Climbing = $17, " +
+ "Comment = $18, CollectedBy = $19 " +
+ "WHERE MatchNumber = $20 AND TeamNumber = $21")
if err != nil {
return errors.New(fmt.Sprint("Failed to prepare stats update statement: ", err))
}
@@ -250,7 +259,8 @@
s.AutoBallPickedUp[3], s.AutoBallPickedUp[4],
s.ShotsMissed, s.UpperGoalShots, s.LowerGoalShots,
s.ShotsMissedAuto, s.UpperGoalAuto, s.LowerGoalAuto,
- s.PlayedDefense, s.Climbing, s.CollectedBy,
+ s.PlayedDefense, s.DefenseReceivedScore, s.Climbing,
+ s.Comment, s.CollectedBy,
s.MatchNumber, s.TeamNumber)
if err != nil {
return errors.New(fmt.Sprint("Failed to update stats database: ", err))
@@ -308,7 +318,8 @@
&team.AutoBallPickedUp[3], &team.AutoBallPickedUp[4],
&team.ShotsMissed, &team.UpperGoalShots, &team.LowerGoalShots,
&team.ShotsMissedAuto, &team.UpperGoalAuto, &team.LowerGoalAuto,
- &team.PlayedDefense, &team.Climbing, &team.CollectedBy)
+ &team.PlayedDefense, &team.DefenseReceivedScore, &team.Climbing,
+ &team.Comment, &team.CollectedBy)
if err != nil {
return nil, errors.New(fmt.Sprint("Failed to scan from stats: ", err))
}
@@ -359,7 +370,8 @@
&team.AutoBallPickedUp[3], &team.AutoBallPickedUp[4],
&team.ShotsMissed, &team.UpperGoalShots, &team.LowerGoalShots,
&team.ShotsMissedAuto, &team.UpperGoalAuto, &team.LowerGoalAuto,
- &team.PlayedDefense, &team.Climbing, &team.CollectedBy)
+ &team.PlayedDefense, &team.DefenseReceivedScore, &team.Climbing,
+ &team.Comment, &team.CollectedBy)
if err != nil {
return nil, errors.New(fmt.Sprint("Failed to scan from stats: ", err))
}
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index c5bea5e..02e8d50 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -93,8 +93,8 @@
AutoBallPickedUp: [5]bool{false, false, false, true, false},
ShotsMissed: 9, UpperGoalShots: 5, LowerGoalShots: 4,
ShotsMissedAuto: 3, UpperGoalAuto: 2, LowerGoalAuto: 1,
- PlayedDefense: 2, Climbing: 3,
- CollectedBy: "josh",
+ PlayedDefense: 2, DefenseReceivedScore: 0, Climbing: 3,
+ Comment: "this is a comment", CollectedBy: "josh",
},
Stats{
TeamNumber: 1001, MatchNumber: 7,
@@ -102,8 +102,8 @@
AutoBallPickedUp: [5]bool{true, false, true, true, false},
ShotsMissed: 6, UpperGoalShots: 9, LowerGoalShots: 9,
ShotsMissedAuto: 0, UpperGoalAuto: 0, LowerGoalAuto: 0,
- PlayedDefense: 0, Climbing: 0,
- CollectedBy: "rupert",
+ PlayedDefense: 0, DefenseReceivedScore: 1, Climbing: 0,
+ Comment: "another comment", CollectedBy: "rupert",
},
Stats{
TeamNumber: 777, MatchNumber: 7,
@@ -111,8 +111,8 @@
AutoBallPickedUp: [5]bool{false, true, true, true, false},
ShotsMissed: 5, UpperGoalShots: 7, LowerGoalShots: 12,
ShotsMissedAuto: 0, UpperGoalAuto: 4, LowerGoalAuto: 0,
- PlayedDefense: 0, Climbing: 0,
- CollectedBy: "felix",
+ PlayedDefense: 0, DefenseReceivedScore: 3, Climbing: 0,
+ Comment: "and another", CollectedBy: "felix",
},
Stats{
TeamNumber: 1000, MatchNumber: 7,
@@ -120,8 +120,8 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 12, UpperGoalShots: 6, LowerGoalShots: 10,
ShotsMissedAuto: 0, UpperGoalAuto: 7, LowerGoalAuto: 0,
- PlayedDefense: 0, Climbing: 0,
- CollectedBy: "thea",
+ PlayedDefense: 0, DefenseReceivedScore: 1, Climbing: 0,
+ Comment: "and another one", CollectedBy: "thea",
},
Stats{
TeamNumber: 4321, MatchNumber: 7,
@@ -129,8 +129,8 @@
AutoBallPickedUp: [5]bool{true, false, false, false, false},
ShotsMissed: 14, UpperGoalShots: 12, LowerGoalShots: 3,
ShotsMissedAuto: 0, UpperGoalAuto: 7, LowerGoalAuto: 0,
- PlayedDefense: 0, Climbing: 0,
- CollectedBy: "amy",
+ PlayedDefense: 0, DefenseReceivedScore: 0, Climbing: 0,
+ Comment: "more comment", CollectedBy: "amy",
},
Stats{
TeamNumber: 1234, MatchNumber: 7,
@@ -138,8 +138,8 @@
AutoBallPickedUp: [5]bool{false, false, false, false, true},
ShotsMissed: 3, UpperGoalShots: 4, LowerGoalShots: 0,
ShotsMissedAuto: 0, UpperGoalAuto: 9, LowerGoalAuto: 0,
- PlayedDefense: 0, Climbing: 0,
- CollectedBy: "beth",
+ PlayedDefense: 0, DefenseReceivedScore: 5, Climbing: 0,
+ Comment: "final comment", CollectedBy: "beth",
},
}
@@ -211,14 +211,14 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
ShotsMissedAuto: 2, UpperGoalAuto: 2, LowerGoalAuto: 2,
- PlayedDefense: 2, Climbing: 2},
+ PlayedDefense: 2, DefenseReceivedScore: 1, Climbing: 2},
Stats{
TeamNumber: 1234, MatchNumber: 94,
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{false, false, false, false, true},
ShotsMissed: 4, UpperGoalShots: 4, LowerGoalShots: 4,
ShotsMissedAuto: 4, UpperGoalAuto: 4, LowerGoalAuto: 4,
- PlayedDefense: 7, Climbing: 2,
+ PlayedDefense: 7, DefenseReceivedScore: 1, Climbing: 2,
},
Stats{
TeamNumber: 1233, MatchNumber: 94,
@@ -226,7 +226,7 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 3, UpperGoalShots: 3, LowerGoalShots: 3,
ShotsMissedAuto: 3, UpperGoalAuto: 3, LowerGoalAuto: 3,
- PlayedDefense: 3, Climbing: 3,
+ PlayedDefense: 3, DefenseReceivedScore: 0, Climbing: 3,
},
Stats{
TeamNumber: 1232, MatchNumber: 94,
@@ -234,7 +234,7 @@
AutoBallPickedUp: [5]bool{true, false, false, false, true},
ShotsMissed: 5, UpperGoalShots: 5, LowerGoalShots: 5,
ShotsMissedAuto: 5, UpperGoalAuto: 5, LowerGoalAuto: 5,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 2, Climbing: 1,
},
Stats{
TeamNumber: 1231, MatchNumber: 94,
@@ -242,7 +242,7 @@
AutoBallPickedUp: [5]bool{false, false, true, false, false},
ShotsMissed: 6, UpperGoalShots: 6, LowerGoalShots: 6,
ShotsMissedAuto: 6, UpperGoalAuto: 6, LowerGoalAuto: 6,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 3, Climbing: 1,
},
Stats{
TeamNumber: 1239, MatchNumber: 94,
@@ -250,7 +250,7 @@
AutoBallPickedUp: [5]bool{false, true, true, false, false},
ShotsMissed: 7, UpperGoalShots: 7, LowerGoalShots: 7,
ShotsMissedAuto: 7, UpperGoalAuto: 7, LowerGoalAuto: 3,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 5, Climbing: 1,
},
}
@@ -271,7 +271,7 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
ShotsMissedAuto: 2, UpperGoalAuto: 2, LowerGoalAuto: 2,
- PlayedDefense: 2, Climbing: 2,
+ PlayedDefense: 2, DefenseReceivedScore: 1, Climbing: 2,
},
}
@@ -339,14 +339,14 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 2, UpperGoalShots: 2, LowerGoalShots: 2,
ShotsMissedAuto: 2, UpperGoalAuto: 2, LowerGoalAuto: 2,
- PlayedDefense: 2, Climbing: 2},
+ PlayedDefense: 2, DefenseReceivedScore: 3, Climbing: 2},
Stats{
TeamNumber: 1236, MatchNumber: 94,
StartingQuadrant: 2,
AutoBallPickedUp: [5]bool{false, false, false, false, true},
ShotsMissed: 4, UpperGoalShots: 4, LowerGoalShots: 4,
ShotsMissedAuto: 4, UpperGoalAuto: 4, LowerGoalAuto: 4,
- PlayedDefense: 7, Climbing: 2,
+ PlayedDefense: 7, DefenseReceivedScore: 1, Climbing: 2,
},
Stats{
TeamNumber: 1237, MatchNumber: 94,
@@ -354,7 +354,7 @@
AutoBallPickedUp: [5]bool{false, false, false, false, false},
ShotsMissed: 3, UpperGoalShots: 3, LowerGoalShots: 3,
ShotsMissedAuto: 3, UpperGoalAuto: 3, LowerGoalAuto: 3,
- PlayedDefense: 3, Climbing: 3,
+ PlayedDefense: 3, DefenseReceivedScore: 0, Climbing: 3,
},
Stats{
TeamNumber: 1238, MatchNumber: 94,
@@ -362,7 +362,7 @@
AutoBallPickedUp: [5]bool{true, false, false, false, true},
ShotsMissed: 5, UpperGoalShots: 5, LowerGoalShots: 5,
ShotsMissedAuto: 5, UpperGoalAuto: 5, LowerGoalAuto: 5,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 4, Climbing: 1,
},
Stats{
TeamNumber: 1239, MatchNumber: 94,
@@ -370,7 +370,7 @@
AutoBallPickedUp: [5]bool{false, false, true, false, false},
ShotsMissed: 6, UpperGoalShots: 6, LowerGoalShots: 6,
ShotsMissedAuto: 6, UpperGoalAuto: 6, LowerGoalAuto: 6,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 4, Climbing: 1,
},
Stats{
TeamNumber: 1233, MatchNumber: 94,
@@ -378,7 +378,7 @@
AutoBallPickedUp: [5]bool{false, true, true, false, false},
ShotsMissed: 7, UpperGoalShots: 7, LowerGoalShots: 7,
ShotsMissedAuto: 7, UpperGoalAuto: 7, LowerGoalAuto: 3,
- PlayedDefense: 7, Climbing: 1,
+ PlayedDefense: 7, DefenseReceivedScore: 1, Climbing: 1,
},
}