[link selector] fixes
This commit is contained in:
parent
c997c7e19e
commit
b3cbabf0a2
4 changed files with 18 additions and 12 deletions
|
|
@ -604,6 +604,7 @@ wn.ui.form.ControlLink = wn.ui.form.ControlData.extend({
|
|||
me.set_custom_query(args);
|
||||
|
||||
wn.call({
|
||||
type: "GET",
|
||||
method:'webnotes.widgets.search.search_link',
|
||||
args: args,
|
||||
callback: function(r) {
|
||||
|
|
@ -660,6 +661,7 @@ wn.ui.form.ControlLink = wn.ui.form.ControlData.extend({
|
|||
|
||||
wn.call({
|
||||
method:'webnotes.widgets.form.utils.validate_link',
|
||||
type: "GET",
|
||||
args: {
|
||||
'value': value,
|
||||
'options':me.df.options,
|
||||
|
|
|
|||
|
|
@ -60,7 +60,7 @@ wn.ui.form.LinkSelector = Class.extend({
|
|||
search: function(btn) {
|
||||
var args = {
|
||||
txt: this.dialog.fields_dict.txt.get_value(),
|
||||
doctype: this.target.doctype,
|
||||
doctype: this.doctype,
|
||||
searchfield: this.dialog.fields_dict.search_field.get_value()
|
||||
},
|
||||
me = this;
|
||||
|
|
@ -69,6 +69,7 @@ wn.ui.form.LinkSelector = Class.extend({
|
|||
|
||||
wn.call({
|
||||
method: "webnotes.widgets.search.search_widget",
|
||||
type: "GET",
|
||||
args: args,
|
||||
callback: function(r) {
|
||||
var parent = me.dialog.fields_dict.results.$wrapper;
|
||||
|
|
|
|||
|
|
@ -49,11 +49,12 @@ def get_form_params():
|
|||
return data
|
||||
|
||||
def execute(doctype, query=None, filters=None, fields=None, docstatus=None,
|
||||
group_by=None, order_by=None, limit_start=0, limit_page_length=None):
|
||||
group_by=None, order_by=None, limit_start=0, limit_page_length=None,
|
||||
as_list=False, debug=False):
|
||||
|
||||
if query:
|
||||
return run_custom_query(query)
|
||||
|
||||
|
||||
if not filters: filters = []
|
||||
if not docstatus: docstatus = []
|
||||
|
||||
|
|
@ -63,7 +64,7 @@ def execute(doctype, query=None, filters=None, fields=None, docstatus=None,
|
|||
query = """select %(fields)s from %(tables)s where %(conditions)s
|
||||
%(group_by)s order by %(order_by)s %(limit)s""" % args
|
||||
|
||||
return webnotes.conn.sql(query, as_dict=1)
|
||||
return webnotes.conn.sql(query, as_dict=not as_list, debug=debug)
|
||||
|
||||
def prepare_args(doctype, filters, fields, docstatus, group_by, order_by):
|
||||
global tables
|
||||
|
|
|
|||
|
|
@ -41,6 +41,8 @@ def search_widget(doctype, txt, query=None, searchfield="name", start=0,
|
|||
if isinstance(filters, basestring):
|
||||
import json
|
||||
filters = json.loads(filters)
|
||||
if isinstance(filters, dict):
|
||||
filters = map(lambda f: [doctype, f[0], "=", f[1]], filters.items())
|
||||
|
||||
meta = webnotes.get_doctype(doctype)
|
||||
|
||||
|
|
@ -60,24 +62,24 @@ def search_widget(doctype, txt, query=None, searchfield="name", start=0,
|
|||
else:
|
||||
# build from doctype
|
||||
if txt:
|
||||
filters.append([searchfield, "like", txt])
|
||||
if meta.get({"parent":dt, "fieldname":"enabled", "fieldtype":"Check"}):
|
||||
filters.append(["ifnull(enabled, 0)", "=", 1])
|
||||
if meta.get({"parent":dt, "fieldname":"disabled", "fieldtype":"Check"}):
|
||||
filters.append(["ifnull(disabled, 0)", "!=", 1])
|
||||
filters.append([doctype, searchfield, "like", txt + "%"])
|
||||
if meta.get({"parent":doctype, "fieldname":"enabled", "fieldtype":"Check"}):
|
||||
filters.append([doctype, "enabled", "=", 1])
|
||||
if meta.get({"parent":doctype, "fieldname":"disabled", "fieldtype":"Check"}):
|
||||
filters.append([doctype, "disabled", "!=", 1])
|
||||
|
||||
webnotes.response["values"] = webnotes.widgets.reportview.execute(doctype,
|
||||
filters=filters, fields = get_std_fields_list(meta, searchfield),
|
||||
limit_start = start, limit_page_length=page_len)
|
||||
limit_start = start, limit_page_length=page_len, as_list=True, debug=True)
|
||||
|
||||
def get_std_fields_list(meta, key):
|
||||
# get additional search fields
|
||||
sflist = meta.doc.search_fields and meta.doc.search_fields.split(",") or []
|
||||
sflist = meta[0].search_fields and meta[0].search_fields.split(",") or []
|
||||
sflist = ['name'] + sflist
|
||||
if not key in sflist:
|
||||
sflist = sflist + [key]
|
||||
|
||||
return ['`tab%s`.`%s`' % (meta.doc.name, f.strip()) for f in sflist]
|
||||
return ['`tab%s`.`%s`' % (meta[0].name, f.strip()) for f in sflist]
|
||||
|
||||
def build_for_autosuggest(res):
|
||||
results = []
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue