@@ -315,6 +315,7 @@ def validate_fields(meta): | |||||
if not d.permlevel: d.permlevel = 0 | if not d.permlevel: d.permlevel = 0 | ||||
if not d.fieldname: | if not d.fieldname: | ||||
frappe.throw(_("Fieldname is required in row {0}").format(d.idx)) | frappe.throw(_("Fieldname is required in row {0}").format(d.idx)) | ||||
d.fieldname = d.fieldname.lower() | |||||
check_illegal_characters(d.fieldname) | check_illegal_characters(d.fieldname) | ||||
check_unique_fieldname(d.fieldname) | check_unique_fieldname(d.fieldname) | ||||
check_illegal_mandatory(d) | check_illegal_mandatory(d) | ||||
@@ -331,7 +331,7 @@ frappe.views.CommunicationComposer = Class.extend({ | |||||
btn: btn, | btn: btn, | ||||
callback: function(r) { | callback: function(r) { | ||||
if(!r.exc) { | if(!r.exc) { | ||||
if(form_values.send_email) | |||||
if(form_values.send_email && r.message["recipients"]) | |||||
msgprint(__("Email sent to {0}", [r.message["recipients"]])); | msgprint(__("Email sent to {0}", [r.message["recipients"]])); | ||||
me.dialog.hide(); | me.dialog.hide(); | ||||
@@ -277,7 +277,10 @@ def get_visible_columns(data, table_meta, df): | |||||
# columns specified by column builder | # columns specified by column builder | ||||
for col_df in df.get("visible_columns"): | for col_df in df.get("visible_columns"): | ||||
# load default docfield properties | # 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) | newdf.update(col_df) | ||||
if add_column(newdf): | if add_column(newdf): | ||||
columns.append(newdf) | columns.append(newdf) | ||||