* chore: Added isort to pre-commit config * chore: Sort imports with isort * chore: Clean up imports with pycln * chore: Sort imports with isort * chore: Fix import issues * chore: Clean up sider issues * chore: Remove import errors from flake8 ignore list * chore: Clean up lint issues
		
			
				
	
	
		
			134 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			134 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
 | |
| # License: GNU General Public License v3. See license.txt
 | |
| 
 | |
| from __future__ import unicode_literals
 | |
| 
 | |
| import frappe
 | |
| from frappe import _
 | |
| 
 | |
| from .operations import company_setup
 | |
| from .operations import install_fixtures as fixtures
 | |
| from .operations import sample_data
 | |
| 
 | |
| 
 | |
| def get_setup_stages(args=None):
 | |
| 	if frappe.db.sql("select name from tabCompany"):
 | |
| 		stages = [
 | |
| 			{
 | |
| 				'status': _('Wrapping up'),
 | |
| 				'fail_msg': _('Failed to login'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': fin,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to login")
 | |
| 					}
 | |
| 				]
 | |
| 			}
 | |
| 		]
 | |
| 	else:
 | |
| 		stages = [
 | |
| 			{
 | |
| 				'status': _('Installing presets'),
 | |
| 				'fail_msg': _('Failed to install presets'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': stage_fixtures,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to install presets")
 | |
| 					}
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Setting up company'),
 | |
| 				'fail_msg': _('Failed to setup company'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': setup_company,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to setup company")
 | |
| 					}
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Setting defaults'),
 | |
| 				'fail_msg': 'Failed to set defaults',
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': setup_defaults,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to setup defaults")
 | |
| 					},
 | |
| 					{
 | |
| 						'fn': stage_four,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to create website")
 | |
| 					},
 | |
| 					{
 | |
| 						'fn': set_active_domains,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to add Domain")
 | |
| 					},
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Wrapping up'),
 | |
| 				'fail_msg': _('Failed to login'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': fin,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to login")
 | |
| 					}
 | |
| 				]
 | |
| 			}
 | |
| 		]
 | |
| 
 | |
| 	return stages
 | |
| 
 | |
| def stage_fixtures(args):
 | |
| 	fixtures.install(args.get('country'))
 | |
| 
 | |
| def setup_company(args):
 | |
| 	fixtures.install_company(args)
 | |
| 
 | |
| def setup_defaults(args):
 | |
| 	fixtures.install_defaults(frappe._dict(args))
 | |
| 
 | |
| def stage_four(args):
 | |
| 	company_setup.create_website(args)
 | |
| 	company_setup.create_email_digest()
 | |
| 	company_setup.create_logo(args)
 | |
| 
 | |
| def fin(args):
 | |
| 	frappe.local.message_log = []
 | |
| 	login_as_first_user(args)
 | |
| 
 | |
| 	make_sample_data(args.get('domains'))
 | |
| 
 | |
| def make_sample_data(domains):
 | |
| 	try:
 | |
| 		sample_data.make_sample_data(domains)
 | |
| 	except Exception:
 | |
| 		# clear message
 | |
| 		if frappe.message_log:
 | |
| 			frappe.message_log.pop()
 | |
| 		pass
 | |
| 
 | |
| def login_as_first_user(args):
 | |
| 	if args.get("email") and hasattr(frappe.local, "login_manager"):
 | |
| 		frappe.local.login_manager.login_as(args.get("email"))
 | |
| 
 | |
| 
 | |
| # Only for programmatical use
 | |
| def setup_complete(args=None):
 | |
| 	stage_fixtures(args)
 | |
| 	setup_company(args)
 | |
| 	setup_defaults(args)
 | |
| 	stage_four(args)
 | |
| 	fin(args)
 | |
| 
 | |
| def set_active_domains(args):
 | |
| 	domain_settings = frappe.get_single('Domain Settings')
 | |
| 	domain_settings.set_active_domains(args.get('domains'))
 |