[Issue #11] - added ability to create new benchmark settings profiles
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user