Merge pull request #1623 from rmehta/email-autosuggest-fix

[fix] email autosuggest should fallback to user
This commit is contained in:
Nabin Hait 2016-03-15 12:48:49 +05:30
commit 79b2c4e9f3
2 changed files with 15 additions and 14 deletions

View file

@ -28,17 +28,19 @@ def sendmail_to_system_managers(subject, content):
send(get_email(get_system_managers(), None, content, subject))
@frappe.whitelist()
def get_contact_list():
def get_contact_list(doctype, fieldname, txt):
"""Returns contacts (from autosuggest)"""
cond = ['`%s` like "%s%%"' % (frappe.db.escape(f),
frappe.db.escape(frappe.form_dict.get('txt'))) for f in frappe.form_dict.get('where').split(',')]
cl = frappe.db.sql("select `%s` from `tab%s` where %s" % (
frappe.db.escape(frappe.form_dict.get('select'))
,frappe.db.escape(frappe.form_dict.get('from'))
,' OR '.join(cond)
)
)
frappe.response['cl'] = filter(None, [c[0] for c in cl])
txt = txt.replace('%', '')
try:
return filter(None, frappe.db.sql_list('select `{0}` from `tab{1}` where `{0}` like %s'.format(fieldname, doctype),
'%' + txt + '%'))
except Exception, e:
if e.args[0]==1146:
# no Contact, use User
return filter(None, frappe.db.sql_list('select email from tabUser where email like %s', ('%' + txt + '%')))
else:
raise
def get_system_managers():
return frappe.db.sql_list("""select parent FROM tabUserRole

View file

@ -488,15 +488,14 @@ frappe.views.CommunicationComposer = Class.extend({
return frappe.call({
method:'frappe.email.get_contact_list',
args: {
'select': "email_id",
'from': "Contact",
'where': "email_id",
'fieldname': "email_id",
'doctype': "Contact",
'txt': extractLast(request.term).value || '%'
},
quiet: true,
callback: function(r) {
response($.ui.autocomplete.filter(
r.cl || [], extractLast(request.term)));
r.message || [], extractLast(request.term)));
}
});
},