feat: translate fixtures during runtime, not installation (#33996)
feat: install untranslated fixtures from files Co-authored-by: Deepesh Garg <deepeshgarg6@gmail.com>
This commit is contained in:
		| @@ -31,7 +31,7 @@ | ||||
|  "icon": "fa fa-bookmark", | ||||
|  "idx": 1, | ||||
|  "links": [], | ||||
|  "modified": "2022-06-28 17:10:26.853753", | ||||
|  "modified": "2023-02-10 01:53:41.319386", | ||||
|  "modified_by": "Administrator", | ||||
|  "module": "Setup", | ||||
|  "name": "Designation", | ||||
| @@ -58,5 +58,6 @@ | ||||
|  "show_name_in_global_search": 1, | ||||
|  "sort_field": "modified", | ||||
|  "sort_order": "ASC", | ||||
|  "states": [] | ||||
|  "states": [], | ||||
|  "translated_doctype": 1 | ||||
| } | ||||
							
								
								
									
										31
									
								
								erpnext/setup/setup_wizard/data/designation.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								erpnext/setup/setup_wizard/data/designation.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| Accountant | ||||
| Administrative Assistant | ||||
| Administrative Officer | ||||
| Analyst | ||||
| Associate | ||||
| Business Analyst | ||||
| Business Development Manager | ||||
| Consultant | ||||
| Chief Executive Officer | ||||
| Chief Financial Officer | ||||
| Chief Operating Officer | ||||
| Chief Technology Officer | ||||
| Customer Service Representative | ||||
| Designer | ||||
| Engineer | ||||
| Executive Assistant | ||||
| Finance Manager | ||||
| HR Manager | ||||
| Head of Marketing and Sales | ||||
| Manager | ||||
| Managing Director | ||||
| Marketing Manager | ||||
| Marketing Specialist | ||||
| President | ||||
| Product Manager | ||||
| Project Manager | ||||
| Researcher | ||||
| Sales Representative | ||||
| Secretary | ||||
| Software Developer | ||||
| Vice President | ||||
| @@ -1,57 +0,0 @@ | ||||
| from frappe import _ | ||||
|  | ||||
|  | ||||
| def get_industry_types(): | ||||
| 	return [ | ||||
| 		_("Accounting"), | ||||
| 		_("Advertising"), | ||||
| 		_("Aerospace"), | ||||
| 		_("Agriculture"), | ||||
| 		_("Airline"), | ||||
| 		_("Apparel & Accessories"), | ||||
| 		_("Automotive"), | ||||
| 		_("Banking"), | ||||
| 		_("Biotechnology"), | ||||
| 		_("Broadcasting"), | ||||
| 		_("Brokerage"), | ||||
| 		_("Chemical"), | ||||
| 		_("Computer"), | ||||
| 		_("Consulting"), | ||||
| 		_("Consumer Products"), | ||||
| 		_("Cosmetics"), | ||||
| 		_("Defense"), | ||||
| 		_("Department Stores"), | ||||
| 		_("Education"), | ||||
| 		_("Electronics"), | ||||
| 		_("Energy"), | ||||
| 		_("Entertainment & Leisure"), | ||||
| 		_("Executive Search"), | ||||
| 		_("Financial Services"), | ||||
| 		_("Food, Beverage & Tobacco"), | ||||
| 		_("Grocery"), | ||||
| 		_("Health Care"), | ||||
| 		_("Internet Publishing"), | ||||
| 		_("Investment Banking"), | ||||
| 		_("Legal"), | ||||
| 		_("Manufacturing"), | ||||
| 		_("Motion Picture & Video"), | ||||
| 		_("Music"), | ||||
| 		_("Newspaper Publishers"), | ||||
| 		_("Online Auctions"), | ||||
| 		_("Pension Funds"), | ||||
| 		_("Pharmaceuticals"), | ||||
| 		_("Private Equity"), | ||||
| 		_("Publishing"), | ||||
| 		_("Real Estate"), | ||||
| 		_("Retail & Wholesale"), | ||||
| 		_("Securities & Commodity Exchanges"), | ||||
| 		_("Service"), | ||||
| 		_("Soap & Detergent"), | ||||
| 		_("Software"), | ||||
| 		_("Sports"), | ||||
| 		_("Technology"), | ||||
| 		_("Telecommunications"), | ||||
| 		_("Television"), | ||||
| 		_("Transportation"), | ||||
| 		_("Venture Capital"), | ||||
| 	] | ||||
							
								
								
									
										51
									
								
								erpnext/setup/setup_wizard/data/industry_type.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								erpnext/setup/setup_wizard/data/industry_type.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,51 @@ | ||||
