[api] add frappe.model.get_value in js (gets value from serverside)
This commit is contained in:
parent
e2813855e9
commit
5034e7e660
5 changed files with 38 additions and 12 deletions
|
|
@ -32,9 +32,19 @@ def get_value(doctype, fieldname, filters=None, as_dict=True, debug=False):
|
|||
if not frappe.has_permission(doctype):
|
||||
frappe.throw(_("Not permitted"), frappe.PermissionError)
|
||||
|
||||
if fieldname and fieldname.startswith("["):
|
||||
try:
|
||||
filters = json.loads(filters)
|
||||
except ValueError:
|
||||
# name passed, not json
|
||||
pass
|
||||
|
||||
try:
|
||||
fieldname = json.loads(fieldname)
|
||||
return frappe.db.get_value(doctype, json.loads(filters), fieldname, as_dict=as_dict, debug=debug)
|
||||
except ValueError:
|
||||
# name passed, not json
|
||||
pass
|
||||
|
||||
return frappe.db.get_value(doctype, filters, fieldname, as_dict=as_dict, debug=debug)
|
||||
|
||||
@frappe.whitelist()
|
||||
def set_value(doctype, name, fieldname, value):
|
||||
|
|
|
|||
|
|
@ -80,7 +80,7 @@ frappe.ui.form.ScriptManager = Class.extend({
|
|||
// setup add fetch
|
||||
$.each(this.frm.fields, function(i, field) {
|
||||
var df = field.df;
|
||||
if(df.fieldtype==="Read Only" && df.options && df.options.indexOf(".")!=-1) {
|
||||
if((df.fieldtype==="Read Only" || df.read_only==1) && df.options && df.options.indexOf(".")!=-1) {
|
||||
var parts = df.options.split(".");
|
||||
me.frm.add_fetch(parts[0], parts[1], df.fieldname);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,12 +242,28 @@ $.extend(frappe.model, {
|
|||
return frappe.utils.filter_dict(docsdict, filters);
|
||||
},
|
||||
|
||||
get_value: function(doctype, filters, fieldname) {
|
||||
if(typeof filters==="string" && locals[doctype] && locals[doctype][filters]) {
|
||||
return locals[doctype][filters][fieldname];
|
||||
get_value: function(doctype, filters, fieldname, callback) {
|
||||
if(callback) {
|
||||
frappe.call({
|
||||
method:"frappe.client.get_value",
|
||||
args: {
|
||||
doctype: doctype,
|
||||
fieldname: fieldname,
|
||||
filters: filters
|
||||
},
|
||||
callback: function(r) {
|
||||
if(!r.exc) {
|
||||
callback(r.message);
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
var l = frappe.get_list(doctype, filters);
|
||||
return (l.length && l[0]) ? l[0][fieldname] : null;
|
||||
if(typeof filters==="string" && locals[doctype] && locals[doctype][filters]) {
|
||||
return locals[doctype][filters][fieldname];
|
||||
} else {
|
||||
var l = frappe.get_list(doctype, filters);
|
||||
return (l.length && l[0]) ? l[0][fieldname] : null;
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@
|
|||
<div class="print-heading">
|
||||
<h2>{{ doc.select_print_heading or (doc.print_heading if doc.print_heading != None
|
||||
else _(doc.doctype)) }}
|
||||
<small>{{ doc.sub_heading if doc.sub_heading != None
|
||||
<small><br>{{ doc.sub_heading if doc.sub_heading != None
|
||||
else doc.name }}</small>
|
||||
</h2>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ class WebsiteGenerator(Document):
|
|||
if context.parents:
|
||||
return context.parents
|
||||
|
||||
# home_page = get_home_page()
|
||||
home_page = get_home_page()
|
||||
|
||||
parents = []
|
||||
me = self
|
||||
|
|
@ -157,8 +157,8 @@ class WebsiteGenerator(Document):
|
|||
_parent_val = me.get(_parent_field) if _parent_field else None
|
||||
|
||||
# if no parent and not home page, then parent is home page
|
||||
# if not _parent_val and me.get_route() != home_page:
|
||||
# _parent_val = home_page
|
||||
if not _parent_val and me.get_route() != home_page:
|
||||
_parent_val = home_page
|
||||
|
||||
if _parent_val:
|
||||
df = me.meta.get_field(_parent_field)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue