Started adding results
This commit is contained in:
parent
65fc2b753b
commit
6761aaa413
@ -15,6 +15,14 @@ body{
|
|||||||
background: #eee;
|
background: #eee;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a{
|
||||||
|
color: teal;
|
||||||
|
transition: all 200ms ease-in-out;
|
||||||
|
}
|
||||||
|
a:hover{
|
||||||
|
color: #007070;
|
||||||
|
}
|
||||||
|
|
||||||
textarea{
|
textarea{
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
min-width: 100%;
|
min-width: 100%;
|
||||||
@ -25,6 +33,10 @@ textarea{
|
|||||||
max-width: 1024px;
|
max-width: 1024px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
select[multiple]{
|
||||||
|
min-height: 125px;
|
||||||
|
}
|
||||||
|
|
||||||
#main-nav{
|
#main-nav{
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
@ -81,3 +93,10 @@ textarea{
|
|||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#result_form{
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
#result_form *{
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
@ -8,6 +8,7 @@ const sequelize = new Sequelize({
|
|||||||
const Hardware = require('./hardware')(sequelize);
|
const Hardware = require('./hardware')(sequelize);
|
||||||
const Benchmark = require('./benchmark')(sequelize);
|
const Benchmark = require('./benchmark')(sequelize);
|
||||||
const Test = require('./test')(sequelize);
|
const Test = require('./test')(sequelize);
|
||||||
|
const Result = require('./result')(sequelize);
|
||||||
|
|
||||||
// Hardware/Test one-to-many
|
// Hardware/Test one-to-many
|
||||||
Hardware.hasMany(Test);
|
Hardware.hasMany(Test);
|
||||||
@ -17,4 +18,12 @@ Test.belongsTo(Hardware);
|
|||||||
Benchmark.belongsToMany(Test, { through: 'tests_benchmarks' });
|
Benchmark.belongsToMany(Test, { through: 'tests_benchmarks' });
|
||||||
Test.belongsToMany(Benchmark, { through: 'tests_benchmarks' });
|
Test.belongsToMany(Benchmark, { through: 'tests_benchmarks' });
|
||||||
|
|
||||||
|
// Result/Benchmark many-to-one
|
||||||
|
Result.belongsTo(Benchmark);
|
||||||
|
Benchmark.hasMany(Result);
|
||||||
|
|
||||||
|
// Result/Test many-to-one
|
||||||
|
Result.belongsTo(Test);
|
||||||
|
Test.hasMany(Result);
|
||||||
|
|
||||||
module.exports = sequelize;
|
module.exports = sequelize;
|
||||||
|
22
src/models/result.js
Normal file
22
src/models/result.js
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
const { Sequelize } = require("sequelize");
|
||||||
|
|
||||||
|
module.exports = (sequelize) => {
|
||||||
|
const Result = sequelize.define('Result', {
|
||||||
|
avgScore: {
|
||||||
|
type: Sequelize.DOUBLE,
|
||||||
|
null: false,
|
||||||
|
},
|
||||||
|
minScore: {
|
||||||
|
type: Sequelize.DOUBLE,
|
||||||
|
null: true,
|
||||||
|
},
|
||||||
|
maxScore: {
|
||||||
|
type: Sequelize.DOUBLE,
|
||||||
|
null: true,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
tableName: 'results'
|
||||||
|
});
|
||||||
|
return Result;
|
||||||
|
};
|
@ -9,7 +9,7 @@ exports.getIndex = async function(req, res) {
|
|||||||
|
|
||||||
// GET /test/list - list of tests
|
// GET /test/list - list of tests
|
||||||
exports.getList = async function(req, res) {
|
exports.getList = async function(req, res) {
|
||||||
var tests = await Test.findAll();
|
var tests = await Test.findAll({order: [['updatedAt', 'DESC']]});
|
||||||
res.render('test/list', {
|
res.render('test/list', {
|
||||||
tests: tests
|
tests: tests
|
||||||
});
|
});
|
||||||
|
@ -5,13 +5,79 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<h2>Test: {{ test.getHardware().name }} - {{ test.dateTag }}</h2>
|
<h2>Test: {{ test.getHardware().name }} - {{ test.dateTag }}</h2>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<form id="result_form" class="twelve columns" action="/result/add" method="post">
|
||||||
|
<input type="hidden" name="result_test" value="{{ test.id }}">
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="four columns">
|
||||||
|
<label for="result_benchmark">
|
||||||
|
Benchmark:
|
||||||
|
<select class="u-full-width" id="result_benchmark" name="result_benchmark">
|
||||||
|
{% for b in test.getBenchmarks() %}
|
||||||
|
<option value="{{ b.id }}">{{ b.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="two columns">
|
||||||
|
<label for="result_avg">
|
||||||
|
Average:
|
||||||
|
<input type="number" id="result_avg" class="u-full-width" name="result_avg">
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="two columns">
|
||||||
|
<label for="result_min">
|
||||||
|
Minimum:
|
||||||
|
<input type="number" id="result_min" class="u-full-width" name="result_min">
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="two columns">
|
||||||
|
<label for="result_max">
|
||||||
|
Maximum:
|
||||||
|
<input type="number" id="result_max" class="u-full-width" name="result_max">
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<input type="submit" class="two columns" value="Submit">
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<hr>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
<div class="twelve columns">
|
<div class="twelve columns">
|
||||||
<ul>
|
<h3>Benchmarks</h3>
|
||||||
{% for b in test.getBenchmarks() %}
|
<table class="u-full-width">
|
||||||
<li>{{ b.name }}</li>
|
<thead>
|
||||||
{% endfor %}
|
<tr>
|
||||||
</ul>
|
<td>Benchmark</td>
|
||||||
|
<td># Results</td>
|
||||||
|
<td>Avg.</td>
|
||||||
|
<td>Min.</td>
|
||||||
|
<td>Max.</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for b in test.getBenchmarks() %}
|
||||||
|
<tr>
|
||||||
|
<td>{{ b.name }}</td>
|
||||||
|
<td>{{ test.getResults({where: {testId: test.id}})|length }}</td>
|
||||||
|
<td>N/a</td>
|
||||||
|
<td>N/a</td>
|
||||||
|
<td>N/a</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
|
Loading…
Reference in New Issue
Block a user