Can someone review my code and help me figure out what’s keeping my new ratings from being averaged and displayed?
www.sparkyourwork.com/petbizmarketing at the very bottom
$w.onReady(function () {
//TODO: write your page related code here…
});
export function ratingsInput1_change(event) {
$w(“#dataset1”).onReady(() => {
// get the current item from the dataset
const currentItem = $w(“#dataset1”).getCurrentItem();
// get the current average rating, number of ratings, and
//total ratings for the current dataset item
const average = currentItem.avg;
const count = currentItem.numRatings;
const total = currentItem.totalRatings;
// get the new rating from the ratings input
const newRating = $w(‘#ratingsInput1’).value;
// calculate the new average rating based on the current
//average and count
const newAverageLong = (total + newRating) / (count +1);
// Round the average rating to 1 decimal point
const newAverageShort = Number.parseFloat(newAverageLong).toFixed(1);
// set the dataset fields to the new average, total
// ratings, and number of ratings
$w(‘#dataset1’).setFieldValues({
‘averageRating’: newAverageShort,
‘newField’: total + newRating,
‘totalRatingsNewField’: (count + 1)
});
// save the dataset fields to the collection
$w(‘#dataset1’).save()
.catch((err) => {
console.log(‘could not save new rating’);
});
});
}