diff --git a/frappe/desk/doctype/todo/todo_list.js b/frappe/desk/doctype/todo/todo_list.js index 3bf70ec9f9..192057eb4e 100644 --- a/frappe/desk/doctype/todo/todo_list.js +++ b/frappe/desk/doctype/todo/todo_list.js @@ -5,6 +5,26 @@ frappe.listview_settings['ToDo'] = { "status": "Open" }; me.page.set_title(__("To Do")); + + }, + refresh: function(me) { + // override assigned to me by owner + me.page.sidebar.find(".assigned-to-me a").off("click").on("click", function() { + var assign_filter = me.filter_list.get_filter("assigned_by"); + assign_filter && assign_filter.remove(true); + + me.filter_list.add_filter(me.doctype, "owner", '=', user); + me.run(); + }); + + // add assigned by me + me.page.add_sidebar_item(__("Assigned By Me"), function() { + var assign_filter = me.filter_list.get_filter("owner"); + assign_filter && assign_filter.remove(true); + + me.filter_list.add_filter(me.doctype, "assigned_by", '=', user); + me.run(); + }, ".assigned-to-me"); }, add_fields: ["reference_type", "reference_name"], } diff --git a/frappe/desk/form/meta.py b/frappe/desk/form/meta.py index c993dce046..e0c03753db 100644 --- a/frappe/desk/form/meta.py +++ b/frappe/desk/form/meta.py @@ -121,7 +121,14 @@ class FormMeta(Meta): df.search_fields = map(lambda sf: sf.strip(), search_fields.split(",")) def add_linked_with(self): - """add list of doctypes this doctype is 'linked' with""" + """add list of doctypes this doctype is 'linked' with. + + Example, for Customer: + + {"Address": {"fieldname": "customer"}..} + """ + + # find fields where this doctype is linked links = frappe.db.sql("""select parent, fieldname from tabDocField where (fieldtype="Link" and options=%s) or (fieldtype="Select" and options=%s)""", (self.name, "link:"+ self.name)) @@ -137,15 +144,17 @@ class FormMeta(Meta): ret[dt] = { "fieldname": links[dt] } if links: - for grand_parent, options in frappe.db.sql("""select parent, options from tabDocField + # find out if linked in a child table + for parent, options in frappe.db.sql("""select parent, options from tabDocField where fieldtype="Table" and options in (select name from tabDocType where istable=1 and name in (%s))""" % ", ".join(["%s"] * len(links)) ,tuple(links)): - ret[grand_parent] = {"child_doctype": options, "fieldname": links[options] } + ret[parent] = {"child_doctype": options, "fieldname": links[options] } if options in ret: del ret[options] + # find links of parents links = frappe.db.sql("""select dt from `tabCustom Field` where (fieldtype="Table" and options=%s)""", (self.name)) links += frappe.db.sql("""select parent from tabDocField diff --git a/frappe/public/css/form.css b/frappe/public/css/form.css index a85f9ae799..63db368199 100644 --- a/frappe/public/css/form.css +++ b/frappe/public/css/form.css @@ -157,3 +157,7 @@ select.form-control { -moz-appearance: none; appearance: none; } +.form-control.bold { + font-weight: bold; + background-color: #fffce7; +} diff --git a/frappe/public/js/frappe/form/footer/assign_to.js b/frappe/public/js/frappe/form/footer/assign_to.js index ea7af7ed7e..8df3b19914 100644 --- a/frappe/public/js/frappe/form/footer/assign_to.js +++ b/frappe/public/js/frappe/form/footer/assign_to.js @@ -120,8 +120,10 @@ frappe.ui.form.AssignTo = Class.extend({ me.dialog.get_input("myself").on("click", function() { if($(this).prop("checked")) { me.dialog.set_value("assign_to", user); + me.dialog.set_value("notify", 0); } else { me.dialog.set_value("assign_to", ""); + me.dialog.set_value("notify", 1); } }); }, diff --git a/frappe/public/js/frappe/list/doclistview.js b/frappe/public/js/frappe/list/doclistview.js index 2f1109b525..0fb4b59522 100644 --- a/frappe/public/js/frappe/list/doclistview.js +++ b/frappe/public/js/frappe/list/doclistview.js @@ -216,6 +216,11 @@ frappe.views.DocListView = frappe.ui.Listing.extend({ refresh: function() { var me = this; this.init_stats(); + + if(this.listview.settings.refresh) { + this.listview.settings.refresh(this); + } + if(frappe.route_options) { me.set_route_options(); } else if(me.dirty) { diff --git a/frappe/public/js/frappe/list/list_sidebar.html b/frappe/public/js/frappe/list/list_sidebar.html index 57ef1cff6b..f254d52698 100644 --- a/frappe/public/js/frappe/list/list_sidebar.html +++ b/frappe/public/js/frappe/list/list_sidebar.html @@ -6,7 +6,9 @@