diff options
| author | Benjamin Frantzen (bfr) <bfr@odoo.com> | 2019-12-18 13:45:38 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2020-05-08 12:17:20 +0000 |
| commit | e4a4ffb974ccde1842e1b2389450718f8576ad5b (patch) | |
| tree | 6159873058286c65a3a3bfb5a48f2ef5ffbf7565 /addons/portal_rating | |
| parent | f427a38c4e0dcd63d086706ad66a3e5570fbf0aa (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')
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"/> |
