* fix(Org Chart): use attribute selectors instead of ID selector for node IDs with special chars * fix: UI tests
		
			
				
	
	
		
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			63 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import frappe
 | |
| from frappe.utils import getdate
 | |
| 
 | |
| 
 | |
| @frappe.whitelist()
 | |
| def create_employee_records():
 | |
| 	create_company()
 | |
| 	create_missing_designation()
 | |
| 
 | |
| 	frappe.db.sql("DELETE FROM tabEmployee WHERE company='Test Org Chart'")
 | |
| 
 | |
| 	emp1 = create_employee('Test Employee 1', 'CEO')
 | |
| 	emp2 = create_employee('Test Employee 2', 'CTO')
 | |
| 	emp3 = create_employee('Test Employee 3', 'Head of Marketing and Sales', emp1)
 | |
| 	emp4 = create_employee('Test Employee 4', 'Project Manager', emp2)
 | |
| 	emp5 = create_employee('Test Employee 5', 'Engineer', emp2)
 | |
| 	emp6 = create_employee('Test Employee 6', 'Analyst', emp3)
 | |
| 	emp7 = create_employee('Test Employee 7', 'Software Developer', emp4)
 | |
| 
 | |
| 	employees = [emp1, emp2, emp3, emp4, emp5, emp6, emp7]
 | |
| 	return employees
 | |
| 
 | |
| @frappe.whitelist()
 | |
| def get_employee_records():
 | |
| 	return frappe.db.get_list('Employee', filters={
 | |
| 		'company': 'Test Org Chart'
 | |
| 	}, pluck='name', order_by='name')
 | |
| 
 | |
| def create_company():
 | |
| 	company = frappe.db.exists('Company', 'Test Org Chart')
 | |
| 	if not company:
 | |
| 		company = frappe.get_doc({
 | |
| 			'doctype': 'Company',
 | |
| 			'company_name': 'Test Org Chart',
 | |
| 			'country': 'India',
 | |
| 			'default_currency': 'INR'
 | |
| 		}).insert().name
 | |
| 
 | |
| 	return company
 | |
| 
 | |
| def create_employee(first_name, designation, reports_to=None):
 | |
| 	employee = frappe.db.exists('Employee', {'first_name': first_name, 'designation': designation})
 | |
| 	if not employee:
 | |
| 		employee = frappe.get_doc({
 | |
| 			'doctype': 'Employee',
 | |
| 			'first_name': first_name,
 | |
| 			'company': 'Test Org Chart',
 | |
| 			'gender': 'Female',
 | |
| 			'date_of_birth': getdate('08-12-1998'),
 | |
| 			'date_of_joining': getdate('01-01-2021'),
 | |
| 			'designation': designation,
 | |
| 			'reports_to': reports_to
 | |
| 		}).insert().name
 | |
| 
 | |
| 	return employee
 | |
| 
 | |
| def create_missing_designation():
 | |
| 	if not frappe.db.exists('Designation', 'CTO'):
 | |
| 		frappe.get_doc({
 | |
| 			'doctype': 'Designation',
 | |
| 			'designation_name': 'CTO'
 | |
| 		}).insert()
 |