mirror of
https://github.com/frappe/erpnext.git
synced 2026-05-20 13:39:18 +00:00
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
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