@@ -13,7 +13,7 @@ import os, sys, importlib, inspect, json | |||||
from .exceptions import * | from .exceptions import * | ||||
from .utils.jinja import get_jenv, get_template, render_template | from .utils.jinja import get_jenv, get_template, render_template | ||||
__version__ = '7.2.13' | |||||
__version__ = '7.2.14' | |||||
__title__ = "Frappe Framework" | __title__ = "Frappe Framework" | ||||
local = Local() | local = Local() | ||||
@@ -15,9 +15,7 @@ def get_roles_and_doctypes(): | |||||
send_translations(frappe.get_lang_dict("doctype", "DocPerm")) | send_translations(frappe.get_lang_dict("doctype", "DocPerm")) | ||||
return { | return { | ||||
"doctypes": [d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where | "doctypes": [d[0] for d in frappe.db.sql("""select name from `tabDocType` dt where | ||||
istable=0 and | |||||
name not in ('DocType') and | |||||
exists(select * from `tabDocPerm` dp,`tabRole` role where dp.role = role.name and dp.parent=dt.name and not role.disabled)""")], | |||||
istable=0 and name not in ('DocType')""")], | |||||
"roles": [d[0] for d in frappe.db.sql("""select name from tabRole where | "roles": [d[0] for d in frappe.db.sql("""select name from tabRole where | ||||
name != 'Administrator' and disabled=0""")] | name != 'Administrator' and disabled=0""")] | ||||
} | } | ||||
@@ -52,12 +52,13 @@ frappe.ui.form.LinkedWith = Class.extend({ | |||||
var me = this; | var me = this; | ||||
var already_loaded = Object.keys(locals.DocType); | var already_loaded = Object.keys(locals.DocType); | ||||
var doctypes_to_load = []; | var doctypes_to_load = []; | ||||
$.each(Object.keys(me.frm.__linked_doctypes), function(i, v) { | |||||
if (already_loaded.indexOf(v)===-1) { | |||||
doctypes_to_load.push(v); | |||||
} | |||||
}); | |||||
if (me.frm.__linked_doctypes) { | |||||
$.each(Object.keys(me.frm.__linked_doctypes), function(i, v) { | |||||
if (already_loaded.indexOf(v)===-1) { | |||||
doctypes_to_load.push(v); | |||||
} | |||||
}); | |||||
} | |||||
// load all doctypes sequentially using with_doctype | // load all doctypes sequentially using with_doctype | ||||
return $.when.apply($, $.map(doctypes_to_load, function(dt) { | return $.when.apply($, $.map(doctypes_to_load, function(dt) { | ||||
return frappe.model.with_doctype(dt, function() { | return frappe.model.with_doctype(dt, function() { | ||||