|
12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- # Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
- # MIT License. See license.txt
-
- from __future__ import unicode_literals
- import webnotes, json
- from webnotes.widgets import reportview
-
- @webnotes.whitelist()
- def get_data(module, doctypes='[]'):
- doctypes = json.loads(doctypes)
- return {
- "reports": get_report_list(module),
- "item_count": get_count(doctypes)
- }
-
- def get_count(doctypes):
- count = {}
- can_read = webnotes.user.get_can_read()
- for d in doctypes:
- if d in can_read:
- count[d] = get_doctype_count_from_table(d)
- return count
-
- def get_doctype_count_from_table(doctype):
- try:
- count = reportview.execute(doctype, fields=["count(*)"], as_list=True)[0][0]
- except Exception, e:
- if e.args[0]==1146:
- count = None
- else:
- raise
- return count
-
- def get_report_list(module):
- """return list on new style reports for modules"""
- return webnotes.conn.sql("""
- select distinct tabReport.name, tabReport.ref_doctype as doctype,
- if((tabReport.report_type='Query Report' or
- tabReport.report_type='Script Report'), 1, 0) as is_query_report
- from `tabReport`, `tabDocType`
- where tabDocType.module=%s
- and tabDocType.name = tabReport.ref_doctype
- and tabReport.docstatus in (0, NULL)
- and ifnull(tabReport.is_standard, "No")="No"
- and ifnull(tabReport.disabled,0) != 1
- order by tabReport.name""", module, as_dict=True)
|