Evitar error en build si los resultados aún no están disponibles, y hacer que las páginas pendientes de recibir resultados aparezcan al final de las tablas

This commit is contained in:
Adrián de la Rosa Martín 2021-02-07 16:23:12 +01:00
parent 9219ecd337
commit dc9f33d14c
2 changed files with 25 additions and 11 deletions

View File

@ -23,21 +23,35 @@ const fs = require("fs");
url: w.url,
name: w.name,
twitter: w.twitter,
results: JSON.parse(
fs.readFileSync(
`_data/results/${w.url.replace(new RegExp("\\.", "g"), "!")}.json`,
"utf8"
)
),
}))
)
.flat()
.map((obj) => {
let results;
try {
results = JSON.parse(
fs.readFileSync(
`_data/results/${obj.url.replace(
new RegExp("\\.", "g"),
"!"
)}.json`,
"utf8"
)
);
} catch (e) {
// Los resultados aún no están disponibles.
}
return {
...obj,
results,
};
})
.map((obj) => ({
...obj,
grade: obj.results.grade,
score: obj.results.score,
tests_passed: obj.results.tests_passed,
state: obj.results.state,
grade: obj.results?.grade,
score: obj.results?.score ?? 9000, // Si no hay, un número alto para que aparezca al final al ordenar de menos a más seguro.
tests_passed: obj.results?.tests_passed,
state: obj.results?.state,
}));
fs.writeFileSync("_data/all.json", JSON.stringify(all));

View File

@ -10,7 +10,7 @@
<tbody>
{% for web in webs | sort(attribute = "score") %}
{% if web %}
{% if web.state == 'FINISHED' %}
{% if web.state === 'FINISHED' %}
<tr class="{{ web | color }}">
<td>
<a href="/w/{{ web.url | replace('.', '!') }}" title="{{ web | abbr }}">