mirror of
https://github.com/frappe/erpnext.git
synced 2026-08-15 07:28:39 +00:00
feat: status based bar colors in Work Order gantt view (#57634)
(cherry picked from commit d59c5e36bc)
Co-authored-by: rohitwaghchaure <rohitw1991@gmail.com>
This commit is contained in:
@@ -46,3 +46,60 @@ frappe.views.calendar["Work Order"] = {
|
|||||||
],
|
],
|
||||||
get_events_method: "frappe.desk.calendar.get_events",
|
get_events_method: "frappe.desk.calendar.get_events",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const WORK_ORDER_GANTT_COLORS = {
|
||||||
|
Draft: "red",
|
||||||
|
Stopped: "red",
|
||||||
|
"Not Started": "red",
|
||||||
|
"In Process": "orange",
|
||||||
|
Completed: "green",
|
||||||
|
"Stock Reserved": "blue",
|
||||||
|
"Stock Partially Reserved": "orange",
|
||||||
|
Cancelled: "gray",
|
||||||
|
};
|
||||||
|
|
||||||
|
if (!frappe.views.GanttView.prototype._work_order_status_colors) {
|
||||||
|
frappe.views.GanttView.prototype._work_order_status_colors = true;
|
||||||
|
|
||||||
|
const prepare_tasks = frappe.views.GanttView.prototype.prepare_tasks;
|
||||||
|
frappe.views.GanttView.prototype.prepare_tasks = function () {
|
||||||
|
prepare_tasks.call(this);
|
||||||
|
if (this.doctype === "Work Order") {
|
||||||
|
set_work_order_bar_classes(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
const set_colors = frappe.views.GanttView.prototype.set_colors;
|
||||||
|
frappe.views.GanttView.prototype.set_colors = function () {
|
||||||
|
set_colors.call(this);
|
||||||
|
if (this.doctype === "Work Order") {
|
||||||
|
set_work_order_bar_styles(this);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_work_order_bar_classes(view) {
|
||||||
|
view.tasks.forEach((task, idx) => {
|
||||||
|
const color = WORK_ORDER_GANTT_COLORS[view.data[idx].status];
|
||||||
|
if (color) {
|
||||||
|
task.custom_class = "wo-" + color;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function set_work_order_bar_styles(view) {
|
||||||
|
const style = [...new Set(Object.values(WORK_ORDER_GANTT_COLORS))]
|
||||||
|
.map(
|
||||||
|
(color) => `
|
||||||
|
.gantt .bar-wrapper.wo-${color} .bar {
|
||||||
|
fill: var(--${color}-300);
|
||||||
|
}
|
||||||
|
.gantt .bar-wrapper.wo-${color} .bar-progress {
|
||||||
|
fill: var(--${color}-300);
|
||||||
|
}
|
||||||
|
`
|
||||||
|
)
|
||||||
|
.join("");
|
||||||
|
|
||||||
|
view.$result.prepend(`<style>${style}</style>`);
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user