Skip to content

Commit a5082e2

Browse files
committed
avreages
1 parent 0cd3f4d commit a5082e2

File tree

2 files changed

+76
-5
lines changed

2 files changed

+76
-5
lines changed

data.db

0 Bytes
Binary file not shown.

main.go

Lines changed: 76 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,60 @@ func populate(db *gorm.DB, allData []data.Schema, tcp [][]string, fields []strin
7171

7272
}
7373

74+
func generateAverages(tcp [][]string) [][]string {
75+
data := map[string]*[20]float64{}
76+
//kv of teamnmae; data
77+
totals := map[string]float64{}
78+
//kv of teanmae: total values
79+
for _, val := range tcp {
80+
if val[1] != "TeamName" {
81+
if _, ok := data[val[1]]; !ok {
82+
data[val[1]] = &[20]float64{}
83+
totals[val[1]] = 0
84+
}
85+
totals[val[1]]++
86+
for i, vala := range val {
87+
88+
if i >= 4 && i <= 18 {
89+
vald, err := strconv.Atoi(vala)
90+
if err == nil {
91+
//could use reflection
92+
data[val[1]][i] += float64(vald) //ternaries could help
93+
} else {
94+
//boolean
95+
if vala == "true" {
96+
data[val[1]][i]++
97+
}
98+
}
99+
} else {
100+
data[val[1]][i] = 0 //edit memory address
101+
}
102+
}
103+
}
104+
105+
}
106+
totalsa := [][]string{}
107+
totalsa = append(totalsa, []string{"ID", "TeamName", "TeamNumber", "MatchNumber", "AutoAmps", "AutoSpeaker", "AutoLeave", "AutoMiddle", "TeleopAmps", "TeleopSpeaker", "Chain", "Harmony", "Trap", "Park", "Ground", "Feeder", "LLVm", "Defense", "Notes"})
108+
for k, v := range data {
109+
tcpjwt := []string{}
110+
for i, _ := range v {
111+
if i >= 4 && i <= 18 {
112+
v[i] /= totals[k]
113+
114+
}
115+
tcpjwt = append(tcpjwt, fmt.Sprintf("%.2f", v[i]))
116+
117+
}
118+
tcpjwt[2] = k
119+
totalsa = append(totalsa, tcpjwt)
120+
}
121+
fmt.Println("--------------------------------------------------------------------")
122+
fmt.Println(totals)
123+
fmt.Println(fmt.Sprintf("%v", data["test"]))
124+
125+
return totalsa
126+
}
127+
74128
func main() {
75129
db, err := gorm.Open(sqlite.Open("data.db"), &gorm.Config{})
76130
//parse sqldb
@@ -79,7 +133,7 @@ func main() {
79133
}
80134

81135
allData := []data.Schema{}
82-
tcp := [][]string{}
136+
tcp := [][]string{} //cojtrolled erorr sin average
83137

84138
averageLabel := widget.NewLabel("Average: 0")
85139
teamChoose := widget.NewEntry()
@@ -106,13 +160,27 @@ func main() {
106160
averageLabel.SetText("Average: " + fmt.Sprintf("%v", total/amnt))
107161
})
108162
tcp, allData = populate(db, allData, tcp, []string{"ID", "TeamName", "TeamNumber", "MatchNumber", "AutoAmps", "AutoSpeaker", "AutoLeave", "AutoMiddle", "TeleopAmps", "TeleopSpeaker", "Chain", "Harmony", "Trap", "Park", "Ground", "Feeder", "LLVm", "Defense", "Notes"})
109-
163+
x := generateAverages(tcp)
110164
fmt.Println("llvm", tcp)
111165
app := app.New()
112166
current := app.NewWindow("TKO Crescendo Tracker (patented)")
113-
settings := app.NewWindow("Settings")
114-
settings.Resize(fyne.NewSize(600, 600))
167+
settings := app.NewWindow("Averages")
168+
settings.Resize(fyne.NewSize(1200, 600))
115169
settings.SetFixedSize(true)
170+
171+
averageTable := widget.NewTable(
172+
func() (int, int) {
173+
return len(x), len(x[0])
174+
},
175+
func() fyne.CanvasObject {
176+
return widget.NewLabel("placeholder")
177+
178+
},
179+
func(i widget.TableCellID, o fyne.CanvasObject) {
180+
o.(*widget.Label).SetText(x[i.Row][i.Col])
181+
},
182+
)
183+
116184
current.Resize(fyne.NewSize(1200, 700))
117185
current.SetFixedSize(true)
118186
settings.SetCloseIntercept(func() {
@@ -147,7 +215,8 @@ func main() {
147215
cont := container.NewVSplit(llvm, container.NewHSplit(container.NewVBox(widget.NewButtonWithIcon("Refresh", theme.ViewRefreshIcon(), func() {
148216
tcp, allData = populate(db, allData, tcp, []string{"ID", "TeamName", "TeamNumber", "MatchNumber", "AutoAmps", "AutoSpeaker", "AutoLeave", "AutoMiddle", "TeleopAmps", "TeleopSpeaker", "Chain", "Harmony", "Trap", "Park", "Ground", "Feeder", "LLVm", "Defense", "Notes"})
149217
llvm.Refresh()
150-
}), widget.NewButtonWithIcon("Settings", theme.SettingsIcon(), func() {
218+
x = generateAverages(tcp)
219+
}), widget.NewButtonWithIcon("Display Averages", theme.GridIcon(), func() {
151220
settings.Show()
152221
}), widget.NewButtonWithIcon("Export", theme.FileImageIcon(), func() {
153222
llvm := dialog.NewFileSave(func(reader fyne.URIWriteCloser, err error) {
@@ -171,6 +240,8 @@ func main() {
171240
cont.SetOffset(1) //clamps
172241
mainContainer := cont
173242

243+
settings.SetContent(averageTable)
244+
174245
//migrate data and term[late
175246
_ = db.AutoMigrate(&data.Schema{})
176247
//expressions ast

0 commit comments

Comments
 (0)