[FIX] pos_hr: res.users loaded twice
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 <aprieels@users.noreply.github.com>
This commit is contained in:
@@ -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);
|
||||
},
|
||||
|
||||
@@ -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]]]; },
|
||||
|
||||
Reference in New Issue
Block a user