From 30430796c7157c391eb1b3c4904faf2d0ae77e32 Mon Sep 17 00:00:00 2001 From: Rushabh Mehta Date: Fri, 13 Dec 2013 15:33:40 +0530 Subject: [PATCH] notifications via hooks webnotes/wnframework#351 --- erpnext/hooks.txt | 18 +++++---- erpnext/startup/bean_handlers.py | 2 +- erpnext/startup/notifications.py | 35 ++++++++++++++++ erpnext/startup/open_count.py | 69 -------------------------------- 4 files changed, 47 insertions(+), 77 deletions(-) create mode 100644 erpnext/startup/notifications.py delete mode 100644 erpnext/startup/open_count.py diff --git a/erpnext/hooks.txt b/erpnext/hooks.txt index 4e6d4732fc2..32cdcd29df0 100644 --- a/erpnext/hooks.txt +++ b/erpnext/hooks.txt @@ -1,10 +1,14 @@ -app_name ERPNext +app_name ERPNext -app_include_js assets/js/erpnext.min.js -app_include_css assets/css/erpnext.css -get_desktop_icons erpnext.manage.get_desktop_icons -boot_session erpnext.startup.boot.boot_session +app_include_js assets/js/erpnext.min.js +app_include_css assets/css/erpnext.css +get_desktop_icons erpnext.manage.get_desktop_icons +boot_session erpnext.startup.boot.boot_session +notification_config erpnext.startup.notifications.get_notification_config -standard_queries Warehouse erpnext.stock.utils.get_warehouse_list -standard_queries Customer erpnext.selling.utils.get_customer_list +dump_report_map erpnext.startup.report_data_map.data_map +standard_queries Warehouse:erpnext.stock.utils.get_warehouse_list +standard_queries Customer:erpnext.selling.utils.get_customer_list + +mail_footer erpnext.startup.mail_footer diff --git a/erpnext/startup/bean_handlers.py b/erpnext/startup/bean_handlers.py index 095dc0d7a12..a427ffc1493 100644 --- a/erpnext/startup/bean_handlers.py +++ b/erpnext/startup/bean_handlers.py @@ -1,7 +1,7 @@ # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors # License: GNU General Public License v3. See license.txt -from home import update_feed +from erpnext.home import update_feed from webnotes.core.doctype.notification_count.notification_count import clear_doctype_notifications from erpnext.stock.doctype.material_request.material_request import update_completed_qty diff --git a/erpnext/startup/notifications.py b/erpnext/startup/notifications.py new file mode 100644 index 00000000000..d4cb4fad195 --- /dev/null +++ b/erpnext/startup/notifications.py @@ -0,0 +1,35 @@ +# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors +# License: GNU General Public License v3. See license.txt + +from __future__ import unicode_literals +import webnotes + +def get_notification_config(): + return { "for_doctype": + { + "Support Ticket": {"status":"Open"}, + "Customer Issue": {"status":"Open"}, + "Task": {"status":"Open"}, + "Lead": {"status":"Open"}, + "Contact": {"status":"Open"}, + "Opportunity": {"docstatus":0}, + "Quotation": {"docstatus":0}, + "Sales Order": {"docstatus":0}, + "Journal Voucher": {"docstatus":0}, + "Sales Invoice": {"docstatus":0}, + "Purchase Invoice": {"docstatus":0}, + "Leave Application": {"status":"Open"}, + "Expense Claim": {"approval_status":"Draft"}, + "Job Applicant": {"status":"Open"}, + "Purchase Receipt": {"docstatus":0}, + "Delivery Note": {"docstatus":0}, + "Stock Entry": {"docstatus":0}, + "Material Request": {"docstatus":0}, + "Purchase Order": {"docstatus":0}, + "Production Order": {"docstatus":0}, + "BOM": {"docstatus":0}, + "Timesheet": {"docstatus":0}, + "Time Log": {"status":"Draft"}, + "Time Log Batch": {"status":"Draft"}, + } + } \ No newline at end of file diff --git a/erpnext/startup/open_count.py b/erpnext/startup/open_count.py deleted file mode 100644 index e561c03adf0..00000000000 --- a/erpnext/startup/open_count.py +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors -# License: GNU General Public License v3. See license.txt - -from __future__ import unicode_literals -import webnotes - -for_doctype = { - "Support Ticket": {"status":"Open"}, - "Customer Issue": {"status":"Open"}, - "Task": {"status":"Open"}, - "Lead": {"status":"Open"}, - "Contact": {"status":"Open"}, - "Opportunity": {"docstatus":0}, - "Quotation": {"docstatus":0}, - "Sales Order": {"docstatus":0}, - "Journal Voucher": {"docstatus":0}, - "Sales Invoice": {"docstatus":0}, - "Purchase Invoice": {"docstatus":0}, - "Leave Application": {"status":"Open"}, - "Expense Claim": {"approval_status":"Draft"}, - "Job Applicant": {"status":"Open"}, - "Purchase Receipt": {"docstatus":0}, - "Delivery Note": {"docstatus":0}, - "Stock Entry": {"docstatus":0}, - "Material Request": {"docstatus":0}, - "Purchase Order": {"docstatus":0}, - "Production Order": {"docstatus":0}, - "BOM": {"docstatus":0}, - "Timesheet": {"docstatus":0}, - "Time Log": {"status":"Draft"}, - "Time Log Batch": {"status":"Draft"}, -} - -def get_things_todo(): - """Returns a count of incomplete todos""" - incomplete_todos = webnotes.conn.sql("""\ - SELECT COUNT(*) FROM `tabToDo` - WHERE IFNULL(checked, 0) = 0 - AND (owner = %s or assigned_by=%s)""", (webnotes.session.user, webnotes.session.user)) - return incomplete_todos[0][0] - -def get_todays_events(): - """Returns a count of todays events in calendar""" - from webnotes.core.doctype.event.event import get_events - from webnotes.utils import nowdate - today = nowdate() - return len(get_events(today, today)) - -def get_unread_messages(): - "returns unread (docstatus-0 messages for a user)" - return webnotes.conn.sql("""\ - SELECT count(*) - FROM `tabComment` - WHERE comment_doctype IN ('My Company', 'Message') - AND comment_docname = %s - AND ifnull(docstatus,0)=0 - """, webnotes.user.name)[0][0] - -for_module_doctypes = { - "ToDo": "To Do", - "Event": "Calendar", - "Comment": "Messages" -} - -for_module = { - "To Do": get_things_todo, - "Calendar": get_todays_events, - "Messages": get_unread_messages -}