| Accounting | ||||
| Advertising | ||||
| Aerospace | ||||
| Agriculture | ||||
| Airline | ||||
| Apparel & Accessories | ||||
| Automotive | ||||
| Banking | ||||
| Biotechnology | ||||
| Broadcasting | ||||
| Brokerage | ||||
| Chemical | ||||
| Computer | ||||
| Consulting | ||||
| Consumer Products | ||||
| Cosmetics | ||||
| Defense | ||||
| Department Stores | ||||
| Education | ||||
| Electronics | ||||
| Energy | ||||
| Entertainment & Leisure | ||||
| Executive Search | ||||
| Financial Services | ||||
| Food, Beverage & Tobacco | ||||
| Grocery | ||||
| Health Care | ||||
| Internet Publishing | ||||
| Investment Banking | ||||
| Legal | ||||
| Manufacturing | ||||
| Motion Picture & Video | ||||
| Music | ||||
| Newspaper Publishers | ||||
| Online Auctions | ||||
| Pension Funds | ||||
| Pharmaceuticals | ||||
| Private Equity | ||||
| Publishing | ||||
| Real Estate | ||||
| Retail & Wholesale | ||||
| Securities & Commodity Exchanges | ||||
| Service | ||||
| Soap & Detergent | ||||
| Software | ||||
| Sports | ||||
| Technology | ||||
| Telecommunications | ||||
| Television | ||||
| Transportation | ||||
| Venture Capital | ||||
							
								
								
									
										10
									
								
								erpnext/setup/setup_wizard/data/lead_source.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								erpnext/setup/setup_wizard/data/lead_source.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,10 @@ | ||||
| Existing Customer | ||||
| Reference | ||||
| Advertisement | ||||
| Cold Calling | ||||
| Exhibition | ||||
| Supplier Reference | ||||
| Mass Mailing | ||||
| Customer's Vendor | ||||
| Campaign | ||||
| Walk In | ||||
							
								
								
									
										7
									
								
								erpnext/setup/setup_wizard/data/sales_partner_type.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								erpnext/setup/setup_wizard/data/sales_partner_type.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| Channel Partner | ||||
| Distributor | ||||
| Dealer | ||||
| Agent | ||||
| Retailer | ||||
| Implementation Partner | ||||
| Reseller | ||||
							
								
								
									
										8
									
								
								erpnext/setup/setup_wizard/data/sales_stage.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								erpnext/setup/setup_wizard/data/sales_stage.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,8 @@ | ||||
