Started adding test model/routes/views; removed a bit of the old paradigm with tying results directly to hardware
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
# Hardware - database model for PC hardware
|
||||
class Hardware < Sequel::Model(:hardware)
|
||||
|
||||
one_to_many :results
|
||||
one_to_many :tests
|
||||
|
||||
def bench_results
|
||||
br = {}
|
||||
|
@ -3,3 +3,4 @@
|
||||
require_relative 'hardware'
|
||||
require_relative 'benchmark'
|
||||
require_relative 'result'
|
||||
require_relative 'test'
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Result - database model for benchmark results
|
||||
class Result < Sequel::Model
|
||||
|
||||
many_to_one :hardware
|
||||
many_to_one :test
|
||||
many_to_one :benchmark
|
||||
|
||||
def formatted_score
|
||||
|
10
src/models/test.rb
Normal file
10
src/models/test.rb
Normal file
@ -0,0 +1,10 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
# Test - database model for hardware tests
|
||||
class Test < Sequel::Model
|
||||
|
||||
one_to_many :result
|
||||
many_to_one :hardware
|
||||
many_to_many :benchmark
|
||||
|
||||
end
|
@ -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
70
src/routes/test.rb
Normal 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
|
Reference in New Issue
Block a user