diff --git a/frappe/core/doctype/doctype/doctype.py b/frappe/core/doctype/doctype/doctype.py index 74f98aeba7..170fc72989 100644 --- a/frappe/core/doctype/doctype/doctype.py +++ b/frappe/core/doctype/doctype/doctype.py @@ -315,6 +315,7 @@ def validate_fields(meta): if not d.permlevel: d.permlevel = 0 if not d.fieldname: frappe.throw(_("Fieldname is required in row {0}").format(d.idx)) + d.fieldname = d.fieldname.lower() check_illegal_characters(d.fieldname) check_unique_fieldname(d.fieldname) check_illegal_mandatory(d) diff --git a/frappe/public/js/frappe/views/communication.js b/frappe/public/js/frappe/views/communication.js index e9e4291506..4f979470af 100644 --- a/frappe/public/js/frappe/views/communication.js +++ b/frappe/public/js/frappe/views/communication.js @@ -331,7 +331,7 @@ frappe.views.CommunicationComposer = Class.extend({ btn: btn, callback: function(r) { if(!r.exc) { - if(form_values.send_email) + if(form_values.send_email && r.message["recipients"]) msgprint(__("Email sent to {0}", [r.message["recipients"]])); me.dialog.hide(); diff --git a/frappe/templates/pages/print.py b/frappe/templates/pages/print.py index a2ef5b6f44..042cf15c42 100644 --- a/frappe/templates/pages/print.py +++ b/frappe/templates/pages/print.py @@ -277,7 +277,10 @@ def get_visible_columns(data, table_meta, df): # columns specified by column builder for col_df in df.get("visible_columns"): # load default docfield properties - newdf = table_meta.get_field(col_df.get("fieldname")).as_dict().copy() + docfield = table_meta.get_field(col_df.get("fieldname")) + if not docfield: + continue + newdf = docfield.as_dict().copy() newdf.update(col_df) if add_column(newdf): columns.append(newdf)