| Prospecting | ||||
| Qualification | ||||
| Needs Analysis | ||||
| Value Proposition | ||||
| Identifying Decision Makers | ||||
| Perception Analysis | ||||
| Proposal/Price Quote | ||||
| Negotiation/Review | ||||
| @@ -4,6 +4,7 @@ | ||||
|  | ||||
| import json | ||||
| import os | ||||
| from pathlib import Path | ||||
|  | ||||
| import frappe | ||||
| from frappe import _ | ||||
| @@ -16,28 +17,10 @@ from frappe.utils import cstr, getdate | ||||
| from erpnext.accounts.doctype.account.account import RootNotEditable | ||||
| from erpnext.regional.address_template.setup import set_up_address_templates | ||||
|  | ||||
| default_lead_sources = [ | ||||
| 	"Existing Customer", | ||||
| 	"Reference", | ||||
| 	"Advertisement", | ||||
| 	"Cold Calling", | ||||
| 	"Exhibition", | ||||
| 	"Supplier Reference", | ||||
| 	"Mass Mailing", | ||||
| 	"Customer's Vendor", | ||||
| 	"Campaign", | ||||
| 	"Walk In", | ||||
| ] | ||||
|  | ||||
| default_sales_partner_type = [ | ||||
| 	"Channel Partner", | ||||
| 	"Distributor", | ||||
| 	"Dealer", | ||||
| 	"Agent", | ||||
| 	"Retailer", | ||||
| 	"Implementation Partner", | ||||
| 	"Reseller", | ||||
| ] | ||||
| def read_lines(filename: str) -> list[str]: | ||||
| 	"""Return a list of lines from a file in the data directory.""" | ||||
| 	return (Path(__file__).parent.parent / "data" / filename).read_text().splitlines() | ||||
|  | ||||
|  | ||||
| def install(country=None): | ||||
| @@ -85,7 +68,11 @@ def install(country=None): | ||||
| 		# Stock Entry Type | ||||
| 		{"doctype": "Stock Entry Type", "name": "Material Issue", "purpose": "Material Issue"}, | ||||
| 		{"doctype": "Stock Entry Type", "name": "Material Receipt", "purpose": "Material Receipt"}, | ||||
| 		{"doctype": "Stock Entry Type", "name": "Material Transfer", "purpose": "Material Transfer"}, | ||||
| 		{ | ||||
| 			"doctype": "Stock Entry Type", | ||||
| 			"name": "Material Transfer", | ||||
| 			"purpose": "Material Transfer", | ||||
| 		}, | ||||
| 		{"doctype": "Stock Entry Type", "name": "Manufacture", "purpose": "Manufacture"}, | ||||
| 		{"doctype": "Stock Entry Type", "name": "Repack", "purpose": "Repack"}, | ||||
| 		{ | ||||
| @@ -103,22 +90,6 @@ def install(country=None): | ||||
| 			"name": "Material Consumption for Manufacture", | ||||
| 			"purpose": "Material Consumption for Manufacture", | ||||
| 		}, | ||||
| 		# Designation | ||||
| 		{"doctype": "Designation", "designation_name": _("CEO")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Manager")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Analyst")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Engineer")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Accountant")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Secretary")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Associate")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Administrative Officer")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Business Development Manager")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("HR Manager")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Project Manager")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Head of Marketing and Sales")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Software Developer")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Designer")}, | ||||
| 		{"doctype": "Designation", "designation_name": _("Researcher")}, | ||||
| 		# territory: with two default territories, one for home country and one named Rest of the World | ||||
| 		{ | ||||
| 			"doctype": "Territory", | ||||
| @@ -291,28 +262,18 @@ def install(country=None): | ||||
| 		{"doctype": "Market Segment", "market_segment": _("Lower Income")}, | ||||
| 		{"doctype": "Market Segment", "market_segment": _("Middle Income")}, | ||||
| 		{"doctype": "Market Segment", "market_segment": _("Upper Income")}, | ||||
| 		# Sales Stages | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Prospecting")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Qualification")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Needs Analysis")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Value Proposition")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Identifying Decision Makers")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Perception Analysis")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Proposal/Price Quote")}, | ||||
| 		{"doctype": "Sales Stage", "stage_name": _("Negotiation/Review")}, | ||||
| 		# Warehouse Type | ||||
| 		{"doctype": "Warehouse Type", "name": "Transit"}, | ||||
| 	] | ||||
|  | ||||
| 	from erpnext.setup.setup_wizard.data.industry_type import get_industry_types | ||||
|  | ||||
| 	records += [{"doctype": "Industry Type", "industry": d} for d in get_industry_types()] | ||||
| 	# records += [{"doctype":"Operation", "operation": d} for d in get_operations()] | ||||
| 	records += [{"doctype": "Lead Source", "source_name": _(d)} for d in default_lead_sources] | ||||
|  | ||||
| 	records += [ | ||||
| 		{"doctype": "Sales Partner Type", "sales_partner_type": _(d)} for d in default_sales_partner_type | ||||
| 	] | ||||
| 	for doctype, title_field, filename in ( | ||||
| 		("Designation", "designation_name", "designation.txt"), | ||||
| 		("Sales Stage", "stage_name", "sales_stage.txt"), | ||||
| 		("Industry Type", "industry", "industry_type.txt"), | ||||
| 		("Lead Source", "source_name", "lead_source.txt"), | ||||
| 		("Sales Partner Type", "sales_partner_type", "sales_partner_type.txt"), | ||||
| 	): | ||||
| 		records += [{"doctype": doctype, title_field: title} for title in read_lines(filename)] | ||||
|  | ||||
| 	base_path = frappe.get_app_path("erpnext", "stock", "doctype") | ||||
| 	response = frappe.read_file( | ||||
| @@ -397,7 +358,8 @@ def add_uom_data(): | ||||
| 			frappe.get_doc({"doctype": "UOM Category", "category_name": _(d.get("category"))}).db_insert() | ||||
|  | ||||
| 		if not frappe.db.exists( | ||||
| 			"UOM Conversion Factor", {"from_uom": _(d.get("from_uom")), "to_uom": _(d.get("to_uom"))} | ||||
| 			"UOM Conversion Factor", | ||||
| 			{"from_uom": _(d.get("from_uom")), "to_uom": _(d.get("to_uom"))}, | ||||
| 		): | ||||
| 			frappe.get_doc( | ||||
| 				{ | ||||
| @@ -535,7 +497,8 @@ def create_bank_account(args): | ||||
|  | ||||
| 	company_name = args.get("company_name") | ||||
| 	bank_account_group = frappe.db.get_value( | ||||
| 		"Account", {"account_type": "Bank", "is_group": 1, "root_type": "Asset", "company": company_name} | ||||
| 		"Account", | ||||
| 		{"account_type": "Bank", "is_group": 1, "root_type": "Asset", "company": company_name}, | ||||
| 	) | ||||
| 	if bank_account_group: | ||||
| 		bank_account = frappe.get_doc( | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Raffael Meyer
					Raffael Meyer