58 lines
No EOL
1.3 KiB
Python
58 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
|
|
from webnotes.widgets import reportview
|
|
|
|
@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]
|
|
|
|
result = reportview.execute(d, fields=["count(*)"],
|
|
filters=[[d, key, "=", condition[key]]], as_list=True)[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
|
|
|