Scouting: Ignore prescouted teams in match list
Some prescoutes teams that had the same match number and team number
are showing up as scouted already even though the match hasn't happened yet.
This patch ignores prescouted teams when checking if a match has been fully scouted.
Signed-off-by: Filip Kujawa <filip.j.kujawa@gmail.com>
Change-Id: I586f9d6d31251af18a958e05152a04e2cad5d7b2
diff --git a/scouting/db/db.go b/scouting/db/db.go
index b4d1bca..18d54a4 100644
--- a/scouting/db/db.go
+++ b/scouting/db/db.go
@@ -249,11 +249,11 @@
return stats2023, result.Error
}
-func (database *Database) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string) ([]Stats2023, error) {
+func (database *Database) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]Stats2023, error) {
var stats2023 []Stats2023
result := database.
- Where("team_number = ? AND match_number = ? AND set_number = ? AND comp_level = ?",
- teamNumber, matchNumber, setNumber, compLevel).
+ Where("team_number = ? AND match_number = ? AND set_number = ? AND comp_level = ? AND pre_scouting = ?",
+ teamNumber, matchNumber, setNumber, compLevel, preScouting).
Find(&stats2023)
return stats2023, result.Error
}
diff --git a/scouting/db/db_test.go b/scouting/db/db_test.go
index bef396b..9d1184a 100644
--- a/scouting/db/db_test.go
+++ b/scouting/db/db_test.go
@@ -341,7 +341,7 @@
// Validate that requesting status for a single team gets us the
// expected data.
- statsFor6344, err := fixture.db.ReturnStats2023ForTeam("6344", 3, 1, "qm")
+ statsFor6344, err := fixture.db.ReturnStats2023ForTeam("6344", 3, 1, "qm", false)
check(t, err, "Failed ReturnStats2023()")
if !reflect.DeepEqual([]Stats2023{stats[0]}, statsFor6344) {
@@ -350,7 +350,7 @@
// Validate that requesting team data for a non-existent match returns
// nothing.
- statsForMissing, err := fixture.db.ReturnStats2023ForTeam("6344", 9, 1, "qm")
+ statsForMissing, err := fixture.db.ReturnStats2023ForTeam("6344", 9, 1, "qm", false)
check(t, err, "Failed ReturnStats2023()")
if !reflect.DeepEqual([]Stats2023{}, statsForMissing) {
diff --git a/scouting/webserver/requests/requests.go b/scouting/webserver/requests/requests.go
index e5b4680..86a09d1 100644
--- a/scouting/webserver/requests/requests.go
+++ b/scouting/webserver/requests/requests.go
@@ -70,7 +70,7 @@
ReturnAllDriverRankings() ([]db.DriverRankingData, error)
ReturnAllShifts() ([]db.Shift, error)
ReturnStats2023() ([]db.Stats2023, error)
- ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string) ([]db.Stats2023, error)
+ ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2023, error)
QueryAllShifts(int) ([]db.Shift, error)
QueryNotes(int32) ([]string, error)
AddNotes(db.NotesData) error
@@ -162,7 +162,7 @@
func (handler requestAllMatchesHandler) teamHasBeenDataScouted(key MatchAssemblyKey, teamNumber string) (bool, error) {
stats, err := handler.db.ReturnStats2023ForTeam(
- teamNumber, key.MatchNumber, key.SetNumber, key.CompLevel)
+ teamNumber, key.MatchNumber, key.SetNumber, key.CompLevel, false)
if err != nil {
return false, err
}
diff --git a/scouting/webserver/requests/requests_test.go b/scouting/webserver/requests/requests_test.go
index 9a07726..ae017d2 100644
--- a/scouting/webserver/requests/requests_test.go
+++ b/scouting/webserver/requests/requests_test.go
@@ -936,10 +936,10 @@
return database.stats2023, nil
}
-func (database *MockDatabase) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string) ([]db.Stats2023, error) {
+func (database *MockDatabase) ReturnStats2023ForTeam(teamNumber string, matchNumber int32, setNumber int32, compLevel string, preScouting bool) ([]db.Stats2023, error) {
var results []db.Stats2023
for _, stats := range database.stats2023 {
- if stats.TeamNumber == teamNumber && stats.MatchNumber == matchNumber && stats.SetNumber == setNumber && stats.CompLevel == compLevel {
+ if stats.TeamNumber == teamNumber && stats.MatchNumber == matchNumber && stats.SetNumber == setNumber && stats.CompLevel == compLevel && stats.PreScouting == preScouting {
results = append(results, stats)
}
}