[Issue #11] - added ability to create new benchmark settings profiles
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-10-22 00:58:32 -04:00
parent 431d94660d
commit 008a6a5c72
14 changed files with 173 additions and 38 deletions

View File

@@ -73,10 +73,10 @@ func TestPostCreate(c flamego.Context, form forms.TestForm, errs binding.Errors)
_ = models.DB.Create(&test)
// bind benchmarks to test
for _, v := range form.Benchmarks {
for _, v := range form.BenchmarkProfiles {
var benchmark models.Benchmark
models.DB.First(&benchmark, v) // find benchmark
models.DB.Model(&test).Association("Benchmarks").Append(&benchmark)
models.DB.Model(&test).Association("BenchmarkProfiles").Append(&benchmark)
}
c.Redirect(fmt.Sprintf("/test/%d", test.ID))
@@ -86,7 +86,7 @@ func TestGetEdit(c flamego.Context, t template.Template, data template.Data) {
// find test in DB
testID := c.Param("test_id")
var test models.Test
models.DB.Preload("Hardware").Preload("Benchmarks").First(&test, testID)
models.DB.Preload("Hardware").Preload("BenchmarkProfiles").First(&test, testID)
data["test"] = test
// add hardware components to template
@@ -124,27 +124,27 @@ func TestPostEdit(c flamego.Context, form forms.TestForm, errs binding.Errors) {
// find hardware from DB
var test models.Test
models.DB.Preload("Hardware").Preload("Benchmarks").First(&test, testID)
models.DB.Preload("Hardware").Preload("BenchmarkProfiles").First(&test, testID)
test.Name = form.Name
test.Description = form.Description
test.HardwareID = form.Hardware
// bind benchmarks to test that aren't already associated
for _, b := range form.Benchmarks {
for _, b := range form.BenchmarkProfiles {
if ! test.IsBenchmarkSelected(b) {
var benchmark models.Benchmark
var benchmark models.BenchmarkProfile
models.DB.First(&benchmark, b) // find benchmark
models.DB.Model(&test).Association("Benchmarks").Append(&benchmark)
models.DB.Model(&test).Association("BenchmarkProfiles").Append(&benchmark)
}
}
// removed associated benchmarks that weren't in the form
for _, b := range test.Benchmarks {
for _, b := range test.BenchmarkProfiles {
if ! form.IsBenchmarkSelected(b.ID) {
var benchmark models.Benchmark
var benchmark models.BenchmarkProfile
models.DB.First(&benchmark, b) // find benchmark
models.DB.Model(&test).Association("Benchmarks").Delete(&benchmark)
models.DB.Model(&test).Association("BenchmarkProfiles").Delete(&benchmark)
}
}