[fix] set status to document flow
This commit is contained in:
parent
c740c96931
commit
768d39ae4d
2 changed files with 58 additions and 0 deletions
32
frappe/desk/form/document_flow.py
Normal file
32
frappe/desk/form/document_flow.py
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# MIT License. See license.txt
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import frappe
|
||||
import json
|
||||
from frappe.desk.form.linked_with import get_linked_docs, get_linked_doctypes
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_document_completion_status(doctypes, frm_doctype, frm_docname):
|
||||
if isinstance(doctypes, basestring):
|
||||
doctypes = json.loads(doctypes)
|
||||
|
||||
doc = frappe.get_doc(frm_doctype, frm_docname)
|
||||
linkinfo = get_linked_doctypes(frm_doctype)
|
||||
|
||||
flow_completion = {}
|
||||
|
||||
for item in doc.items:
|
||||
for doctype in doc.prev_link_mapper:
|
||||
fieldname = doc.prev_link_mapper[doctype]["fieldname"]
|
||||
if item.as_dict()[fieldname]:
|
||||
flow_completion[doctype] = True
|
||||
|
||||
for doctype in doctypes:
|
||||
if doctype not in flow_completion:
|
||||
links = get_linked_docs(frm_doctype, frm_docname, linkinfo, for_doctype=doctype)
|
||||
frappe.errprint(links)
|
||||
if links:
|
||||
flow_completion[doctype] = True
|
||||
|
||||
return flow_completion
|
||||
|
|
@ -46,6 +46,8 @@ frappe.ui.form.DocumentFlow = Class.extend({
|
|||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
this.mark_completed_flow()
|
||||
},
|
||||
|
||||
get_linked_docs: function(for_doctype) {
|
||||
|
|
@ -57,5 +59,29 @@ frappe.ui.form.DocumentFlow = Class.extend({
|
|||
}
|
||||
|
||||
this.linked_with[for_doctype].show();
|
||||
},
|
||||
|
||||
mark_completed_flow: function() {
|
||||
var me = this;
|
||||
|
||||
frappe.call({
|
||||
method: "frappe.desk.form.document_flow.get_document_completion_status",
|
||||
args: {
|
||||
doctypes: me.doctypes,
|
||||
frm_doctype: me.frm.doctype,
|
||||
frm_docname: me.frm.docname
|
||||
},
|
||||
callback: function(r){
|
||||
if (!r.exc) {
|
||||
$.each(me.doctypes, function(i, doctype) {
|
||||
if (r.message[doctype] && me.frm.doctype!=doctype) {
|
||||
me.wrapper.find("[data-doctype='"+doctype+"']a .indicator")
|
||||
.removeClass("darkgrey")
|
||||
.addClass("black")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue