Pārlūkot izejas kodu

[link selector] fixes

version-14
Rushabh Mehta pirms 12 gadiem
vecāks
revīzija
b3cbabf0a2
4 mainītis faili ar 18 papildinājumiem un 12 dzēšanām
  1. +2
    -0
      public/js/wn/form/control.js
  2. +2
    -1
      public/js/wn/form/link_selector.js
  3. +4
    -3
      webnotes/widgets/reportview.py
  4. +10
    -8
      webnotes/widgets/search.py

+ 2
- 0
public/js/wn/form/control.js Parādīt failu

@@ -604,6 +604,7 @@ wn.ui.form.ControlLink = wn.ui.form.ControlData.extend({
me.set_custom_query(args); me.set_custom_query(args);


wn.call({ wn.call({
type: "GET",
method:'webnotes.widgets.search.search_link', method:'webnotes.widgets.search.search_link',
args: args, args: args,
callback: function(r) { callback: function(r) {
@@ -660,6 +661,7 @@ wn.ui.form.ControlLink = wn.ui.form.ControlData.extend({


wn.call({ wn.call({
method:'webnotes.widgets.form.utils.validate_link', method:'webnotes.widgets.form.utils.validate_link',
type: "GET",
args: { args: {
'value': value, 'value': value,
'options':me.df.options, 'options':me.df.options,


+ 2
- 1
public/js/wn/form/link_selector.js Parādīt failu

@@ -60,7 +60,7 @@ wn.ui.form.LinkSelector = Class.extend({
search: function(btn) { search: function(btn) {
var args = { var args = {
txt: this.dialog.fields_dict.txt.get_value(), txt: this.dialog.fields_dict.txt.get_value(),
doctype: this.target.doctype,
doctype: this.doctype,
searchfield: this.dialog.fields_dict.search_field.get_value() searchfield: this.dialog.fields_dict.search_field.get_value()
}, },
me = this; me = this;
@@ -69,6 +69,7 @@ wn.ui.form.LinkSelector = Class.extend({
wn.call({ wn.call({
method: "webnotes.widgets.search.search_widget", method: "webnotes.widgets.search.search_widget",
type: "GET",
args: args, args: args,
callback: function(r) { callback: function(r) {
var parent = me.dialog.fields_dict.results.$wrapper; var parent = me.dialog.fields_dict.results.$wrapper;


+ 4
- 3
webnotes/widgets/reportview.py Parādīt failu

@@ -49,11 +49,12 @@ def get_form_params():
return data return data
def execute(doctype, query=None, filters=None, fields=None, docstatus=None, 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: if query:
return run_custom_query(query) return run_custom_query(query)
if not filters: filters = [] if not filters: filters = []
if not docstatus: docstatus = [] 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 query = """select %(fields)s from %(tables)s where %(conditions)s
%(group_by)s order by %(order_by)s %(limit)s""" % args %(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): def prepare_args(doctype, filters, fields, docstatus, group_by, order_by):
global tables global tables


+ 10
- 8
webnotes/widgets/search.py Parādīt failu

@@ -41,6 +41,8 @@ def search_widget(doctype, txt, query=None, searchfield="name", start=0,
if isinstance(filters, basestring): if isinstance(filters, basestring):
import json import json
filters = json.loads(filters) filters = json.loads(filters)
if isinstance(filters, dict):
filters = map(lambda f: [doctype, f[0], "=", f[1]], filters.items())


meta = webnotes.get_doctype(doctype) meta = webnotes.get_doctype(doctype)
@@ -60,24 +62,24 @@ def search_widget(doctype, txt, query=None, searchfield="name", start=0,
else: else:
# build from doctype # build from doctype
if txt: 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, webnotes.response["values"] = webnotes.widgets.reportview.execute(doctype,
filters=filters, fields = get_std_fields_list(meta, searchfield), 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): def get_std_fields_list(meta, key):
# get additional search fields # 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 sflist = ['name'] + sflist
if not key in sflist: if not key in sflist:
sflist = sflist + [key] 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): def build_for_autosuggest(res):
results = [] results = []


Notiek ielāde…
Atcelt
Saglabāt