This commit is contained in:
parent
b57f322c3d
commit
57acf4e9cb
27 changed files with 130 additions and 128 deletions
|
|
@ -20,7 +20,7 @@ frappe.core.Workflow = frappe.ui.form.Controller.extend({
|
|||
}
|
||||
},
|
||||
update_field_options: function() {
|
||||
var fields = $.map(frappe.model.get_doc("DocType", this.frm.doc.document_type).fields, function(d) {
|
||||
var fields = $.map(frappe.get_doc("DocType", this.frm.doc.document_type).fields, function(d) {
|
||||
return frappe.model.no_value_type.indexOf(d.fieldtype)===-1 ? d.fieldname : null;
|
||||
})
|
||||
frappe.meta.get_docfield("Workflow Document State", "update_field", this.frm.doc.name).options
|
||||
|
|
|
|||
|
|
@ -428,14 +428,14 @@ frappe.PermissionEngine = Class.extend({
|
|||
});
|
||||
},
|
||||
get_user_fields: function(doctype) {
|
||||
var user_fields = frappe.model.get_children("DocType", doctype, "fields", {fieldtype:"Link", options:"User"})
|
||||
user_fields = user_fields.concat(frappe.model.get_children("DocType", doctype, "fields",
|
||||
var user_fields = frappe.get_children("DocType", doctype, "fields", {fieldtype:"Link", options:"User"})
|
||||
user_fields = user_fields.concat(frappe.get_children("DocType", doctype, "fields",
|
||||
{fieldtype:"Select", link_doctype:"User"}))
|
||||
|
||||
return user_fields
|
||||
},
|
||||
get_link_fields: function(doctype) {
|
||||
return frappe.model.get_children("DocType", doctype, "fields",
|
||||
return frappe.get_children("DocType", doctype, "fields",
|
||||
{fieldtype:"Link", options:["not in", ["User", '[Select]']]});
|
||||
}
|
||||
})
|
||||
|
|
|
|||
|
|
@ -6,22 +6,11 @@ import frappe
|
|||
from frappe import msgprint, _
|
||||
from frappe.utils import flt, cint, cstr
|
||||
from frappe.model.meta import get_field_precision
|
||||
from frappe.model.document import Document
|
||||
|
||||
class EmptyTableError(frappe.ValidationError): pass
|
||||
|
||||
class DocListController(object):
|
||||
def __init__(self, doc, doclist):
|
||||
self.doc, self.doclist = doc, doclist
|
||||
|
||||
if hasattr(self, "setup"):
|
||||
self.setup()
|
||||
|
||||
@property
|
||||
def meta(self):
|
||||
if not hasattr(self, "_meta"):
|
||||
self._meta = frappe.get_doctype(self.doc.doctype)
|
||||
return self._meta
|
||||
|
||||
class DocListController(Document):
|
||||
def validate_value(self, fieldname, condition, val2, doc=None, raise_exception=None):
|
||||
"""check that value of fieldname should be 'condition' val2
|
||||
else throw exception"""
|
||||
|
|
@ -80,18 +69,9 @@ class DocListController(object):
|
|||
for fieldname in fieldnames:
|
||||
doc.fields[fieldname] = flt(doc.fields.get(fieldname), self.precision(fieldname, doc.parentfield))
|
||||
|
||||
def _process(self, parentfield):
|
||||
from frappe.model.doc import Document
|
||||
if isinstance(parentfield, Document):
|
||||
parentfield = parentfield.parentfield
|
||||
|
||||
elif isinstance(parentfield, dict):
|
||||
parentfield = parentfield.get("parentfield")
|
||||
|
||||
return parentfield
|
||||
|
||||
def precision(self, fieldname, parentfield=None):
|
||||
parentfield = self._process(parentfield)
|
||||
if not isinstance(parentfield, basestring):
|
||||
parentfield = parentfield.parentfield
|
||||
|
||||
if not hasattr(self, "_precision"):
|
||||
self._precision = frappe._dict({
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ class Meta(Document):
|
|||
def get_link_fields(self):
|
||||
tmp = self.get("fields", {"fieldtype":"Link"})
|
||||
tmp.extend(self.get("fields", {"fieldtype":"Select", "options": "^link:"}))
|
||||
return tmp
|
||||
return tmp
|
||||
|
||||
def get_table_fields(self):
|
||||
return [
|
||||
|
|
@ -46,7 +46,7 @@ class Meta(Document):
|
|||
|
||||
def get_table_field_doctype(self, fieldname):
|
||||
return { "fields": "DocField", "permissions": "DocPerm"}.get(fieldname)
|
||||
|
||||
|
||||
def process(self):
|
||||
self.add_custom_fields()
|
||||
self.apply_property_setters()
|
||||
|
|
|
|||
|
|
@ -980,9 +980,9 @@ frappe.ui.form.ControlTable = frappe.ui.form.Control.extend({
|
|||
this._super();
|
||||
|
||||
// add title if prev field is not column / section heading or html
|
||||
var prev_fieldtype = frappe.model.get_children("DocType", this.frm.doctype, "fields",
|
||||
var prev_fieldtype = frappe.get_children("DocType", this.frm.doctype, "fields",
|
||||
{idx: this.df.idx-1});
|
||||
prev_fieldtype = prev_fieldtype ? prev_fieldtype[0].fieldtype : "";
|
||||
prev_fieldtype = prev_fieldtype.length ? prev_fieldtype[0].fieldtype : "";
|
||||
|
||||
if(["Column Break", "Section Break", "HTML"].indexOf(prev_fieldtype)===-1) {
|
||||
$("<label>" + this.df.label + "<label>").appendTo(this.wrapper);
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ frappe.form.formatters = {
|
|||
return "<pre>" + (value==null ? "" : $("<div>").text(value).html()) + "</pre>"
|
||||
},
|
||||
WorkflowState: function(value) {
|
||||
workflow_state = frappe.model.get_doc("Workflow State", value);
|
||||
workflow_state = frappe.get_doc("Workflow State", value);
|
||||
if(workflow_state) {
|
||||
return repl("<span class='label label-%(style)s' \
|
||||
data-workflow-state='%(value)s'\
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
|
|||
if(check_mandatory()) {
|
||||
_call({
|
||||
method: "frappe.widgets.form.save.savedocs",
|
||||
args: { docs: frm.doc, action:action},
|
||||
args: { doc: frm.doc, action:action},
|
||||
callback: function(r) {
|
||||
$(document).trigger("save", frm.doc);
|
||||
callback(r);
|
||||
|
|
@ -52,7 +52,7 @@ frappe.ui.form.save = function(frm, action, callback, btn) {
|
|||
|
||||
if(frm.doc.docstatus==2) return true; // don't check for cancel
|
||||
|
||||
$.each(frm.model.get_all_docs(frm.doc), function(i, doc) {
|
||||
$.each(frappe.model.get_all_docs(frm.doc), function(i, doc) {
|
||||
|
||||
var error_fields = [];
|
||||
|
||||
|
|
|
|||
|
|
@ -186,7 +186,7 @@ frappe.ui.form.Toolbar = Class.extend({
|
|||
},
|
||||
has_workflow: function() {
|
||||
if(this._has_workflow === undefined)
|
||||
this._has_workflow = frappe.model.get("Workflow", {document_type: this.frm.doctype}).length;
|
||||
this._has_workflow = frappe.get_list("Workflow", {document_type: this.frm.doctype}).length;
|
||||
return this._has_workflow;
|
||||
},
|
||||
get_docstatus: function() {
|
||||
|
|
|
|||
|
|
@ -79,7 +79,7 @@ frappe.ui.form.States = Class.extend({
|
|||
// show current state on the button
|
||||
this.workflow_button.find(".state-text").text(state);
|
||||
|
||||
var state_doc = frappe.model.get_doc("Workflow State", state);
|
||||
var state_doc = frappe.get_doc("Workflow State", state);
|
||||
|
||||
if (state_doc) {
|
||||
// set the icon
|
||||
|
|
@ -109,7 +109,7 @@ frappe.ui.form.States = Class.extend({
|
|||
|
||||
$.each(frappe.workflow.get_transitions(this.frm.doctype, state), function(i, d) {
|
||||
if(in_list(user_roles, d.allowed)) {
|
||||
d.icon = frappe.model.get("Workflow State", d.next_state).icon;
|
||||
d.icon = frappe.get_list("Workflow State", d.next_state).icon;
|
||||
|
||||
$(repl('<li><a href="#" data-action="%(action)s">\
|
||||
<i class="icon icon-%(icon)s"></i> %(action)s</a></li>', d))
|
||||
|
|
@ -160,7 +160,7 @@ frappe.ui.form.States = Class.extend({
|
|||
// revert state on error
|
||||
var on_error = function() {
|
||||
// reset in locals
|
||||
locals[me.frm.doctype][me.frm.docname] = doc_before_action;
|
||||
frappe.model.add_to_locals(doc_before_action);
|
||||
me.frm.refresh();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ $.extend(frappe.model, {
|
|||
new_names: {},
|
||||
new_name_count: {},
|
||||
|
||||
get_new_doc: function(doctype, parent_doc) {
|
||||
get_new_doc: function(doctype, parent_doc, parentfield) {
|
||||
frappe.provide("locals." + doctype);
|
||||
var doc = {
|
||||
docstatus: 0,
|
||||
|
|
@ -18,8 +18,19 @@ $.extend(frappe.model, {
|
|||
owner: user
|
||||
};
|
||||
frappe.model.set_default_values(doc, parent_doc);
|
||||
locals[doctype][doc.name] = doc;
|
||||
frappe.provide("frappe.model.docinfo." + doctype + "." + doc.name);
|
||||
|
||||
if(parent_doc) {
|
||||
$.extend(doc, {
|
||||
parent: parent_doc.name,
|
||||
parentfield: parentfield,
|
||||
parenttype: parent_doc.doctype,
|
||||
});
|
||||
parent_doc[parentfield].push(doc);
|
||||
} else {
|
||||
frappe.provide("frappe.model.docinfo." + doctype + "." + doc.name);
|
||||
}
|
||||
|
||||
frappe.model.add_to_locals(doc);
|
||||
return doc;
|
||||
},
|
||||
|
||||
|
|
@ -84,12 +95,12 @@ $.extend(frappe.model, {
|
|||
|
||||
get_default_from_boot_docs: function(df, doc, parent_doc) {
|
||||
// set default from partial docs passed during boot like ":User"
|
||||
if(frappe.model.get(df["default"]).length > 0) {
|
||||
if(frappe.get_list(df["default"]).length > 0) {
|
||||
var ref_fieldname = df["default"].slice(1).toLowerCase().replace(" ", "_");
|
||||
var ref_value = parent_doc ?
|
||||
parent_doc[ref_fieldname] :
|
||||
frappe.defaults.get_user_default(ref_fieldname);
|
||||
var ref_doc = ref_value ? frappe.model.get_doc(df["default"], ref_value) : null;
|
||||
var ref_doc = ref_value ? frappe.get_doc(df["default"], ref_value) : null;
|
||||
|
||||
if(ref_doc && ref_doc[df.fieldname]) {
|
||||
return ref_doc[df.fieldname];
|
||||
|
|
@ -99,23 +110,18 @@ $.extend(frappe.model, {
|
|||
|
||||
add_child: function(parent_doc, doctype, parentfield, idx) {
|
||||
// create row doc
|
||||
idx = idx ?
|
||||
idx - 0.1 :
|
||||
frappe.model.get_children(doctype, parent_doc.name, parentfield,
|
||||
parent_doc.doctype).length + 1;
|
||||
idx = idx ? idx - 0.1 : (parent_doc[parentfield] || []).length + 1;
|
||||
|
||||
var d = frappe.model.get_new_doc(doctype, parent_doc, parentfield);
|
||||
d.idx = idx;
|
||||
|
||||
var d = frappe.model.get_new_doc(doctype, parent_doc);
|
||||
$.extend(d, {
|
||||
parent: parent_doc.name,
|
||||
parentfield: parentfield,
|
||||
parenttype: parent_doc.doctype,
|
||||
idx: idx
|
||||
});
|
||||
|
||||
// renum for fraction
|
||||
idx !== cint(idx) &&
|
||||
frappe.model.get_children(doctype, parent_doc.name, parentfield,
|
||||
parent_doc.doctype);
|
||||
if(idx !== cint(idx)) {
|
||||
var sorted = parent_doc[parentfield].sort(function(a, b) { return a.idx - b.idx; });
|
||||
$.each(sorted, function(i, d) {
|
||||
d.idx = i + 1;
|
||||
});
|
||||
}
|
||||
|
||||
cur_frm && cur_frm.dirty();
|
||||
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@ $.extend(frappe.meta, {
|
|||
},
|
||||
|
||||
get_parentfield: function(parent_dt, child_dt) {
|
||||
var df = (frappe.model.get_doc("DocType", parent_dt).fields || []).filter(function(d)
|
||||
var df = (frappe.get_doc("DocType", parent_dt).fields || []).filter(function(d)
|
||||
{ return d.fieldtype==="Table" && options===child_dt })
|
||||
if(!df.length)
|
||||
throw "parentfield not found for " + parent_dt + ", " + child_dt;
|
||||
|
|
@ -110,7 +110,7 @@ $.extend(frappe.meta, {
|
|||
var print_format_list = ["Standard"];
|
||||
var default_print_format = locals.DocType[doctype].default_print_format;
|
||||
|
||||
var print_formats = frappe.model.get("Print Format", {doc_type: doctype})
|
||||
var print_formats = frappe.get_list("Print Format", {doc_type: doctype})
|
||||
.sort(function(a, b) { return (a > b) ? 1 : -1; });
|
||||
$.each(print_formats, function(i, d) {
|
||||
if(!in_list(print_format_list, d.name))
|
||||
|
|
|
|||
|
|
@ -205,8 +205,8 @@ $.extend(frappe.model, {
|
|||
return ret ? true : false;
|
||||
},
|
||||
|
||||
get: function(doctype, filters) {
|
||||
var docsdict = locals[doctype] || locals[":" + doctype] || [];
|
||||
get_list: function(doctype, filters) {
|
||||
var docsdict = locals[doctype] || locals[":" + doctype] || {};
|
||||
if($.isEmptyObject(docsdict))
|
||||
return [];
|
||||
return frappe.utils.filter_dict(docsdict, filters);
|
||||
|
|
@ -217,16 +217,15 @@ $.extend(frappe.model, {
|
|||
return locals[doctype] && locals[doctype][filters]
|
||||
&& locals[doctype][filters][fieldname];
|
||||
} else {
|
||||
var l = frappe.model.get(doctype, filters);
|
||||
var l = frappe.get_list(doctype, filters);
|
||||
return (l.length && l[0]) ? l[0][fieldname] : null;
|
||||
}
|
||||
},
|
||||
|
||||
set_value: function(doctype, name, fieldname, value, fieldtype) {
|
||||
set_value: function(doctype, docname, fieldname, value, fieldtype) {
|
||||
/* help: Set a value locally (if changed) and execute triggers */
|
||||
if(!name) name = doctype;
|
||||
var doc = locals[doctype] && locals[doctype][name] || null;
|
||||
|
||||
var doc = locals[doctype] && locals[doctype][docname];
|
||||
|
||||
if(doc && doc[fieldname] !== value) {
|
||||
doc[fieldname] = value;
|
||||
frappe.model.trigger(fieldname, value, doc);
|
||||
|
|
@ -274,19 +273,28 @@ $.extend(frappe.model, {
|
|||
},
|
||||
|
||||
get_doc: function(doctype, name) {
|
||||
if($.isPlainObject(name)) {
|
||||
var doc = frappe.get_list(doctype, name);
|
||||
return doc && doc.length ? doc[0] : null;
|
||||
}
|
||||
return locals[doctype] ? locals[doctype][name] : null;
|
||||
},
|
||||
|
||||
get_children: function(doctype, parent, parentfield, filters) {
|
||||
if($.isPlainObject(parentfield)) {
|
||||
if($.isPlainObject(doctype)) {
|
||||
var doc = doctype;
|
||||
var filters = parentfield;
|
||||
var filters = parentfield
|
||||
var parentfield = parent;
|
||||
return frappe.utils.filter_dict((doc[parentfield] || []), filters);
|
||||
} else {
|
||||
return frappe.utils.filter_dict((frappe.model.get_doc(doctype, parent)[parentfield] || []), filters);
|
||||
var doc = frappe.get_doc(doctype, parent)[parentfield];
|
||||
}
|
||||
|
||||
var children = doc[parentfield] || [];
|
||||
if(filters) {
|
||||
return frappe.utils.filter_dict(children, filters);
|
||||
} else {
|
||||
return children;
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
clear_table: function(doctype, parenttype, parent, parentfield) {
|
||||
|
|
@ -314,13 +322,13 @@ $.extend(frappe.model, {
|
|||
}
|
||||
delete locals[doctype][name];
|
||||
if(parent)
|
||||
frappe.model.get_children(doctype, parent, parentfield, parenttype);
|
||||
frappe.get_children(doctype, parent, parentfield, parenttype);
|
||||
},
|
||||
|
||||
get_no_copy_list: function(doctype) {
|
||||
var no_copy_list = ['name','amended_from','amendment_date','cancel_reason'];
|
||||
|
||||
$.each(frappe.model.get_doc("DocType", doctype).fields || [], function(i, df) {
|
||||
$.each(frappe.get_doc("DocType", doctype).fields || [], function(i, df) {
|
||||
if(cint(df.no_copy)) no_copy_list.push(df.fieldname);
|
||||
})
|
||||
return no_copy_list;
|
||||
|
|
@ -477,4 +485,6 @@ $.extend(frappe.model, {
|
|||
});
|
||||
|
||||
// legacy
|
||||
getchildren = frappe.model.get_children
|
||||
frappe.get_doc = frappe.model.get_doc;
|
||||
frappe.get_children = frappe.model.get_children;
|
||||
frappe.get_list = frappe.model.get_list;
|
||||
|
|
@ -37,7 +37,7 @@ $.extend(frappe.perm, {
|
|||
get_perm: function(doctype, docname) {
|
||||
var perm = [{read: 0}];
|
||||
|
||||
var meta = frappe.model.get_doc("DocType", doctype);
|
||||
var meta = frappe.get_doc("DocType", doctype);
|
||||
|
||||
if(!meta) {
|
||||
return perm;
|
||||
|
|
@ -52,7 +52,7 @@ $.extend(frappe.perm, {
|
|||
return perm;
|
||||
}
|
||||
|
||||
var docperms = frappe.model.get_doc("DocType", doctype).permissions || [];
|
||||
var docperms = frappe.get_doc("DocType", doctype).permissions || [];
|
||||
$.each(docperms, function(i, p) {
|
||||
// if user has this role
|
||||
if(user_roles.indexOf(p.role)!==-1) {
|
||||
|
|
@ -75,7 +75,7 @@ $.extend(frappe.perm, {
|
|||
|
||||
has_unrestricted_access: function(doctype, docname, restricted) {
|
||||
var restrictions = frappe.defaults.get_restrictions();
|
||||
var doc = frappe.model.get_doc(doctype, docname);
|
||||
var doc = frappe.get_doc(doctype, docname);
|
||||
|
||||
if(restricted) {
|
||||
if(doc.owner==user) return true;
|
||||
|
|
@ -93,7 +93,7 @@ $.extend(frappe.perm, {
|
|||
|
||||
// loop and find if has restricted data
|
||||
var has_restricted_data = false;
|
||||
var doc = frappe.model.get_doc(doctype, docname);
|
||||
var doc = frappe.get_doc(doctype, docname);
|
||||
$.each(fields_to_check, function(i, df) {
|
||||
if(doc[df.fieldname] && restrictions[df.options].indexOf(doc[df.fieldname])===-1) {
|
||||
has_restricted_data = true;
|
||||
|
|
|
|||
|
|
@ -22,10 +22,7 @@ $.extend(frappe.model, {
|
|||
frappe.provide("frappe.model.docinfo." + d.doctype + "." + d.name);
|
||||
}
|
||||
|
||||
if(!locals[d.doctype])
|
||||
locals[d.doctype] = {};
|
||||
|
||||
locals[d.doctype][d.name] = d;
|
||||
frappe.model.add_to_locals(d);
|
||||
d.__last_sync_on = new Date();
|
||||
|
||||
if(d.doctype==="DocType") {
|
||||
|
|
@ -67,5 +64,18 @@ $.extend(frappe.model, {
|
|||
|
||||
return r.docs;
|
||||
},
|
||||
add_to_locals: function(doc) {
|
||||
if(!locals[doc.doctype]) locals[doc.doctype] = {};
|
||||
locals[doc.doctype][doc.name] = doc;
|
||||
if(!doc.parent) {
|
||||
$.each(doc, function(key, value) {
|
||||
if($.isArray(value)) {
|
||||
$.each(value, function(i, d) {
|
||||
frappe.model.add_to_locals(d);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
});
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ frappe.workflow = {
|
|||
state_fields: {},
|
||||
workflows: {},
|
||||
setup: function(doctype) {
|
||||
var wf = frappe.model.get("Workflow", {document_type: 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;
|
||||
|
|
@ -27,14 +27,14 @@ frappe.workflow = {
|
|||
},
|
||||
get_transitions: function(doctype, state) {
|
||||
frappe.workflow.setup(doctype);
|
||||
return frappe.model.get_children(frappe.workflow.workflows[doctype], "workflow_transitions", {state:state});
|
||||
return frappe.get_children(frappe.workflow.workflows[doctype], "workflow_transitions", {state:state});
|
||||
},
|
||||
get_document_state: function(doctype, state) {
|
||||
frappe.workflow.setup(doctype);
|
||||
return frappe.model.get_children(frappe.workflow.workflows[doctype], "workflow_document_states", {state:state})[0];
|
||||
return frappe.get_children(frappe.workflow.workflows[doctype], "workflow_document_states", {state:state})[0];
|
||||
},
|
||||
get_next_state: function(doctype, state, action) {
|
||||
return frappe.model.get_children(frappe.workflow.workflows[doctype], "workflow_transitions", {
|
||||
return frappe.get_children(frappe.workflow.workflows[doctype], "workflow_transitions", {
|
||||
state:state, action:action})[0].next_state;
|
||||
},
|
||||
is_read_only: function(doctype, name) {
|
||||
|
|
|
|||
|
|
@ -28,8 +28,7 @@ frappe.print.Table = Class.extend({
|
|||
}));
|
||||
},
|
||||
get_data: function() {
|
||||
var children = frappe.model.get(this.tabletype, {
|
||||
parent:this.docname, parenttype:this.doctype, parentfield: this.fieldname})
|
||||
var children = frappe.get_doc(this.doctype, this.docname)[this.fieldname] || [];
|
||||
|
||||
var data = []
|
||||
for(var i=0; i<children.length; i++) {
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ frappe.call = function(opts) {
|
|||
} else if(opts.doc) {
|
||||
$.extend(args, {
|
||||
cmd: "runserverobj",
|
||||
docs: frappe.model.get_doc(opts.doc.doctype, opts.doc.name),
|
||||
docs: frappe.get_doc(opts.doc.doctype, opts.doc.name),
|
||||
method: opts.method,
|
||||
args: opts.args,
|
||||
});
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ frappe.views.CommunicationList = Class.extend({
|
|||
}
|
||||
|
||||
if(!this.list)
|
||||
this.list = frappe.model.get("Communication", {"parenttype": this.doc.doctype, "parent": this.doc.name});
|
||||
this.list = frappe.get_list("Communication", {"parenttype": this.doc.doctype, "parent": this.doc.name});
|
||||
|
||||
var sortfn = function (a, b) { return (b.creation > a.creation) ? 1 : -1; }
|
||||
this.list = this.list.sort(sortfn);
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ frappe.views.ListView = Class.extend({
|
|||
'modified_by'], function(i, fieldname) { add_field(fieldname); })
|
||||
|
||||
// add title field
|
||||
var meta = frappe.model.get("DocType", this.doctype)[0];
|
||||
var meta = frappe.get_doc("DocType", this.doctype);
|
||||
if(meta.title_field) {
|
||||
this.title_field = meta.title_field;
|
||||
add_field(meta.title_field);
|
||||
|
|
@ -56,8 +56,8 @@ frappe.views.ListView = Class.extend({
|
|||
this.stats.push(this.workflow_state_fieldname);
|
||||
}
|
||||
|
||||
$.each(frappe.model.get("DocField", {"parent":this.doctype, "in_list_view":1}), function(i,d) {
|
||||
if(frappe.perm.has_perm(me.doctype, d.permlevel, "read")) {
|
||||
$.each(meta.fields, function(i,d) {
|
||||
if(d.in_list_view && frappe.perm.has_perm(me.doctype, d.permlevel, "read")) {
|
||||
if(d.fieldtype=="Image" && d.options) {
|
||||
add_field(d.options);
|
||||
} else {
|
||||
|
|
@ -103,8 +103,8 @@ frappe.views.ListView = Class.extend({
|
|||
var overridden = $.map(this.settings.add_columns || [], function(d) {
|
||||
return d.content;
|
||||
});
|
||||
var docfields_in_list_view = frappe.model.get("DocField", {"parent":this.doctype,
|
||||
"in_list_view":1}).sort(function(a, b) { return a.idx - b.idx })
|
||||
var docfields_in_list_view = frappe.get_children("DocType", this.doctype, "fields",
|
||||
{"in_list_view":1}).sort(function(a, b) { return a.idx - b.idx })
|
||||
|
||||
$.each(docfields_in_list_view, function(i,d) {
|
||||
if(in_list(overridden, d.fieldname) || d.fieldname === me.title_field) {
|
||||
|
|
|
|||
|
|
@ -93,7 +93,7 @@ frappe.views.QueryReport = Class.extend({
|
|||
me.appframe.set_title(frappe._("Query Report")+": " + frappe._(me.report_name));
|
||||
|
||||
frappe.model.with_doc("Report", me.report_name, function() {
|
||||
me.report_doc = frappe.model.get_doc("Report", me.report_name);
|
||||
me.report_doc = frappe.get_doc("Report", me.report_name);
|
||||
frappe.model.with_doctype(me.report_doc.ref_doctype, function() {
|
||||
if(!frappe.query_reports[me.report_name]) {
|
||||
return frappe.call({
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ frappe.views.ReportViewPage = Class.extend({
|
|||
if(me.docname) {
|
||||
frappe.model.with_doc('Report', me.docname, function(r) {
|
||||
me.page.reportview.set_columns_and_filters(
|
||||
JSON.parse(frappe.model.get("Report", me.docname)[0].json));
|
||||
JSON.parse(frappe.get_doc("Report", me.docname).json));
|
||||
me.page.reportview.set_route_filters();
|
||||
me.page.reportview.run();
|
||||
});
|
||||
|
|
|
|||
|
|
@ -212,7 +212,7 @@ _f.Frm.prototype.watch_model_updates = function() {
|
|||
})
|
||||
|
||||
// on table fields
|
||||
$.each(frappe.model.get("DocField", {fieldtype:"Table", parent: me.doctype}), function(i, df) {
|
||||
$.each(frappe.get_children("DocType", me.doctype, "fields", {fieldtype:"Table"}), function(i, df) {
|
||||
frappe.model.on(df.options, "*", function(fieldname, value, doc) {
|
||||
if(doc.parent===me.docname && doc.parentfield===df.fieldname) {
|
||||
me.dirty();
|
||||
|
|
@ -306,7 +306,7 @@ _f.Frm.prototype.rename_notify = function(dt, old, name) {
|
|||
// SETUP
|
||||
|
||||
_f.Frm.prototype.setup_meta = function(doctype) {
|
||||
this.meta = frappe.model.get_doc('DocType',this.doctype);
|
||||
this.meta = frappe.get_doc('DocType',this.doctype);
|
||||
this.perm = frappe.perm.get_perm(this.doctype); // for create
|
||||
if(this.meta.istable) { this.meta.in_dialog = 1 }
|
||||
}
|
||||
|
|
@ -366,7 +366,7 @@ _f.Frm.prototype.refresh = function(docname) {
|
|||
this.read_only = frappe.workflow.is_read_only(this.doctype, this.docname);
|
||||
|
||||
// set the doc
|
||||
this.doc = frappe.model.get_doc(this.doctype, this.docname);
|
||||
this.doc = frappe.get_doc(this.doctype, this.docname);
|
||||
|
||||
// check if doctype is already open
|
||||
if (!this.opendocs[this.docname]) {
|
||||
|
|
|
|||
|
|
@ -420,7 +420,7 @@ $.extend(_p, {
|
|||
// Get doctype, docname, layout for a doctype
|
||||
var docname = cur_frm.docname;
|
||||
var doctype = cur_frm.doctype;
|
||||
var data = getchildren('DocField', doctype, 'fields', 'DocType');
|
||||
var data = frappe.get_children("DocType", doctype, "fields");
|
||||
var layout = _p.add_layout(doctype);
|
||||
this.pf_list = [layout];
|
||||
var me = this;
|
||||
|
|
|
|||
|
|
@ -7,7 +7,5 @@ from frappe.website.website_generator import WebsiteGenerator
|
|||
from frappe.website.utils import cleanup_page_name
|
||||
from frappe.utils import cint
|
||||
|
||||
class DocType(WebsiteGenerator):
|
||||
def __init__(self, doc, doclist):
|
||||
self.doc, self.doclist = doc, doclist
|
||||
self.save_versions = True
|
||||
class WebsitePage(WebsiteGenerator):
|
||||
save_versions = True
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ $.extend(cur_frm.cscript, {
|
|||
},
|
||||
|
||||
label: function(doc, cdt, cdn) {
|
||||
var item = frappe.model.get_doc(cdt, cdn);
|
||||
var item = frappe.get_doc(cdt, cdn);
|
||||
if(item.parentfield === "top_bar_items") {
|
||||
this.set_parent_label_options();
|
||||
}
|
||||
|
|
@ -56,7 +56,7 @@ $.extend(cur_frm.cscript, {
|
|||
|
||||
// get labels of parent items
|
||||
get_parent_options: function(table_field) {
|
||||
var items = getchildren('Top Bar Item', cur_frm.doc.name, table_field);
|
||||
var items = cur_frm.doc[table_field] || [];
|
||||
var main_items = [''];
|
||||
for(var i in items) {
|
||||
var d = items[i];
|
||||
|
|
|
|||
|
|
@ -68,8 +68,9 @@ def getdoctype(doctype, with_parent=False, cached_timestamp=None):
|
|||
|
||||
def get_meta_bundle(doctype):
|
||||
bundle = [frappe.widgets.form.meta.get_meta(doctype)]
|
||||
for df in bundle[0].get_table_fields():
|
||||
bundle.append(frappe.widgets.form.meta.get_meta(df.options))
|
||||
for df in bundle[0].fields:
|
||||
if df.fieldtype=="Table":
|
||||
bundle.append(frappe.widgets.form.meta.get_meta(df.options))
|
||||
return bundle
|
||||
|
||||
def get_docinfo(doctype, name):
|
||||
|
|
|
|||
|
|
@ -2,27 +2,25 @@
|
|||
# MIT License. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
import frappe, json
|
||||
|
||||
@frappe.whitelist()
|
||||
def savedocs():
|
||||
"""save / submit / update doclist"""
|
||||
try:
|
||||
wrapper = frappe.bean()
|
||||
wrapper.from_compressed(frappe.form_dict.docs, frappe.form_dict.docname)
|
||||
doc = frappe.get_doc(json.loads(frappe.form_dict.doc))
|
||||
|
||||
# action
|
||||
action = frappe.form_dict.action
|
||||
if action=='Update': action='update_after_submit'
|
||||
doc.docstatus = {"Save":0, "Submit": 1, "Update": 1, "Cancel": 2}[frappe.form_dict.action]
|
||||
try:
|
||||
getattr(wrapper, action.lower())()
|
||||
doc.save()
|
||||
except NameError, e:
|
||||
frappe.msgprint(frappe._("Name Exists"))
|
||||
raise
|
||||
|
||||
# update recent documents
|
||||
frappe.user.update_recent(wrapper.doc.doctype, wrapper.doc.name)
|
||||
send_updated_docs(wrapper)
|
||||
frappe.user.update_recent(doc.doctype, doc.name)
|
||||
send_updated_docs(doc)
|
||||
|
||||
except Exception, e:
|
||||
frappe.msgprint(frappe._('Did not save'))
|
||||
|
|
@ -33,20 +31,20 @@ def savedocs():
|
|||
def cancel(doctype=None, name=None):
|
||||
"""cancel a doclist"""
|
||||
try:
|
||||
wrapper = frappe.bean(doctype, name)
|
||||
wrapper.cancel()
|
||||
send_updated_docs(wrapper)
|
||||
doc = frappe.get_doc(doctype, name)
|
||||
doc.cancel()
|
||||
send_updated_docs(doc)
|
||||
|
||||
except Exception, e:
|
||||
frappe.errprint(frappe.utils.get_traceback())
|
||||
frappe.msgprint(frappe._("Did not cancel"))
|
||||
raise
|
||||
|
||||
def send_updated_docs(wrapper):
|
||||
def send_updated_docs(doc):
|
||||
from load import get_docinfo
|
||||
get_docinfo(wrapper.doc.doctype, wrapper.doc.name)
|
||||
get_docinfo(doc.doctype, doc.name)
|
||||
|
||||
frappe.response['main_doc_name'] = wrapper.doc.name
|
||||
frappe.response['doctype'] = wrapper.doc.doctype
|
||||
frappe.response['docname'] = wrapper.doc.name
|
||||
frappe.response['docs'] = wrapper.doclist
|
||||
frappe.response['main_doc_name'] = doc.name
|
||||
frappe.response['doctype'] = doc.doctype
|
||||
frappe.response['docname'] = doc.name
|
||||
frappe.response.docs.append(doc)
|
||||
Loading…
Add table
Reference in a new issue