Merge pull request #23207 from rtdany10/workflow-status

feat: workflow state wise status override
This commit is contained in:
Shariq Ansari 2023-11-20 21:06:59 +05:30 committed by GitHub
commit be4e0bbc8a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 4 deletions

View file

@ -36,11 +36,18 @@ frappe.get_indicator = function (doc, doctype, show_workflow_state) {
var settings = frappe.listview_settings[doctype] || {};
var is_submittable = frappe.model.is_submittable(doctype),
workflow_fieldname = frappe.workflow.get_state_fieldname(doctype);
var is_submittable = frappe.model.is_submittable(doctype);
let workflow_fieldname = frappe.workflow.get_state_fieldname(doctype);
let avoid_status_override = (frappe.workflow.avoid_status_override[doctype] || []).includes(
doc[workflow_fieldname]
);
// workflow
if (workflow_fieldname && (!without_workflow || show_workflow_state)) {
if (
workflow_fieldname &&
(!without_workflow || show_workflow_state) &&
!avoid_status_override
) {
var value = doc[workflow_fieldname];
if (value) {
let colour = "";

View file

@ -6,11 +6,15 @@ frappe.provide("frappe.workflow");
frappe.workflow = {
state_fields: {},
workflows: {},
avoid_status_override: {},
setup: function (doctype) {
var wf = frappe.get_list("Workflow", { document_type: doctype });
if (wf.length) {
frappe.workflow.workflows[doctype] = wf[0];
frappe.workflow.state_fields[doctype] = wf[0].workflow_state_field;
frappe.workflow.avoid_status_override[doctype] = wf[0].states
.filter((row) => row.avoid_status_override)
.map((d) => d.state);
} else {
frappe.workflow.state_fields[doctype] = null;
}

View file

@ -13,6 +13,7 @@
"update_value",
"column_break_4",
"is_optional_state",
"avoid_status_override",
"next_action_email_template",
"allow_edit",
"section_break_9",
@ -97,12 +98,19 @@
"fieldtype": "Data",
"hidden": 1,
"label": "Workflow Builder ID"
},
{
"default": "0",
"description": "If Checked workflow status will not override status in list view",
"fieldname": "avoid_status_override",
"fieldtype": "Check",
"label": "Don't Override Status"
}
],
"idx": 1,
"istable": 1,
"links": [],
"modified": "2023-11-16 12:10:15.472947",
"modified": "2023-11-13 18:27:08.633239",
"modified_by": "Administrator",
"module": "Workflow",
"name": "Workflow Document State",

View file

@ -15,6 +15,7 @@ class WorkflowDocumentState(Document):
from frappe.types import DF
allow_edit: DF.Link
avoid_status_override: DF.Check
doc_status: DF.Literal["0", "1", "2"]
is_optional_state: DF.Check
message: DF.Text | None