141 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			3.0 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 install_fixtures, taxes_setup, defaults_setup, company_setup, 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 and taxes'),
 | |
| 				'fail_msg': _('Failed to setup company'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': setup_company,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to setup company")
 | |
| 					},
 | |
| 					{
 | |
| 						'fn': setup_taxes,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to setup taxes")
 | |
| 					}
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Setting defaults'),
 | |
| 				'fail_msg': 'Failed to set defaults',
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': stage_three,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to set defaults")
 | |
| 					}
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Making website'),
 | |
| 				'fail_msg': _('Failed to create website'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': stage_four,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to create website")
 | |
| 					}
 | |
| 				]
 | |
| 			},
 | |
| 			{
 | |
| 				'status': _('Wrapping up'),
 | |
| 				'fail_msg': _('Failed to login'),
 | |
| 				'tasks': [
 | |
| 					{
 | |
| 						'fn': fin,
 | |
| 						'args': args,
 | |
| 						'fail_msg': _("Failed to login")
 | |
| 					}
 | |
| 				]
 | |
| 			}
 | |
| 		]
 | |
| 
 | |
| 	return stages
 | |
| 
 | |
| def setup_complete(args=None):
 | |
| 	stage_fixtures(args)
 | |
| 	setup_company(args)
 | |
| 	setup_taxes(args)
 | |
| 	stage_three(args)
 | |
| 	stage_four(args)
 | |
| 	fin(args)
 | |
| 
 | |
| def stage_fixtures(args):
 | |
| 	install_fixtures.install(args.get("country"))
 | |
| 
 | |
| def setup_company(args):
 | |
| 	defaults_setup.create_price_lists(args)
 | |
| 	company_setup.create_fiscal_year_and_company(args)
 | |
| 	company_setup.enable_shopping_cart(args)
 | |
| 	company_setup.create_bank_account(args)
 | |
| 
 | |
| def setup_taxes(args):
 | |
| 	taxes_setup.create_sales_tax(args)
 | |
| 
 | |
| def stage_three(args):
 | |
| 	defaults_setup.create_employee_for_self(args)
 | |
| 	defaults_setup.set_default_settings(args)
 | |
| 	defaults_setup.create_territories()
 | |
| 	defaults_setup.create_feed_and_todo()
 | |
| 	defaults_setup.set_no_copy_fields_in_variant_settings()
 | |
| 
 | |
| 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:
 | |
| 		# 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"))
 |