From b6af1f368de9f900cf69aa61fc10827a84eda985 Mon Sep 17 00:00:00 2001 From: Barad Mahendra Date: Fri, 7 Jun 2019 09:51:22 +0000 Subject: [PATCH] [IMP] rating: improve rating feedback user interface Before this commit, when user land after clicking on the smiley in the e-mail for rating, user cannot change its rating. Its click limits the available choice. Now users will be able to choose rating and write feedback before submitting its rating. Task ID 1936849 Closes PR #33979 Signed-off-by: Thibault Delavallee (tde) Co-authored-by: Shreya Thakrar --- .../data/project_mail_template_data.xml | 2 +- addons/rating/__manifest__.py | 1 + addons/rating/controllers/main.py | 14 ++--- addons/rating/static/src/scss/rating.scss | 8 +++ addons/rating/views/assets.xml | 10 ++++ addons/rating/views/rating_template.xml | 52 ++++++++++--------- 6 files changed, 54 insertions(+), 33 deletions(-) create mode 100644 addons/rating/static/src/scss/rating.scss create mode 100644 addons/rating/views/assets.xml diff --git a/addons/project/data/project_mail_template_data.xml b/addons/project/data/project_mail_template_data.xml index 6a9fb6377e9..26aea632b51 100644 --- a/addons/project/data/project_mail_template_data.xml +++ b/addons/project/data/project_mail_template_data.xml @@ -36,7 +36,7 @@
- Hello ${partner.name},
+ Hello ${partner.name},

Please take a moment to rate our services related to the task "${object.name}" % if object.rating_get_rated_partner_id().name: assigned to ${object.rating_get_rated_partner_id().name}.
diff --git a/addons/rating/__manifest__.py b/addons/rating/__manifest__.py index fc85f6a91af..db4e37c8609 100644 --- a/addons/rating/__manifest__.py +++ b/addons/rating/__manifest__.py @@ -12,6 +12,7 @@ This module allows a customer to give rating. 'data': [ 'views/rating_view.xml', 'views/rating_template.xml', + 'views/assets.xml', 'security/ir.model.access.csv' ], 'installable': True, diff --git a/addons/rating/controllers/main.py b/addons/rating/controllers/main.py index 7cbeeb85c72..5257073ce7b 100644 --- a/addons/rating/controllers/main.py +++ b/addons/rating/controllers/main.py @@ -1,8 +1,6 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -import werkzeug - from odoo import http from odoo.http import request from odoo.tools.translate import _ @@ -18,19 +16,21 @@ class Rating(http.Controller): if not rating: return request.not_found() rate_names = { + 10: _("satisfied"), 5: _("not satisfied"), - 1: _("highly dissatisfied"), - 10: _("satisfied") + 1: _("highly dissatisfied") } rating.write({'rating': rate, 'consumed': True}) lang = rating.partner_id.lang or get_lang(request.env).code return request.env['ir.ui.view'].with_context(lang=lang).render_template('rating.rating_external_page_submit', { 'rating': rating, 'token': token, - 'rate_name': rate_names[rate], 'rate': rate + 'rate_names': rate_names, 'rate': rate }) - @http.route(['/rating///submit_feedback'], type="http", auth="public", methods=['post'], website=True) - def submit_rating(self, token, rate, **kwargs): + @http.route(['/rating//submit_feedback'], type="http", auth="public", methods=['post'], website=True) + def submit_rating(self, token, **kwargs): + rate = kwargs.get('rate') + assert rate in (1, 5, 10), "Incorrect rating" rating = request.env['rating.rating'].sudo().search([('access_token', '=', token)]) if not rating: return request.not_found() diff --git a/addons/rating/static/src/scss/rating.scss b/addons/rating/static/src/scss/rating.scss new file mode 100644 index 00000000000..b3b275c6790 --- /dev/null +++ b/addons/rating/static/src/scss/rating.scss @@ -0,0 +1,8 @@ +/* Rating feedback */ +.o_rating_page_submit { + max-width: 45%; + .o_rating_label.active { + filter: drop-shadow(0 0 5px black); + -webkit-filter: drop-shadow(0 0 5px black); + } +} diff --git a/addons/rating/views/assets.xml b/addons/rating/views/assets.xml new file mode 100644 index 00000000000..baacbe9a54a --- /dev/null +++ b/addons/rating/views/assets.xml @@ -0,0 +1,10 @@ + + + + + + diff --git a/addons/rating/views/rating_template.xml b/addons/rating/views/rating_template.xml index 74ec884806a..679db3ede20 100644 --- a/addons/rating/views/rating_template.xml +++ b/addons/rating/views/rating_template.xml @@ -3,13 +3,12 @@