Initial commit: Hr packages

This commit is contained in:
Ernad Husremovic 2025-08-29 15:20:50 +02:00
commit 62531cd146
2820 changed files with 1432848 additions and 0 deletions

View file

@ -0,0 +1,24 @@
/** @odoo-module **/
import { registry } from "@web/core/registry";
import { GraphRenderer } from "@web/views/graph/graph_renderer";
import { graphView } from "@web/views/graph/graph_view";
export class SkillsGraphRenderer extends GraphRenderer {
getScaleOptions() {
const scaleOptions = super.getScaleOptions();
if ('yAxes' in scaleOptions) {
scaleOptions['yAxes'][0]['ticks']['suggestedMax'] = 100;
}
return scaleOptions;
}
}
export const skillsGraphView = {
...graphView,
Renderer: SkillsGraphRenderer,
};
registry.category("views").add("skills_graph", skillsGraphView);

View file

@ -0,0 +1,57 @@
/** @odoo-module */
import { ListRenderer } from "@web/views/list/list_renderer";
export class CommonSkillsListRenderer extends ListRenderer {
get colspan() {
const span = this.allColumns.length;
if (this.isEditable) {
return span + 1;
}
return span;
}
get groupBy() {
return '';
}
get groupedList() {
const grouped = {};
for (const record of this.list.records) {
const data = record.data;
const group = data[this.groupBy];
if (grouped[group[1]] === undefined) {
grouped[group[1]] = {
id: parseInt(group[0]),
name: group[1] || this.env._t('Other'),
list: {
records: [],
},
};
}
grouped[group[1]].list.records.push(record);
}
return grouped;
}
get showTable() {
return this.props.list.records.length;
}
get isEditable() {
return this.props.editable !== false;
}
async onCellClicked(record, column, ev) {
if (!this.isEditable) {
return;
}
return await super.onCellClicked(record, column, ev);
}
}
CommonSkillsListRenderer.rowsTemplate = "hr_skills.SkillsListRenderer.Rows";