mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-27 00:44:45 +00:00
perf: Optimise Rendering
- optimise get_children function - use promises instead of callbacks - optimise selectors - use const wherever possible - use pure js instead of jquery for connectors for faster rendering
This commit is contained in:
@@ -2,33 +2,25 @@ from __future__ import unicode_literals
|
||||
import frappe
|
||||
|
||||
@frappe.whitelist()
|
||||
def get_children(parent=None, company=None, exclude_node=None, is_root=False, is_tree=False, fields=None):
|
||||
def get_children(parent=None, company=None):
|
||||
|
||||
filters = [['status', '!=', 'Left']]
|
||||
if company and company != 'All Companies':
|
||||
filters.append(['company', '=', company])
|
||||
|
||||
if not fields:
|
||||
fields = ['employee_name as name', 'name as id', 'reports_to', 'image', 'designation as title']
|
||||
|
||||
if is_root:
|
||||
parent = ''
|
||||
|
||||
if exclude_node:
|
||||
filters.append(['name', '!=', exclude_node])
|
||||
|
||||
if parent and company and parent != company:
|
||||
filters.append(['reports_to', '=', parent])
|
||||
else:
|
||||
filters.append(['reports_to', '=', ''])
|
||||
|
||||
employees = frappe.get_list('Employee', fields=fields,
|
||||
filters=filters, order_by='name')
|
||||
employees = frappe.get_list('Employee',
|
||||
fields=['employee_name as name', 'name as id', 'reports_to', 'image', 'designation as title'],
|
||||
filters=filters,
|
||||
order_by='name'
|
||||
)
|
||||
|
||||
for employee in employees:
|
||||
is_expandable = frappe.get_all('Employee', filters=[
|
||||
['reports_to', '=', employee.get('id')]
|
||||
])
|
||||
is_expandable = frappe.db.count('Employee', filters={'reports_to': employee.get('id')})
|
||||
employee.connections = get_connections(employee.id)
|
||||
employee.expandable = 1 if is_expandable else 0
|
||||
|
||||
|
||||
Reference in New Issue
Block a user