From f186b9b540256bde3d8453e44e414f7e5a6d12a0 Mon Sep 17 00:00:00 2001 From: Invitu Date: Wed, 30 Aug 2017 03:41:02 -1000 Subject: [PATCH] [IMP] add autologout to pos_quick_logout [IMP] it's better to launch timeout fonction with start --- pos_quick_logout/__init__.py | 1 + pos_quick_logout/__openerp__.py | 1 + pos_quick_logout/models/__init__.py | 2 ++ pos_quick_logout/models/pos_quick_logout.py | 11 ++++++++ .../static/src/js/pos_quick_logout.js | 27 +++++++++++++++++++ .../views/pos_quick_logout_view.xml | 13 +++++++++ 6 files changed, 55 insertions(+) create mode 100644 pos_quick_logout/models/__init__.py create mode 100644 pos_quick_logout/models/pos_quick_logout.py create mode 100644 pos_quick_logout/views/pos_quick_logout_view.xml diff --git a/pos_quick_logout/__init__.py b/pos_quick_logout/__init__.py index 40a96afc..89d26e2f 100644 --- a/pos_quick_logout/__init__.py +++ b/pos_quick_logout/__init__.py @@ -1 +1,2 @@ # -*- coding: utf-8 -*- +import models diff --git a/pos_quick_logout/__openerp__.py b/pos_quick_logout/__openerp__.py index 9cf0d4d1..a6bfea4e 100644 --- a/pos_quick_logout/__openerp__.py +++ b/pos_quick_logout/__openerp__.py @@ -15,6 +15,7 @@ 'point_of_sale', ], 'data': [ + 'views/pos_quick_logout_view.xml', 'static/src/xml/templates.xml', ], 'qweb': [ diff --git a/pos_quick_logout/models/__init__.py b/pos_quick_logout/models/__init__.py new file mode 100644 index 00000000..48639810 --- /dev/null +++ b/pos_quick_logout/models/__init__.py @@ -0,0 +1,2 @@ +# -*- coding: utf-8 -*- +import pos_quick_logout diff --git a/pos_quick_logout/models/pos_quick_logout.py b/pos_quick_logout/models/pos_quick_logout.py new file mode 100644 index 00000000..5466bef0 --- /dev/null +++ b/pos_quick_logout/models/pos_quick_logout.py @@ -0,0 +1,11 @@ +# -*- coding: utf-8 -*- + +from odoo import models, api, fields, exceptions + + +class PosConfig(models.Model): + _inherit = 'pos.config' + + logout_timeout = fields.Integer( + default=10, string='Logout Timeout', + help='Time out for automatic logout for sessions in this POS') diff --git a/pos_quick_logout/static/src/js/pos_quick_logout.js b/pos_quick_logout/static/src/js/pos_quick_logout.js index 43423686..c26aa2fb 100644 --- a/pos_quick_logout/static/src/js/pos_quick_logout.js +++ b/pos_quick_logout/static/src/js/pos_quick_logout.js @@ -8,11 +8,38 @@ odoo.define('pos_quick_logout.pos_quick_logout', function (require) { "use strict"; var chrome = require('point_of_sale.chrome'); + var core = require('web.core'); /* ******************************************************** chrome.Chrome ******************************************************** */ chrome.Chrome.include({ + start: function(){ + var self = this; + this._super(); + this.timer = false; + this.idletimeout(); + }, + idletimeout: function() { + var self = this; + $(document).bind('mousemove keypress mousedown click scroll', function(){ + self.resetTimer(); + }); + }, + logout: function() { + var self = this; + if (self.widget.username) { + self.pos.set_cashier(self.pos.user); + self.widget.username.renderElement(); + }; + }, + resetTimer: function() { + var self = this; + clearTimeout(this.timer); + this.timer = setTimeout(function(){ + self.logout(); + }, self.pos.config.logout_timeout * 1000); // time is in milliseconds + }, renderElement: function(){ this._super(); var self = this; diff --git a/pos_quick_logout/views/pos_quick_logout_view.xml b/pos_quick_logout/views/pos_quick_logout_view.xml new file mode 100644 index 00000000..b247a4f2 --- /dev/null +++ b/pos_quick_logout/views/pos_quick_logout_view.xml @@ -0,0 +1,13 @@ + + + pos.config.form.quick.logout + pos.config + + + + + + + + +