From ce2fdc02abb909d984abf28a4fdb45c072655da8 Mon Sep 17 00:00:00 2001 From: Nicolas Lempereur Date: Mon, 30 Jul 2018 10:02:03 +0200 Subject: [PATCH 1/3] [FIX] im_livechat: bad rating=1 not 0 w/ 75d3121c In 75d3121c9 the bad rating was change from 0 to 1. This commit update the javascript feedback part so the behavior is the one expected. related to opw-1863312 closes #26043 --- addons/im_livechat/static/src/js/im_livechat.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/im_livechat/static/src/js/im_livechat.js b/addons/im_livechat/static/src/js/im_livechat.js index 878f5e268b6..1cb57e11265 100644 --- a/addons/im_livechat/static/src/js/im_livechat.js +++ b/addons/im_livechat/static/src/js/im_livechat.js @@ -280,7 +280,7 @@ var Feedback = Widget.extend({ // only display textearea if bad smiley selected var close_chat = false; - if (this.rating === 0) { + if (this.rating === 1) { this.$('.o_livechat_rating_reason').show(); } else { this.$('.o_livechat_rating_reason').hide(); From e11908d429435091828f224ee0751b90de8c99aa Mon Sep 17 00:00:00 2001 From: Romain Derie Date: Fri, 27 Jul 2018 14:33:38 +0200 Subject: [PATCH 2/3] [FIX] website_sale: _get_pl_partner_order With 60300fc, people can use promo code on website. But the condition leads to a side effect, if a partner has a pricelist set for him, he will never be able to see the dropdown list of pricelist since he will enter the else condition with show_visible set to true. Now, user is able to see selectable pricelists. opw-1869371 --- addons/website_sale/models/sale_order.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py index 1c757098a32..111f208f60b 100644 --- a/addons/website_sale/models/sale_order.py +++ b/addons/website_sale/models/sale_order.py @@ -239,8 +239,8 @@ class Website(models.Model): if not pricelists: # no pricelist for this country, or no GeoIP pricelists |= all_pl.filtered(lambda pl: not show_visible or pl.selectable or pl.id in (current_pl, order_pl)) - else: - pricelists |= all_pl.filtered(lambda pl: not show_visible and pl.sudo().code) + if not show_visible and not country_code: + pricelists |= all_pl.filtered(lambda pl: pl.sudo().code) # This method is cached, must not return records! See also #8795 return pricelists.ids From 65ad60665e54a7e61d3d064df63457d0097587bd Mon Sep 17 00:00:00 2001 From: Holger Brunn Date: Tue, 31 Jul 2018 16:03:33 +0200 Subject: [PATCH 3/3] [FIX] base: fix users' groups assignation Avoid sharing of users'groups when writing on multiple users. When changing groups of multiple users, all implied groups were shared between written users. Oversight of new-api rewrite. Fixes #26036 --- odoo/addons/base/res/res_users.py | 2 +- odoo/addons/base/tests/__init__.py | 1 + odoo/addons/base/tests/test_non_regression.py | 26 +++++++++++++++++++ 3 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 odoo/addons/base/tests/test_non_regression.py diff --git a/odoo/addons/base/res/res_users.py b/odoo/addons/base/res/res_users.py index a78ecb9829c..74245dced0c 100644 --- a/odoo/addons/base/res/res_users.py +++ b/odoo/addons/base/res/res_users.py @@ -679,7 +679,7 @@ class UsersImplied(models.Model): for user in self.with_context({}): gs = set(concat(g.trans_implied_ids for g in user.groups_id)) vals = {'groups_id': [(4, g.id) for g in gs]} - super(UsersImplied, self).write(vals) + super(UsersImplied, user).write(vals) return res # diff --git a/odoo/addons/base/tests/__init__.py b/odoo/addons/base/tests/__init__.py index 06c06cbbc5d..e40c2d042c3 100644 --- a/odoo/addons/base/tests/__init__.py +++ b/odoo/addons/base/tests/__init__.py @@ -31,3 +31,4 @@ import test_view_validation import test_views import test_xmlrpc import test_res_partner_bank +import test_non_regression diff --git a/odoo/addons/base/tests/test_non_regression.py b/odoo/addons/base/tests/test_non_regression.py new file mode 100644 index 00000000000..1f75578079a --- /dev/null +++ b/odoo/addons/base/tests/test_non_regression.py @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +""" + Non-Regression Tests +""" + +from openerp.tests.common import TransactionCase + + +class TestNR(TransactionCase): + def test_issue26036(self): + U = self.env["res.users"] + G = self.env["res.groups"] + + group_A = G.create({"name": "A"}) + group_AA = G.create({"name": "AA", "implied_ids": [(6, 0, [group_A.id])]}) + group_B = G.create({"name": "B"}) + group_BB = G.create({"name": "BB", "implied_ids": [(6, 0, [group_B.id])]}) + group_C = G.create({"name": "C"}) + + user_a = U.create({"name": "a", "login": "a", "groups_id": [(6, 0, [group_AA.id])]}) + user_b = U.create({"name": "b", "login": "b", "groups_id": [(6, 0, [group_BB.id])]}) + + (user_a + user_b).write({"groups_id": [(4, group_C.id)]}) + + self.assertEqual(user_a.groups_id, (group_AA + group_A + group_C)) + self.assertEqual(user_b.groups_id, (group_BB + group_B + group_C))