diff --git a/frappe/core/doctype/notification_count/notification_count.py b/frappe/core/doctype/notification_count/notification_count.py index 28bd0e2ea6..fbb8ae4718 100644 --- a/frappe/core/doctype/notification_count/notification_count.py +++ b/frappe/core/doctype/notification_count/notification_count.py @@ -89,7 +89,15 @@ def clear_notifications(user=None): def delete_notification_count_for(doctype): if frappe.flags.in_import: return - frappe.db.sql("""delete from `tabNotification Count` where for_doctype = %s""", (doctype,)) + + try: + frappe.db.sql("""delete from `tabNotification Count` where for_doctype = %s""", (doctype,)) + + except MySQLdb.OperationalError, e: + if e.args[0] != 1213: + raise + + logger.error("Deadlock") def clear_doctype_notifications(doc, method=None, *args, **kwargs): if frappe.flags.in_import: diff --git a/frappe/public/js/frappe/form/footer.js b/frappe/public/js/frappe/form/footer.js index 0c06abd652..8948319d0a 100644 --- a/frappe/public/js/frappe/form/footer.js +++ b/frappe/public/js/frappe/form/footer.js @@ -55,6 +55,11 @@ frappe.ui.form.Footer = Class.extend({ }, make_tags: function() { + if (this.frm.meta.issingle) { + this.wrapper.find(".form-tags").toggle(false); + return; + } + this.frm.tags = new frappe.ui.TagEditor({ parent: this.wrapper.find(".tag-area"), frm: this.frm, diff --git a/frappe/widgets/query_report.py b/frappe/widgets/query_report.py index dbeb93d13b..e7e82f95ee 100644 --- a/frappe/widgets/query_report.py +++ b/frappe/widgets/query_report.py @@ -199,7 +199,7 @@ def get_linked_doctypes(columns, data): # remove doctype if column is empty for doctype, key in linked_doctypes.items(): - if not any(d[key] for d in data): + if not any(d[key] for d in data if d): del linked_doctypes[doctype] return linked_doctypes