diff options
| author | RomainLibert <rli@odoo.com> | 2019-04-02 11:06:08 +0200 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2019-05-31 10:21:20 +0200 |
| commit | d09d5c2e8af1b5c00b84c8961d8024e5cbfe76d3 (patch) | |
| tree | 10a8d41ae4e7c6a8d7a6c48ee72345dd10917e42 /addons/hr_org_chart/static | |
| parent | c9ca3761464413327d2beb697553a3ccd7eef4d1 (diff) | |
[IMP] hr_org_chart: Adapt module with new hr.employee.public model
Diffstat (limited to 'addons/hr_org_chart/static')
| -rw-r--r-- | addons/hr_org_chart/static/src/js/hr_org_chart.js | 57 | ||||
| -rw-r--r-- | addons/hr_org_chart/static/src/xml/hr_org_chart.xml | 6 | ||||
| -rw-r--r-- | addons/hr_org_chart/static/tests/hr_org_chart_tests.js | 8 |
3 files changed, 38 insertions, 33 deletions
diff --git a/addons/hr_org_chart/static/src/js/hr_org_chart.js b/addons/hr_org_chart/static/src/js/hr_org_chart.js index 5e2ba861058..d1831b53c8b 100644 --- a/addons/hr_org_chart/static/src/js/hr_org_chart.js +++ b/addons/hr_org_chart/static/src/js/hr_org_chart.js @@ -24,7 +24,7 @@ var FieldOrgChart = AbstractField.extend({ init: function (parent, options) { this._super.apply(this, arguments); this.dm = new concurrency.DropMisordered(); - this.employee; + this.employee = null; }, //-------------------------------------------------------------------------- @@ -37,16 +37,16 @@ var FieldOrgChart = AbstractField.extend({ * @param {integer} employee_id * @returns {Promise} */ - _getOrgData: function (employee_id) { + _getOrgData: function () { var self = this; return this.dm.add(this._rpc({ route: '/hr/get_org_chart', params: { - employee_id: employee_id, + employee_id: this.employee, context: session.user_context, }, })).then(function (data) { - self.orgData = data; + return data; }); }, /** @@ -83,10 +83,9 @@ var FieldOrgChart = AbstractField.extend({ } var self = this; - return this._getOrgData(this.employee).then(function () { - - self.orgData['view_employee_id'] = self.recordData.id; - self.$el.html(QWeb.render("hr_org_chart", self.orgData)); + return this._getOrgData().then(function (orgData) { + orgData.view_employee_id = self.recordData.id; + self.$el.html(QWeb.render("hr_org_chart", orgData)); self.$('[data-toggle="popover"]').each(function () { $(this).popover({ html: true, @@ -130,7 +129,7 @@ var FieldOrgChart = AbstractField.extend({ _onEmployeeMoreManager: function(event) { event.preventDefault(); this.employee = parseInt($(event.currentTarget).data('employee-id')); - this._render() + this._render(); }, /** * Redirect to the employee form view. @@ -140,16 +139,15 @@ var FieldOrgChart = AbstractField.extend({ * @returns {Promise} action loaded */ _onEmployeeRedirect: function (event) { + var self = this; event.preventDefault(); var employee_id = parseInt($(event.currentTarget).data('employee-id')); - return this.do_action({ - type: 'ir.actions.act_window', - view_type: 'form', - view_mode: 'form', - views: [[false, 'form']], - target: 'current', - res_model: 'hr.employee', - res_id: employee_id, + return this._rpc({ + model: 'hr.employee', + method: 'get_formview_action', + args: [employee_id], + }).then(function(action) { + return self.do_action(action); }); }, /** @@ -164,22 +162,23 @@ var FieldOrgChart = AbstractField.extend({ var employee_id = parseInt($(event.currentTarget).data('employee-id')); var employee_name = $(event.currentTarget).data('employee-name'); var type = $(event.currentTarget).data('type') || 'direct'; - var self = this + var self = this; if (employee_id) { this._getSubordinatesData(employee_id, type).then(function(data) { var domain = [['id', 'in', data]]; - - return self.do_action({ - name: employee_name, - type: 'ir.actions.act_window', - view_mode: 'kanban,list,form', - views: [[false, 'kanban'], [false, 'list'], [false, 'form']], - target: 'current', - res_model: 'hr.employee', - domain: domain, + return self._rpc({ + model: 'hr.employee', + method: 'get_formview_action', + args: [employee_id], + }).then(function(action) { + action = _.extend(action, { + 'view_mode': 'kanban,list,form', + 'views': [[false, 'kanban'], [false, 'list'], [false, 'form']], + 'domain': domain, + }); + return self.do_action(action); }); - }) - + }); } }, }); diff --git a/addons/hr_org_chart/static/src/xml/hr_org_chart.xml b/addons/hr_org_chart/static/src/xml/hr_org_chart.xml index 893e0394f90..2bb9db5d4ca 100644 --- a/addons/hr_org_chart/static/src/xml/hr_org_chart.xml +++ b/addons/hr_org_chart/static/src/xml/hr_org_chart.xml @@ -10,13 +10,13 @@ use bg-images to get a clean and centred images --> <a t-if="! is_self" class="o_media_object rounded-circle o_employee_redirect" - t-att-style="'background-image:url(\'/web/image/hr.employee/' + employee.id + '/image/\')'" + t-att-style="'background-image:url(\'/web/image/hr.employee.public/' + employee.id + '/image/\')'" t-att-alt="employee.name" t-att-data-employee-id="employee.id" t-att-href="employee.link"/> <div t-if="is_self" class="o_media_object rounded-circle" - t-att-style="'background-image:url(\'/web/image/hr.employee/' + employee.id + '/image/\')'"/> + t-att-style="'background-image:url(\'/web/image/hr.employee.public/' + employee.id + '/image/\')'"/> </div> <div class="media-body"> @@ -151,7 +151,7 @@ <t t-name="hr_orgchart_emp_popover_title"> <div> - <span t-att-style='"background-image:url(\"/web/image/hr.employee/" + employee.id + "/image/\")"'/> + <span t-att-style='"background-image:url(\"/web/image/hr.employee.public/" + employee.id + "/image/\")"'/> <a href="#" class="float-right o_employee_redirect" t-att-data-employee-id="employee.id"><i class="fa fa-external-link" role="img" aria-label='Redirect' title="Redirect"></i></a> <b><t t-esc="employee.name"/></b> </div> diff --git a/addons/hr_org_chart/static/tests/hr_org_chart_tests.js b/addons/hr_org_chart/static/tests/hr_org_chart_tests.js index e536f0b587b..98104311f55 100644 --- a/addons/hr_org_chart/static/tests/hr_org_chart_tests.js +++ b/addons/hr_org_chart/static/tests/hr_org_chart_tests.js @@ -41,6 +41,8 @@ QUnit.module('hr_org_chart', { managers: [], managers_more: false, }); + } else if (route === '/hr/get_redirect_model') { + return Promise.resolve('hr.employee'); } return this._super(route, args); } @@ -92,6 +94,8 @@ QUnit.module('hr_org_chart', { name: 'Antoine Langlais', } }); + } else if (route === '/hr/get_redirect_model') { + return Promise.resolve('hr.employee'); } return this._super(route, args); } @@ -153,6 +157,8 @@ QUnit.module('hr_org_chart', { name: 'John Smith', } }); + } else if (route === '/hr/get_redirect_model') { + return Promise.resolve('hr.employee'); } return this._super(route, args); } @@ -164,4 +170,4 @@ QUnit.module('hr_org_chart', { }); }); -});
\ No newline at end of file +}); |
