diff --git a/erpnext/home/page/my_company/my_company.py b/erpnext/home/page/my_company/my_company.py index 3ff1482e9f..c96d99871d 100644 --- a/erpnext/home/page/my_company/my_company.py +++ b/erpnext/home/page/my_company/my_company.py @@ -140,7 +140,9 @@ def update_security(args=''): if 'new_password' in args: if cint(webnotes.conn.get_value('Control Panel',None,'sync_with_gateway')): import server_tools.gateway_utils - webnotes.msgprint(server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd'])['message']) + res = server_tools.gateway_utils.change_password('', args['new_password'], args['user'], args['sys_admin_pwd']) + if 'Traceback' not in res['message']: + webnotes.msgprint(res['message']) else: webnotes.conn.sql("update tabProfile set password=password(%s) where name=%s", (args['new_password'], args['user'])) - else: webnotes.msgprint('Settings Updated') \ No newline at end of file + else: webnotes.msgprint('Settings Updated') diff --git a/erpnext/projects/doctype/project/project.py b/erpnext/projects/doctype/project/project.py index 9930bf4213..4504191fda 100644 --- a/erpnext/projects/doctype/project/project.py +++ b/erpnext/projects/doctype/project/project.py @@ -34,9 +34,9 @@ class DocType: 'customer_name' : details and details[0]['customer_name'] or '' } #get primary contact details(this is done separately coz. , if join query used & no primary contact thn it would not be able to fetch customer details) - contact_det = sql("select contact_name, contact_no, email_id from `tabContact` where customer_name='%s' and is_customer=1 and is_primary_contact='Yes' and docstatus!=2" %(self.doc.customer), as_dict = 1) + contact_det = sql("select contact_name, phone, email_id from `tabContact` where customer_name='%s' and is_customer=1 and is_primary_contact=1 and docstatus!=2" %(self.doc.customer), as_dict = 1) ret['contact_person'] = contact_det and contact_det[0]['contact_name'] or '' - ret['contact_no'] = contact_det and contact_det[0]['contact_no'] or '' + ret['contact_no'] = contact_det and contact_det[0]['phone'] or '' ret['email_id'] = contact_det and contact_det[0]['email_id'] or '' return ret else: diff --git a/erpnext/setup/doctype/email_digest/email_digest.coffee b/erpnext/setup/doctype/email_digest/email_digest.coffee deleted file mode 100644 index 1b17d5bb4f..0000000000 --- a/erpnext/setup/doctype/email_digest/email_digest.coffee +++ /dev/null @@ -1,101 +0,0 @@ -content_items = ['Sales','Expenses','Bank Balance','Activity'] - -# make a grid with items and columns of checkboxes -# Parameters: -# parent -# label (main heading) -# items = [] (rows) -# columns = [] (columns of checks) -# widths -# description - -class CheckGrid - constructor: (@args) -> - $.extend @, args - @wrapper = $a @parent, 'div', 'check-grid round' - @render() - - render: -> - $a @wrapper, 'h3', 'check-grid-title', null, @label - - if @description - $a @wrapper, 'div', 'help-box', null, @description - - @tab = make_table @wrapper, @items.length + 1, @columns.length, '100%', @widths - @checks = {} - - # render heads - for i in [0..@columns.length-1] - $($td(@tab, 0, i)) - .addClass('check-grid-head gradient') - .html @columns[i] - - @render_rows() - - render_rows: -> - # render rows - for i in [0..@items.length-1] - $td(@tab, i+1, 0).innerHTML = @items[i] - - # render checkboxes for this row - @checks[@items[i]] = {} - for c in [1..@columns.length-1] - check = $a_input $td(@tab, i+1, c), 'checkbox' - - # tag keys to checkbox - check.item = @items[i] - check.column = @columns[c] - - # add in my checks - @checks[@items[i]][@columns[c]] = check - - # get the values of the checkbox in a double dict - get: => - val = {} - for item in keys @checks - for column in keys @checks[item] - check = @checks[item][column] - val[check.item] or= {} - val[check.item][check.column] = if check.checked then 1 else 0 - val - - # set the values of the grid - set: (val) => - for item in keys @checks - for column in keys @checks[item] - if val[item][column] - @checks[item][column] .checked = val[item][column] - return - -# attach it to onload -cx = cur_frm.cscript -cx.onload = (doc, dt, dn) -> - - # make the content grid - cx.content_grid = new CheckGrid - parent: cur_frm.fields_dict.Body.wrapper - label: 'Email Settings' - items: content_items - columns: ['Item','Daily','Weekly'] - widths: ['60%', '20%', '20%'] - description: 'Select items to be compiled for Email Digest' - - # make the email grid - cx.email_grid = new CheckGrid - parent: cur_frm.fields_dict.Body.wrapper - label: 'Send To' - items: ['test1@erpnext', 'test2@erpnext'] - columns: ['Email','Daily','Weekly'] - widths: ['60%', '20%', '20%'] - description: 'Select who gets daily and weekly mails' - - cx.content_grid.set JSON.parse doc.content_config if doc.content_config - cx.email_grid.set JSON.parse doc.email_config if doc.email_config - - return - -# update the data before sending -cx.validate = (doc, dt, dn) -> - doc.content_config = JSON.stringify cx.content_grid.get() - doc.email_config = JSON.stringify cx.email_grid.get() - \ No newline at end of file diff --git a/erpnext/setup/doctype/email_digest/email_digest.css b/erpnext/setup/doctype/email_digest/email_digest.css deleted file mode 100644 index f61dacc961..0000000000 --- a/erpnext/setup/doctype/email_digest/email_digest.css +++ /dev/null @@ -1,18 +0,0 @@ - -div.check-grid { - margin: 17px; -} - -div.check-grid table { - border-collapse: collapse; -} - -div.check-grid table td { - padding: 3px; - border: 1px solid #aaa; -} - -td.check-grid-head { - font-weight: bold; - text-align: center; -} \ No newline at end of file diff --git a/erpnext/setup/doctype/email_digest/email_digest.js b/erpnext/setup/doctype/email_digest/email_digest.js deleted file mode 100644 index ddb13f473a..0000000000 --- a/erpnext/setup/doctype/email_digest/email_digest.js +++ /dev/null @@ -1,108 +0,0 @@ -(function() { - var CheckGrid, content_items, cx; - var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; - content_items = ['Sales', 'Expenses', 'Bank Balance', 'Activity']; - CheckGrid = (function() { - function CheckGrid(args) { - this.args = args; - this.set = __bind(this.set, this); - this.get = __bind(this.get, this); - $.extend(this, args); - this.wrapper = $a(this.parent, 'div', 'check-grid round'); - this.render(); - } - CheckGrid.prototype.render = function() { - var i, _ref; - $a(this.wrapper, 'h3', 'check-grid-title', null, this.label); - if (this.description) { - $a(this.wrapper, 'div', 'help-box', null, this.description); - } - this.tab = make_table(this.wrapper, this.items.length + 1, this.columns.length, '100%', this.widths); - this.checks = {}; - for (i = 0, _ref = this.columns.length - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { - $($td(this.tab, 0, i)).addClass('check-grid-head gradient').html(this.columns[i]); - } - return this.render_rows(); - }; - CheckGrid.prototype.render_rows = function() { - var c, check, i, _ref, _results; - _results = []; - for (i = 0, _ref = this.items.length - 1; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) { - $td(this.tab, i + 1, 0).innerHTML = this.items[i]; - this.checks[this.items[i]] = {}; - _results.push((function() { - var _ref2, _results2; - _results2 = []; - for (c = 1, _ref2 = this.columns.length - 1; 1 <= _ref2 ? c <= _ref2 : c >= _ref2; 1 <= _ref2 ? c++ : c--) { - check = $a_input($td(this.tab, i + 1, c), 'checkbox'); - check.item = this.items[i]; - check.column = this.columns[c]; - _results2.push(this.checks[this.items[i]][this.columns[c]] = check); - } - return _results2; - }).call(this)); - } - return _results; - }; - CheckGrid.prototype.get = function() { - var check, column, item, val, _i, _j, _len, _len2, _name, _ref, _ref2; - val = {}; - _ref = keys(this.checks); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - item = _ref[_i]; - _ref2 = keys(this.checks[item]); - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - column = _ref2[_j]; - check = this.checks[item][column]; - val[_name = check.item] || (val[_name] = {}); - val[check.item][check.column] = check.checked ? 1 : 0; - } - } - return val; - }; - CheckGrid.prototype.set = function(val) { - var column, item, _i, _j, _len, _len2, _ref, _ref2; - _ref = keys(this.checks); - for (_i = 0, _len = _ref.length; _i < _len; _i++) { - item = _ref[_i]; - _ref2 = keys(this.checks[item]); - for (_j = 0, _len2 = _ref2.length; _j < _len2; _j++) { - column = _ref2[_j]; - if (val[item][column]) { - this.checks[item][column].checked = val[item][column]; - } - } - } - }; - return CheckGrid; - })(); - cx = cur_frm.cscript; - cx.onload = function(doc, dt, dn) { - cx.content_grid = new CheckGrid({ - parent: cur_frm.fields_dict.Body.wrapper, - label: 'Email Settings', - items: content_items, - columns: ['Item', 'Daily', 'Weekly'], - widths: ['60%', '20%', '20%'], - description: 'Select items to be compiled for Email Digest' - }); - cx.email_grid = new CheckGrid({ - parent: cur_frm.fields_dict.Body.wrapper, - label: 'Send To', - items: ['test1@erpnext', 'test2@erpnext'], - columns: ['Email', 'Daily', 'Weekly'], - widths: ['60%', '20%', '20%'], - description: 'Select who gets daily and weekly mails' - }); - if (doc.content_config) { - cx.content_grid.set(JSON.parse(doc.content_config)); - } - if (doc.email_config) { - cx.email_grid.set(JSON.parse(doc.email_config)); - } - }; - cx.validate = function(doc, dt, dn) { - doc.content_config = JSON.stringify(cx.content_grid.get()); - return doc.email_config = JSON.stringify(cx.email_grid.get()); - }; -}).call(this); diff --git a/index.html b/index.html index e575daca80..db7c228009 100644 --- a/index.html +++ b/index.html @@ -3,7 +3,7 @@