Просмотр исходного кода

[workflow] workflow indicator preceeds default indicator

version-14
Rushabh Mehta 10 лет назад
Родитель
Сommit
fe0a1c8dc5
4 измененных файлов: 36 добавлений и 27 удалений
  1. +2
    -3
      frappe/model/rename_doc.py
  2. +1
    -1
      frappe/public/js/frappe/form/workflow.js
  3. +14
    -12
      frappe/public/js/frappe/model/indicator.js
  4. +19
    -11
      frappe/public/js/frappe/model/workflow.js

+ 2
- 3
frappe/model/rename_doc.py Просмотреть файл

@@ -78,9 +78,8 @@ def rename_versions(doctype, old, new):


def rename_parent_and_child(doctype, old, new, meta): def rename_parent_and_child(doctype, old, new, meta):
# rename the doc # rename the doc
frappe.db.sql("update `tab%s` set name=%s where name=%s" \
% (doctype, '%s', '%s'), (new, old))

frappe.db.sql("update `tab%s` set name=%s where name=%s" % (doctype, '%s', '%s'),
(new, old))
update_child_docs(old, new, meta) update_child_docs(old, new, meta)


def validate_rename(doctype, new, meta, merge, force, ignore_permissions): def validate_rename(doctype, new, meta, merge, force, ignore_permissions):


+ 1
- 1
frappe/public/js/frappe/form/workflow.js Просмотреть файл

@@ -129,7 +129,7 @@ frappe.ui.form.States = Class.extend({
}, },


set_default_state: function() { set_default_state: function() {
var default_state = frappe.workflow.get_default_state(this.frm.doctype);
var default_state = frappe.workflow.get_default_state(this.frm.doctype, this.frm.doc.docstatus);
if(default_state) { if(default_state) {
this.frm.set_value(this.state_fieldname, default_state); this.frm.set_value(this.state_fieldname, default_state);
} }


+ 14
- 12
frappe/public/js/frappe/model/indicator.js Просмотреть файл

@@ -12,6 +12,20 @@ frappe.get_indicator = function(doc, doctype) {
is_submittable = frappe.model.is_submittable(doctype), is_submittable = frappe.model.is_submittable(doctype),
workflow_fieldname = frappe.workflow.get_state_fieldname(doctype); workflow_fieldname = frappe.workflow.get_state_fieldname(doctype);


// workflow
if(workflow_fieldname) {
var value = doc[workflow_fieldname];
if(value) {
var colour = {
"Success": "green",
"Warning": "orange",
"Danger": "red",
"Primary": "blue",
}[locals["Workflow State"][value].style] || "darkgrey";
return [__(value), colour, workflow_fieldname + ',=,' + value];
}
}

if(is_submittable && doc.docstatus==0) { if(is_submittable && doc.docstatus==0) {
return [__("Draft"), "red", "docstatus,=,0"]; return [__("Draft"), "red", "docstatus,=,0"];
} }
@@ -20,18 +34,6 @@ frappe.get_indicator = function(doc, doctype) {
return [__("Cancelled"), "red", "docstatus,=,2"]; return [__("Cancelled"), "red", "docstatus,=,2"];
} }


// workflow
if(workflow_fieldname) {
var value = doc[workflow_fieldname];
var colour = {
"Success": "green",
"Warning": "orange",
"Danger": "red",
"Primary": "blue",
}[locals["Workflow State"][value].style] || "darkgrey";
return [__(value), colour, workflow_fieldname + ',=,' + value];
}

if(_get_indicator) { if(_get_indicator) {
var indicator = _get_indicator(doc); var indicator = _get_indicator(doc);
if(indicator) return indicator; if(indicator) return indicator;


+ 19
- 11
frappe/public/js/frappe/model/workflow.js Просмотреть файл

@@ -1,5 +1,5 @@
// Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors // Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
// MIT License. See license.txt
// MIT License. See license.txt


frappe.provide("frappe.workflow"); frappe.provide("frappe.workflow");


@@ -13,7 +13,7 @@ frappe.workflow = {
frappe.workflow.state_fields[doctype] = wf[0].workflow_state_field; frappe.workflow.state_fields[doctype] = wf[0].workflow_state_field;
} else { } else {
frappe.workflow.state_fields[doctype] = null; frappe.workflow.state_fields[doctype] = null;
}
}
}, },
get_state_fieldname: function(doctype) { get_state_fieldname: function(doctype) {
if(frappe.workflow.state_fields[doctype]===undefined) { if(frappe.workflow.state_fields[doctype]===undefined) {
@@ -21,9 +21,16 @@ frappe.workflow = {
} }
return frappe.workflow.state_fields[doctype]; return frappe.workflow.state_fields[doctype];
}, },
get_default_state: function(doctype) {
get_default_state: function(doctype, docstatus) {
frappe.workflow.setup(doctype); frappe.workflow.setup(doctype);
return frappe.workflow.workflows[doctype].states[0].state;
var value = null;
$.each(frappe.workflow.workflows[doctype].states, function(i, workflow_state) {
if(cint(workflow_state.doc_status)===cint(docstatus)) {
value = workflow_state.state;
return false;
}
});
return value;
}, },
get_transitions: function(doctype, state) { get_transitions: function(doctype, state) {
frappe.workflow.setup(doctype); frappe.workflow.setup(doctype);
@@ -40,13 +47,14 @@ frappe.workflow = {
is_read_only: function(doctype, name) { is_read_only: function(doctype, name) {
var state_fieldname = frappe.workflow.get_state_fieldname(doctype); var state_fieldname = frappe.workflow.get_state_fieldname(doctype);
if(state_fieldname) { if(state_fieldname) {
if(!locals[doctype][name])
var doc = locals[doctype][name];
if(!doc)
return false; return false;
if(locals[doctype][name].__islocal)
if(doc.__islocal)
return false; return false;
var state = locals[doctype][name][state_fieldname] ||
frappe.workflow.get_default_state(doctype);
var state = doc[state_fieldname] ||
frappe.workflow.get_default_state(doctype, doc.docstatus);


var allow_edit = state ? frappe.workflow.get_document_state(doctype, state).allow_edit : null; var allow_edit = state ? frappe.workflow.get_document_state(doctype, state).allow_edit : null;


@@ -57,10 +65,10 @@ frappe.workflow = {
return false; return false;
}, },
get_update_fields: function(doctype) { get_update_fields: function(doctype) {
var update_fields = $.unique($.map(frappe.workflow.workflows[doctype].states || [],
var update_fields = $.unique($.map(frappe.workflow.workflows[doctype].states || [],
function(d) { function(d) {
return d.update_field; return d.update_field;
})); }));
return update_fields; return update_fields;
} }
};
};

Загрузка…
Отмена
Сохранить