seitime-frappe/webnotes/widgets/notification.py
2013-06-18 15:46:30 +05:30

56 lines
No EOL
1.3 KiB
Python

# Copyright 2013 Web Notes Technologies Pvt Ltd
# License: MIT. See license.txt
from __future__ import unicode_literals
import webnotes
@webnotes.whitelist()
def get():
try:
from startup.open_count import for_doctype, for_module
except ImportError, e:
return {}
can_read = webnotes.user.get_can_read()
open_count_doctype = {}
open_count_module = {}
for d in for_doctype:
if d in can_read:
condition = for_doctype[d]
key = condition.keys()[0]
query = "select count(*) from `tab%s` where `%s`=%s and docstatus<2" % (d, key, '%s')
result = webnotes.conn.sql(query, condition[key])[0][0]
if result:
open_count_doctype[d] = result
for m in for_module:
open_count_module[m] = for_module[m]()
return {
"open_count_doctype": open_count_doctype,
"open_count_module": open_count_module
}
def get_notification_info_for_boot():
out = get()
from startup.open_count import for_doctype
can_read = webnotes.user.get_can_read()
conditions = {}
module_doctypes = {}
doctype_info = dict(webnotes.conn.sql("""select name, module from tabDocType"""))
for d in for_doctype:
if d in can_read:
conditions[d] = for_doctype[d]
module_doctypes.setdefault(doctype_info[d], []).append(d)
out.update({
"conditions": conditions,
"module_doctypes": module_doctypes,
})
return out