diff --git a/addons/point_of_sale/controllers/main.py b/addons/point_of_sale/controllers/main.py index d2119bef036..bdcd7555118 100644 --- a/addons/point_of_sale/controllers/main.py +++ b/addons/point_of_sale/controllers/main.py @@ -34,12 +34,12 @@ class PosController(http.Controller): pos_session = request.env['pos.session'].sudo().search(domain, limit=1) if not pos_session: return werkzeug.utils.redirect('/web#action=point_of_sale.action_client_pos_menu') - pos_session.login() # The POS only work in one company, so we enforce the one of the session in the context session_info = request.env['ir.http'].session_info() session_info['user_context']['allowed_company_ids'] = pos_session.company_id.ids context = { - 'session_info': session_info + 'session_info': session_info, + 'login_number': pos_session.login(), } return request.render('point_of_sale.index', qcontext=context) diff --git a/addons/point_of_sale/models/pos_session.py b/addons/point_of_sale/models/pos_session.py index 36c779eac79..448f6423101 100644 --- a/addons/point_of_sale/models/pos_session.py +++ b/addons/point_of_sale/models/pos_session.py @@ -220,9 +220,11 @@ class PosSession(models.Model): def login(self): self.ensure_one() + login_number = self.login_number + 1 self.write({ - 'login_number': self.login_number + 1, + 'login_number': login_number, }) + return login_number def action_pos_session_open(self): # second browse because we need to refetch the data from the DB for cash_register_id diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js index 993db43141a..bb34b3dca30 100644 --- a/addons/point_of_sale/static/src/js/models.js +++ b/addons/point_of_sale/static/src/js/models.js @@ -242,7 +242,7 @@ exports.PosModel = Backbone.Model.extend({ }, },{ model: 'pos.session', - fields: ['id', 'name', 'user_id', 'config_id', 'start_at', 'stop_at', 'sequence_number', 'login_number', 'payment_method_ids'], + fields: ['id', 'name', 'user_id', 'config_id', 'start_at', 'stop_at', 'sequence_number', 'payment_method_ids'], domain: function(self){ var domain = [ ['state','=','opened'], @@ -253,6 +253,7 @@ exports.PosModel = Backbone.Model.extend({ }, loaded: function(self, pos_sessions, tmp){ self.pos_session = pos_sessions[0]; + self.pos_session.login_number = odoo.login_number; self.config_id = self.config_id || self.pos_session && self.pos_session.config_id[0]; tmp.payment_method_ids = pos_sessions[0].payment_method_ids; }, diff --git a/addons/point_of_sale/views/pos_templates.xml b/addons/point_of_sale/views/pos_templates.xml index 5ff4b1f1a04..ea9bb99f835 100644 --- a/addons/point_of_sale/views/pos_templates.xml +++ b/addons/point_of_sale/views/pos_templates.xml @@ -31,6 +31,7 @@ var odoo = ;