From 01535c618aed5fba152e76ea4fc1a677cc733b16 Mon Sep 17 00:00:00 2001 From: Antoine Prieels Date: Thu, 10 Oct 2019 11:03:09 +0000 Subject: [PATCH] [FIX] pos_hr: res.users loaded twice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When pos_hr was installed, `load_models` was called twice for res.users and calls to `load_fields` were not processed correctly. closes odoo/odoo#38462 X-original-commit: 26274dbb9720743461be2a70de02bf4c1ea377f4 Signed-off-by: Antoine Prieƫls --- addons/point_of_sale/static/src/js/models.js | 27 +++++++++++--------- addons/pos_hr/static/src/js/models.js | 23 ----------------- 2 files changed, 15 insertions(+), 35 deletions(-) diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index 63f7a12816f..de5b19eec65 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -295,20 +295,23 @@ exports.PosModel = Backbone.Model.extend({ },{ model: 'res.users', fields: ['name','company_id', 'id', 'groups_id'], - ids: function(self){ return [session.uid]; }, + domain: function(self){ return [['company_ids', 'in', self.config.company_id[0]],'|', ['groups_id','=', self.config.group_pos_manager_id[0]],['groups_id','=', self.config.group_pos_user_id[0]]]; }, loaded: function(self,users){ - var role = 'cashier'; - users[0].groups_id.some(function(group_id) { - if (group_id === self.config.group_pos_manager_id[0]) { - role = 'manager'; - return true; - } + users.forEach(function(user) { + user.role = 'cashier'; + user.groups_id.some(function(group_id) { + if (group_id === self.config.group_pos_manager_id[0]) { + user.role = 'manager'; + return true; + } + }); + if (user.id === session.uid) { + self.user = user; + self.employee = user; + self.employee.user_id = [user.id, user.name]; + } }); - self.user = users[0]; - self.user.role = role; - self.employee.name = self.user.name; - self.employee.role = role; - self.employee.user_id = [self.user.id, self.user.name]; + self.users = users; self.employees = [self.employee]; self.set_cashier(self.employee); }, diff --git a/addons/pos_hr/static/src/js/models.js b/addons/pos_hr/static/src/js/models.js index 1fc26ac1b90..83dbd2cfc3a 100644 --- a/addons/pos_hr/static/src/js/models.js +++ b/addons/pos_hr/static/src/js/models.js @@ -5,29 +5,6 @@ var models = require('point_of_sale.models'); var rpc = require('web.rpc'); models.load_models([{ - model: 'res.users', - fields: ['name','groups_id'], - domain: function(self){ return [['company_ids', 'in', self.config.company_id[0]],'|', ['groups_id','=', self.config.group_pos_manager_id[0]],['groups_id','=', self.config.group_pos_user_id[0]]]; }, - loaded: function(self,users){ - // we attribute a role to the user, 'cashier' or 'manager', depending - // on the group the user belongs. - users.forEach(function(user) { - user.role = 'cashier'; - user.groups_id.some(function(group_id) { - if (group_id === self.config.group_pos_manager_id[0]) { - user.role = 'manager'; - return true; - } - }); - // replace the current user with its updated version - if (user.id === self.user.id) { - self.user = user; - self.employee = self.user; - } - }); - self.users = users; - }, -},{ model: 'hr.employee', fields: ['name', 'id', 'user_id'], domain: function(self){ return [['company_id', '=', self.config.company_id[0]]]; },