workflow patch fix
diff --git a/erpnext/setup/install.py b/erpnext/setup/install.py
index 81f909a..1c64610 100644
--- a/erpnext/setup/install.py
+++ b/erpnext/setup/install.py
@@ -12,6 +12,7 @@
 	<a style="color: #888" href="http://erpnext.org">ERPNext</a></div>"""
 
 def after_install():
+	leave_application_workflow()
 	frappe.get_doc({'doctype': "Role", "role_name": "Analytics"}).insert()
 	set_single_defaults()
 	create_compact_item_print_custom_field()
@@ -19,6 +20,51 @@
 	add_all_roles_to("Administrator")
 	frappe.db.commit()
 
+def leave_application_workflow():
+	states = {'Approved': 'Success', 'Rejected': 'Danger', 'Open': 'Warning'}
+
+	for state, style in states.items():
+		if not frappe.db.exists("Workflow State", state):
+			frappe.get_doc({
+				'doctype': 'Workflow State',
+				'workflow_state_name': state,
+				'style': style
+			}).insert(ignore_permissions=True)
+
+	if not frappe.db.exists("Workflow", "Leave Approval"):
+		frappe.get_doc({
+			'doctype': 'Workflow',
+			'workflow_name': 'Leave Approval',
+			'document_type': 'Leave Application',
+			'is_active': 1,
+			'workflow_state_field': 'workflow_state',
+			'states': [{
+				"state": 'Open',
+				"doc_status": 0,
+				"allow_edit": 'Employee'
+			}, {
+				"state": 'Approved',
+				"doc_status": 1,
+				"allow_edit": 'Leave Approver'
+			}, {
+				"state": 'Rejected',
+				"doc_status": 1,
+				"allow_edit": 'Leave Approver'
+			}],
+			'transitions': [{
+				"state": 'Open',
+				"action": 'Approve',
+				"next_state": 'Approved',
+				"allowed": 'Leave Approver'
+			},
+			{
+				"state": 'Open',
+				"action": 'Reject',
+				"next_state": 'Rejected',
+				"allowed": 'Leave Approver'
+			}]
+		}).insert(ignore_permissions=True)
+
 def check_setup_wizard_not_completed():
 	if frappe.db.get_default('desktop:home_page') == 'desktop':
 		print()