Started adding test model/routes/views; removed a bit of the old paradigm with tying results directly to hardware

This commit is contained in:
2025-06-10 17:35:52 -04:00
parent 883019b181
commit 47cb580393
16 changed files with 343 additions and 85 deletions

View File

@ -5,3 +5,4 @@ require_relative 'hardware'
require_relative 'benchmark'
require_relative 'result'
require_relative 'reports'
require_relative 'test'

70
src/routes/test.rb Normal file
View File

@ -0,0 +1,70 @@
# frozen_string_literal: true
# /test routes
class GameData < Sinatra::Base
get '/test' do
tests = Test.reverse(:updated_at).limit(10).all()
erb :'test/index', locals: {
title: 'List of Tests',
tests: tests
}
end
get '/test/add' do
hardware = Hardware.order(:name).all()
benchmarks = Benchmark.order(:name).all()
erb :'test/add', locals: {
title: 'Add Test',
hardware: hardware,
benchmarks: benchmarks
}
end
post '/test/add' do
tst = Test.create(
name: params[:test_name],
hardware_id: params[:test_hardware],
description: params[:test_description]
)
# create an array of the selected benchmarks
benchmarks = Array(params[:test_benchmarks])
# associate the benchmarks to the test
benchmarks.each do |b|
tst.add_benchmark(b)
end
redirect "/test/#{tst.id}"
end
get '/test/:test_id' do
tst = Test.where(id: params[:test_id]).first()
benchmarks = Benchmark.order(:name).all()
erb :'test/view', locals: {
title: tst.name,
test: tst,
benchmarks: benchmarks
}
end
get '/test/:hardware_id/edit' do
hardware = Hardware.where(id: params[:hardware_id]).first()
erb :'test/edit', locals: {
title: "Editing: #{hardware.name}",
hardware: hardware
}
end
post '/test/:hardware_id/edit' do
hardware = Hardware.where(id: params[:hardware_id]).first()
hardware.update(
name: params[:hardware_name],
type: params[:hardware_type]
)
redirect "/hardware/#{hardware.id}"
end
end