[sql] [get_value_for_many_names] if no names, return empty dict

This commit is contained in:
Anand Doshi 2013-05-02 16:15:49 +05:30
parent 9de7b91f67
commit 0d6186797c

View file

@ -310,7 +310,7 @@ class Database:
def get_values(self, doctype, filters=None, fieldname="name", ignore=None, as_dict=False, debug=False):
if isinstance(filters, list):
return self.get_value_for_many_names(doctype, filters, fieldname)
return self.get_value_for_many_names(doctype, filters, fieldname, debug)
fields = fieldname
if fieldname!="*":
@ -370,10 +370,15 @@ class Database:
return r
def get_value_for_many_names(self, doctype, names, field):
def get_value_for_many_names(self, doctype, names, field, debug=False):
names = filter(None, names)
return dict(self.sql("select name, `%s` from `tab%s` where name in (%s)" \
% (field, doctype, ", ".join(map(lambda n: "'%s'" % n.replace("'", "\'"), names)))))
if names:
return dict(self.sql("select name, `%s` from `tab%s` where name in (%s)" \
% (field, doctype, ", ".join(map(lambda n: "'%s'" % n.replace("'", "\'"), names))),
debug))
else:
return {}
def set_value(self, dt, dn, field, val, modified=None, modified_by=None):
from webnotes.utils import now