summaryrefslogtreecommitdiff
path: root/addons/portal_rating
diff options
context:
space:
mode:
authorBenjamin Frantzen (bfr) <bfr@odoo.com>2019-12-18 13:45:38 +0000
committerYannick Tivisse <yti@odoo.com>2020-05-08 12:17:20 +0000
commite4a4ffb974ccde1842e1b2389450718f8576ad5b (patch)
tree6159873058286c65a3a3bfb5a48f2ef5ffbf7565 /addons/portal_rating
parentf427a38c4e0dcd63d086706ad66a3e5570fbf0aa (diff)
[IMP] customer ratings flow improvements
- Rename the 'Use Rating on Project' feature into 'Customer Ratings' - Rename the 'Set Email Template to Stages' link to 'Set a Rating Email Template on Stages' - Add an optional list view for the Stages menu - display warning if the rating_template_id field is set and if one of the selected project_ids doesn't have the rating_status field set to true - Project form view revamp - rename the '% on tasks' stat button into 'Customer Satisfaction' - Remove the 'no option' for the rating frequency field because it is required - project form : Add a 'Go to Website' stat button - Project dashboard: remove the 'Customer Ratings' menu item in more - Ratings page: the 'Last 30 days' filter include ratings from today - remove the Appointment / Helpdesk Customer Satisfaction / Live Support menu items TASK ID : 1251
Diffstat (limited to 'addons/portal_rating')
-rw-r--r--addons/portal_rating/static/src/js/portal_chatter.js9
-rw-r--r--addons/portal_rating/static/src/js/portal_composer.js8
-rw-r--r--addons/portal_rating/static/src/js/portal_rating_composer.js4
-rw-r--r--addons/portal_rating/views/rating_templates.xml2
4 files changed, 9 insertions, 14 deletions
diff --git a/addons/portal_rating/static/src/js/portal_chatter.js b/addons/portal_rating/static/src/js/portal_chatter.js
index 51b403b521b..baaebd17be6 100644
--- a/addons/portal_rating/static/src/js/portal_chatter.js
+++ b/addons/portal_rating/static/src/js/portal_chatter.js
@@ -9,7 +9,6 @@ var time = require('web.time');
var _t = core._t;
var PortalChatter = portalChatter.PortalChatter;
var qweb = core.qweb;
-var STAR_RATING_RATIO = 2; // conversion factor from the star (1-5) to the db rating range (1-10)
/**
* PortalChatter
@@ -67,7 +66,7 @@ PortalChatter.include({
messages = this._super.apply(this, arguments);
if (this.options['display_rating']) {
_.each(messages, function (m, i) {
- m.rating_value = self.roundToHalf(m['rating_value'] / STAR_RATING_RATIO);
+ m.rating_value = self.roundToHalf(m['rating_value']);
m.rating = self._preprocessCommentData(m.rating, i);
});
}
@@ -114,13 +113,13 @@ PortalChatter.include({
return;
}
var ratingData = {
- 'avg': Math.round(result['rating_stats']['avg'] / STAR_RATING_RATIO * 100) / 100,
+ 'avg': Math.round(result['rating_stats']['avg'] * 100) / 100,
'percent': [],
};
_.each(_.keys(result['rating_stats']['percent']).reverse(), function (rating) {
if (rating % 2 === 0) {
ratingData['percent'].push({
- 'num': rating / STAR_RATING_RATIO,
+ 'num': rating,
'percent': utils.round_precision(result['rating_stats']['percent'][rating], 0.01),
});
}
@@ -347,7 +346,7 @@ PortalChatter.include({
_onChangeRatingDomain: function () {
var domain = [];
if (this.get('rating_value')) {
- domain = [['rating_value', '=', this.get('rating_value') * STAR_RATING_RATIO]];
+ domain = [['rating_value', '=', this.get('rating_value')]];
}
this._changeCurrentPage(1, domain);
},
diff --git a/addons/portal_rating/static/src/js/portal_composer.js b/addons/portal_rating/static/src/js/portal_composer.js
index 37b0b9e3511..63854caa302 100644
--- a/addons/portal_rating/static/src/js/portal_composer.js
+++ b/addons/portal_rating/static/src/js/portal_composer.js
@@ -8,8 +8,6 @@ var _t = core._t;
var PortalComposer = portalComposer.PortalComposer;
-var STAR_RATING_RATIO = 2; // conversion factor from the star (1-5) to the db rating range (1-10)
-
/**
* PortalComposer
*
@@ -31,7 +29,7 @@ PortalComposer.include({
// apply ratio to default rating value
if (options.default_rating_value) {
- options.default_rating_value = parseFloat(options.default_rating_value) / STAR_RATING_RATIO;
+ options.default_rating_value = parseFloat(options.default_rating_value);
}
// default options
@@ -66,7 +64,7 @@ PortalComposer.include({
// set the default value to trigger the display of star widget and update the hidden input value.
self.set("star_value", self.options.default_rating_value);
- self.$input.val(self.options.default_rating_value * STAR_RATING_RATIO);
+ self.$input.val(self.options.default_rating_value);
});
},
@@ -97,7 +95,7 @@ PortalComposer.include({
var index = this.$('.stars i').index(ev.currentTarget);
this.set("star_value", index + 1);
this.user_click = true;
- this.$input.val(this.get("star_value") * STAR_RATING_RATIO);
+ this.$input.val(this.get("star_value"));
},
/**
* @private
diff --git a/addons/portal_rating/static/src/js/portal_rating_composer.js b/addons/portal_rating/static/src/js/portal_rating_composer.js
index 8bf205a6cb8..af7a55b8749 100644
--- a/addons/portal_rating/static/src/js/portal_rating_composer.js
+++ b/addons/portal_rating/static/src/js/portal_rating_composer.js
@@ -7,8 +7,6 @@ var portalComposer = require('portal.composer');
var PortalComposer = portalComposer.PortalComposer;
-var STAR_RATING_RATIO = 2; // conversion factor from the star (1-5) to the db rating range (1-10)
-
/**
* RatingPopupComposer
*
@@ -25,7 +23,7 @@ var RatingPopupComposer = publicWidget.Widget.extend({
init: function (parent, options) {
this._super.apply(this, arguments);
- this.rating_avg = Math.round(options['ratingAvg'] / STAR_RATING_RATIO * 100) / 100 || 0.0;
+ this.rating_avg = Math.round(options['ratingAvg'] / 100) / 100 || 0.0;
this.rating_total = options['ratingTotal'] || 0.0;
this.options = _.defaults({}, options, {
diff --git a/addons/portal_rating/views/rating_templates.xml b/addons/portal_rating/views/rating_templates.xml
index a1faae6aa21..78561828a00 100644
--- a/addons/portal_rating/views/rating_templates.xml
+++ b/addons/portal_rating/views/rating_templates.xml
@@ -4,7 +4,7 @@
Rating widget static: show 5 stars (full or empty) regarding the given rating_avg and rating_count
-->
<template id="rating_widget_stars_static" name="Rating: static star widget">
- <t t-set="rating_avg" t-value="round(rating_avg * 100) / 100 / 2"/>
+ <t t-set="rating_avg" t-value="round(rating_avg * 100) / 100"/>
<t t-set="val_decimal" t-value="round(rating_avg % 1, 1)"/>
<t t-set="val_integer" t-value="int(rating_avg)"/>
<t t-set="empty_star" t-value="5 - (val_integer+1) if val_decimal else 5 - val_integer"/>