Compare commits

...

2 Commits

2 changed files with 31 additions and 4 deletions

View File

@@ -33,6 +33,11 @@
margin: 12px; margin: 12px;
} }
#strain-list .cards .card .tag-list--title {
font-size: 0.8em;
}
@media screen and (min-width: 769px) { @media screen and (min-width: 769px) {
#strain-list .cards .card { #strain-list .cards .card {
width: 45%; width: 45%;
@@ -45,6 +50,12 @@
} }
} }
@media screen and (max-width: 860px) {
#strain-list .cards .card .tag-list--title {
font-size: 0.7em;
}
}
#search-form .filters .select { #search-form .filters .select {
display: block; display: block;
} }
@@ -345,8 +356,9 @@
.filter(Boolean) .filter(Boolean)
.sort((a, b) => { .sort((a, b) => {
if (a.score === b.score) { if (a.score === b.score) {
if (a.rating === b.rating) return 0; // sort matching search score by adjusted rating
return a.rating > b.rating ? -1 : 1; if (a.rating_adjusted === b.rating_adjusted) return 0;
return a.rating_adjusted > b.rating_adjusted ? -1 : 1;
} }
return a.score > b.score ? -1 : 1; return a.score > b.score ? -1 : 1;
}); });

View File

@@ -18,10 +18,25 @@ async function build() {
const data = await getData(); const data = await getData();
const options = {}; const options = {};
// calculate adjusted ratings
const totalMean =
data.strains.reduce((acc, strain) => acc + strain.rating + strain.rating_count, 0) /
data.strains.length;
data.strains = data.strains.map(strain => {
const minRatings = 10;
const { rating, rating_count: count } = strain;
return Object.assign(strain, {
rating_adjusted:
(((count / (count + minRatings)) * rating) / (minRatings / (count + minRatings))) *
totalMean,
});
});
// order strains by rating // order strains by rating
data.strains = data.strains.sort((n, strain) => { data.strains = data.strains.sort((n, strain) => {
if (strain.rating === n.rating) return 0; if (strain.rating_adjusted === n.rating_adjusted) return 0;
return strain.rating < n.rating ? -1 : 1; return strain.rating_adjusted < n.rating_adjusted ? -1 : 1;
}); });
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {