From 2f7bd4d7e9e67849d002a0081fde8e4fdda6ec86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A9ry=20Debongnie?= Date: Thu, 3 Mar 2016 12:23:56 +0100 Subject: [PATCH] [IMP] hr_attendance: remove extra rpc The attendance module needs to know if the user is an employee before putting itself in the systray. This commit add the information in the session infos, and use it directly. --- addons/hr_attendance/__init__.py | 2 +- addons/hr_attendance/models/__init__.py | 4 ++++ addons/hr_attendance/{ => models}/hr_attendance.py | 0 addons/hr_attendance/models/ir_http.py | 9 +++++++++ addons/hr_attendance/static/src/js/attendance.js | 9 ++++----- 5 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 addons/hr_attendance/models/__init__.py rename addons/hr_attendance/{ => models}/hr_attendance.py (100%) create mode 100644 addons/hr_attendance/models/ir_http.py diff --git a/addons/hr_attendance/__init__.py b/addons/hr_attendance/__init__.py index 86c96b3c9a2..bd6cae5c16b 100644 --- a/addons/hr_attendance/__init__.py +++ b/addons/hr_attendance/__init__.py @@ -1,6 +1,6 @@ # -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. -import hr_attendance import wizard import report +import models diff --git a/addons/hr_attendance/models/__init__.py b/addons/hr_attendance/models/__init__.py new file mode 100644 index 00000000000..eeef82d250c --- /dev/null +++ b/addons/hr_attendance/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +import hr_attendance +import ir_http diff --git a/addons/hr_attendance/hr_attendance.py b/addons/hr_attendance/models/hr_attendance.py similarity index 100% rename from addons/hr_attendance/hr_attendance.py rename to addons/hr_attendance/models/hr_attendance.py diff --git a/addons/hr_attendance/models/ir_http.py b/addons/hr_attendance/models/ir_http.py new file mode 100644 index 00000000000..b321ca723f7 --- /dev/null +++ b/addons/hr_attendance/models/ir_http.py @@ -0,0 +1,9 @@ +from openerp import models, service + +class Http(models.Model): + _inherit = 'ir.http' + + def session_info(self): + result = super(Http, self).session_info() + result['is_employee'] = self.env.user.has_group('base.group_user') + return result diff --git a/addons/hr_attendance/static/src/js/attendance.js b/addons/hr_attendance/static/src/js/attendance.js index 03ca6a8644b..355afc04c7f 100644 --- a/addons/hr_attendance/static/src/js/attendance.js +++ b/addons/hr_attendance/static/src/js/attendance.js @@ -4,7 +4,7 @@ odoo.define('hr_attendance.hr_attendance', function(require) { var core = require('web.core'); var data = require('web.data'); var formats = require('web.formats'); -var Model = require('web.DataModel'); +var session = require('web.session'); var SystrayMenu = require('web.SystrayMenu'); var time = require('web.time'); var Widget = require('web.Widget'); @@ -75,10 +75,9 @@ var AttendanceSlider = Widget.extend({ }, }); -// Put the AttendanceSlider widget in the systray menu if the user is an employee -var Users = new Model('res.users'); -Users.call('has_group', ['base.group_user']).done(function(is_employee) { - if (is_employee) { +session.is_bound.then(function () { + // Put the AttendanceSlider widget in the systray menu if the user is an employee + if (session.is_employee) { SystrayMenu.Items.push(AttendanceSlider); } });