Browse Source

Nov 04: [FIX] Bug Fixed 'hr_leave_dashboard'

pull/406/head
Risvana Cybro 1 week ago
parent
commit
4f3b54a2e7
  1. 1
      hr_leave_dashboard/models/hr_leave.py
  2. 63
      hr_leave_dashboard/static/src/js/emp_org_chart.js

1
hr_leave_dashboard/models/hr_leave.py

@ -20,6 +20,7 @@
# #
############################################################################### ###############################################################################
import pytz import pytz
from odoo import api, fields, models from odoo import api, fields, models

63
hr_leave_dashboard/static/src/js/emp_org_chart.js

@ -59,38 +59,55 @@ export class TimeOffEmpOrgChart extends Component {
this.lastRecord = this.props.record; this.lastRecord = this.props.record;
await this.fetchEmployeeData(this.state.employee_id, forceReload); await this.fetchEmployeeData(this.state.employee_id, forceReload);
} }
async fetchEmployeeData(employeeId, force = false) { async fetchEmployeeData(employeeId, force = false) {
employeeId = this.props.id employeeId = this.props.id;
if (!employeeId) {
this.managers = []; if (!employeeId) {
this.children = []; this.managers = [];
if (this.view_employee_id) { this.children = [];
this.render(true); if (this.view_employee_id) {
} this.render(true);
this.view_employee_id = null; }
} else if (employeeId !== this.view_employee_id || force) { this.view_employee_id = null;
this.view_employee_id = employeeId; } else if (employeeId !== this.view_employee_id || force) {
var orgData = await this.rpc( this.view_employee_id = employeeId;
'/hr/get_org_chart',
{ try {
employee_id: employeeId, // Force create a proper context object
context: session.user_context, const safeContext = {
} new_parent_id: null,
); lang: 'en_US',
max_level: 2, // ADD THIS LINE
uid: user.userId,
...(session.user_context || {})
};
const orgData = await this.rpc('/hr/get_org_chart', {
employee_id: employeeId,
context: safeContext,
});
if (Object.keys(orgData).length === 0) { if (Object.keys(orgData).length === 0) {
orgData = { orgData = { managers: [], children: [] };
managers: [],
children: [],
}
} }
this.managers = orgData.managers;
this.managers = orgData.managers;
this.children = orgData.children; this.children = orgData.children;
this.managers_more = orgData.managers_more; this.managers_more = orgData.managers_more;
this.self = orgData.self; this.self = orgData.self;
this.render(true); this.render(true);
} catch (error) {
console.error("Error:", error);
this.managers = [];
this.children = [];
this.managers_more = false;
this.self = null;
this.render(true);
} }
} }
}
_onOpenPopover(event, employee) { _onOpenPopover(event, employee) {
this.popover.open(event.currentTarget, { employee }); this.popover.open(event.currentTarget, { employee });

Loading…
Cancel
Save