mirror of
https://github.com/frappe/erpnext.git
synced 2026-09-09 23:39:28 +00:00
Merge pull request #58713 from shariquerik/feat/desk-v2-module-rail
feat(desk-v2): ship ERPNext's module-primary rail and its module sidebars
This commit is contained in:
@@ -10,6 +10,16 @@ source_link = "https://github.com/frappe/erpnext"
|
||||
app_logo_url = "/assets/erpnext/images/erpnext-logo.svg"
|
||||
app_home = "/desk/home"
|
||||
|
||||
# ERPNext addresses its doctypes through their module: /apps/erpnext/accounts/
|
||||
# sales-invoice/SI-001 (frappe/frappe#42211). The shape is fixed per app rather than per
|
||||
# doctype, foreign doctypes included, because a shape that varied inside one app would be
|
||||
# unparseable.
|
||||
#
|
||||
# desk v2 only. On `develop` this is dead config, and it is what the module rail below
|
||||
# needs to have anywhere to land: a `Module` item resolves to a module page, and a
|
||||
# non-modular prefix has no module route at all.
|
||||
app_modular = True
|
||||
|
||||
add_to_apps_screen = [
|
||||
{
|
||||
"name": app_name,
|
||||
|
||||
276
erpnext/rail/erpnext/erpnext.json
Normal file
276
erpnext/rail/erpnext/erpnext.json
Normal file
@@ -0,0 +1,276 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Rail",
|
||||
"extends": "",
|
||||
"idx": 0,
|
||||
"items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "landmark",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "accounts",
|
||||
"label": "Accounts",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_accounts",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "handshake",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "crm",
|
||||
"label": "CRM",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_crm",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "shopping-cart",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "buying",
|
||||
"label": "Buying",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_buying",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "folder-kanban",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "projects",
|
||||
"label": "Projects",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_projects",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "store",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "selling",
|
||||
"label": "Selling",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_selling",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "sliders-horizontal",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "building-2",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "manufacturing",
|
||||
"label": "Manufacturing",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_manufacturing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "package",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "stock",
|
||||
"label": "Stock",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_stock",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "headset",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "support",
|
||||
"label": "Support",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_support",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "pocket-knife",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "utilities",
|
||||
"label": "Utilities",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_utilities",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "archive",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "assets",
|
||||
"label": "Assets",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_assets",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "wrench",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance",
|
||||
"label": "Maintenance",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "globe",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "regional",
|
||||
"label": "Regional",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_regional",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "plug",
|
||||
"item_type": "Module",
|
||||
"keep_closed": 0,
|
||||
"key": "erpnext-integrations",
|
||||
"label": "Integrations",
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "ERPNext Integrations",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "shield-check",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-management",
|
||||
"label": "Quality",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_quality_management",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "messages-square",
|
||||
"item_type": "Module",
|
||||
"keep_closed": 0,
|
||||
"key": "communication",
|
||||
"label": "Communication",
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Communication",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "phone",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "telephony",
|
||||
"label": "Telephony",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_telephony",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "layers",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "bulk-transaction",
|
||||
"label": "Bulk Transaction",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_bulk_transaction",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "factory",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting",
|
||||
"label": "Subcontracting",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"icon": "file-code",
|
||||
"item_type": "Sidebar",
|
||||
"keep_closed": 0,
|
||||
"key": "edi",
|
||||
"label": "EDI",
|
||||
"link_doctype": "Sidebar",
|
||||
"link_to": "module_def_edi",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "erpnext",
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"user": ""
|
||||
}
|
||||
940
erpnext/sidebar/module_def_accounts/module_def_accounts.json
Normal file
940
erpnext/sidebar/module_def_accounts/module_def_accounts.json
Normal file
@@ -0,0 +1,940 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Accounts",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_accounts",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "account",
|
||||
"label": "Chart of Accounts",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Account",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "cost-center",
|
||||
"label": "Chart of Cost Centers",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Cost Center",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "account-category",
|
||||
"label": "Account Category",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Account Category",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "accounting-dimension",
|
||||
"label": "Accounting Dimension",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Accounting Dimension",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "currency",
|
||||
"label": "Currency",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Currency",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "currency-exchange",
|
||||
"label": "Currency Exchange",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Currency Exchange",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "finance-book",
|
||||
"label": "Finance Book",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Finance Book",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "mode-of-payment",
|
||||
"label": "Mode of Payment",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Mode of Payment",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "payment-term",
|
||||
"label": "Payment Term",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Payment Term",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "journal-entry-template",
|
||||
"label": "Journal Entry Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Journal Entry Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "terms-and-conditions",
|
||||
"label": "Terms and Conditions",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Terms and Conditions",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "company",
|
||||
"label": "Company",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Company",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "fiscal-year",
|
||||
"label": "Fiscal Year",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Fiscal Year",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-opening-closing",
|
||||
"label": "Opening & Closing",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "chart-of-accounts-importer",
|
||||
"label": "COA Importer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Chart of Accounts Importer",
|
||||
"parent_key": "section-opening-closing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "opening-invoice-creation-tool",
|
||||
"label": "Opening Invoice Tool",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Opening Invoice Creation Tool",
|
||||
"parent_key": "section-opening-closing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "accounting-period",
|
||||
"label": "Accounting Period",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Accounting Period",
|
||||
"parent_key": "section-opening-closing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "exchange-rate-revaluation",
|
||||
"label": "FX Revaluation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Exchange Rate Revaluation",
|
||||
"parent_key": "section-opening-closing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "period-closing-voucher",
|
||||
"label": "Period Closing Voucher",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Period Closing Voucher",
|
||||
"parent_key": "section-opening-closing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-taxes",
|
||||
"label": "Taxes",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-taxes-and-charges-template",
|
||||
"label": "Sales Tax Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Taxes and Charges Template",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "purchase-taxes-and-charges-template",
|
||||
"label": "Purchase Tax Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Purchase Taxes and Charges Template",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-tax-template",
|
||||
"label": "Item Tax Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Tax Template",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "tax-category",
|
||||
"label": "Tax Category",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Tax Category",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "tax-rule",
|
||||
"label": "Tax Rule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Tax Rule",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "tax-withholding-category",
|
||||
"label": "Tax Withholding Category",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Tax Withholding Category",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "tax-withholding-group",
|
||||
"label": "Tax Withholding Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Tax Withholding Group",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "lower-deduction-certificate",
|
||||
"label": "Deduction Certificate",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Lower Deduction Certificate",
|
||||
"parent_key": "section-taxes",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-budgeting",
|
||||
"label": "Budgeting",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "budget",
|
||||
"label": "Budget",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Budget",
|
||||
"parent_key": "section-budgeting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "cost-center-allocation",
|
||||
"label": "Cost Center Allocation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Cost Center Allocation",
|
||||
"parent_key": "section-budgeting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-share-management",
|
||||
"label": "Share Management",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "shareholder",
|
||||
"label": "Shareholder",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Shareholder",
|
||||
"parent_key": "section-share-management",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "share-transfer",
|
||||
"label": "Share Transfer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Share Transfer",
|
||||
"parent_key": "section-share-management",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-subscriptions",
|
||||
"label": "Subscriptions",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subscription",
|
||||
"label": "Subscription",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subscription",
|
||||
"parent_key": "section-subscriptions",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subscription-plan",
|
||||
"label": "Subscription Plan",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subscription Plan",
|
||||
"parent_key": "section-subscriptions",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subscription-settings",
|
||||
"label": "Subscription Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subscription Settings",
|
||||
"parent_key": "section-subscriptions",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "accounts-settings",
|
||||
"label": "Accounts Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Accounts Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "currency-exchange-settings",
|
||||
"label": "Currency Exchange Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Currency Exchange Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-receivables",
|
||||
"label": "Receivables",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer",
|
||||
"label": "Customer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer",
|
||||
"parent_key": "section-receivables",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-invoice",
|
||||
"label": "Sales Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Invoice",
|
||||
"parent_key": "section-receivables",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-payables",
|
||||
"label": "Payables",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier",
|
||||
"label": "Supplier",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier",
|
||||
"parent_key": "section-payables",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "purchase-invoice",
|
||||
"label": "Purchase Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Purchase Invoice",
|
||||
"parent_key": "section-payables",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-payments",
|
||||
"label": "Payments",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "payment-entry",
|
||||
"label": "Payment Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Payment Entry",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "journal-entry",
|
||||
"label": "Journal Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Journal Entry",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "payment-request",
|
||||
"label": "Payment Request",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Payment Request",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "payment-order",
|
||||
"label": "Payment Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Payment Order",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "payment-reconciliation",
|
||||
"label": "Payment Reconciliation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Payment Reconciliation",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "unreconcile-payment",
|
||||
"label": "Unreconcile Payment",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Unreconcile Payment",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "process-payment-reconciliation",
|
||||
"label": "Process Payment Reconciliation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Process Payment Reconciliation",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "repost-accounting-ledger",
|
||||
"label": "Repost Accounting Ledger",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Repost Accounting Ledger",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "repost-payment-ledger",
|
||||
"label": "Repost Payment Ledger",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Repost Payment Ledger",
|
||||
"parent_key": "section-payments",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-banking",
|
||||
"label": "Banking",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-clearance",
|
||||
"label": "Bank Clearance",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Clearance",
|
||||
"parent_key": "section-banking",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-reconciliation-tool",
|
||||
"label": "Bank Reconciliation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Reconciliation Tool",
|
||||
"parent_key": "section-banking",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-banking-setup",
|
||||
"label": "Banking Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank",
|
||||
"label": "Bank",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-account",
|
||||
"label": "Bank Account",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Account",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-account-type",
|
||||
"label": "Bank Account Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Account Type",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-account-subtype",
|
||||
"label": "Bank Account Subtype",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Account Subtype",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bank-guarantee",
|
||||
"label": "Bank Guarantee",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bank Guarantee",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "plaid-settings",
|
||||
"label": "Plaid Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Plaid Settings",
|
||||
"parent_key": "section-banking-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-dunning",
|
||||
"label": "Dunning",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "dunning",
|
||||
"label": "Dunning",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Dunning",
|
||||
"parent_key": "section-dunning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "dunning-type",
|
||||
"label": "Dunning Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Dunning Type",
|
||||
"parent_key": "section-dunning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 0,
|
||||
"key": "section-financial-reports",
|
||||
"label": "Financial Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "financial-report-template",
|
||||
"label": "Financial Report Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Financial Report Template",
|
||||
"parent_key": "section-financial-reports",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Accounts",
|
||||
"user": ""
|
||||
}
|
||||
206
erpnext/sidebar/module_def_assets/module_def_assets.json
Normal file
206
erpnext/sidebar/module_def_assets/module_def_assets.json
Normal file
@@ -0,0 +1,206 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Assets",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_assets",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset",
|
||||
"label": "Asset",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-depreciation-schedule",
|
||||
"label": "Depreciation Schedule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Depreciation Schedule",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-capitalization",
|
||||
"label": "Asset Capitalization",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Capitalization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-movement",
|
||||
"label": "Asset Movement",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Movement",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-maintenance",
|
||||
"label": "Maintenance",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-maintenance-team",
|
||||
"label": "Asset Maintenance Team",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Maintenance Team",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-maintenance",
|
||||
"label": "Asset Maintenance",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Maintenance",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-maintenance-log",
|
||||
"label": "Asset Maintenance Log",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Maintenance Log",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-value-adjustment",
|
||||
"label": "Asset Value Adjustment",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Value Adjustment",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-repair",
|
||||
"label": "Asset Repair",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Repair",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "asset-category",
|
||||
"label": "Asset Category",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Asset Category",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "location",
|
||||
"label": "Location",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Location",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "accounts-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Accounts Settings",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Assets",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Bulk Transaction",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_bulk_transaction",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bulk-transaction-log-detail",
|
||||
"label": "Bulk Transaction Log Detail",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bulk Transaction Log Detail",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bulk-transaction-log",
|
||||
"label": "Bulk Transaction Log",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Bulk Transaction Log",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Bulk Transaction",
|
||||
"user": ""
|
||||
}
|
||||
320
erpnext/sidebar/module_def_buying/module_def_buying.json
Normal file
320
erpnext/sidebar/module_def_buying/module_def_buying.json
Normal file
@@ -0,0 +1,320 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Buying",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_buying",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "material-request",
|
||||
"label": "Material Request",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Material Request",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "request-for-quotation",
|
||||
"label": "Request for Quotation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Request for Quotation",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-quotation",
|
||||
"label": "Supplier Quotation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Quotation",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "purchase-order",
|
||||
"label": "Purchase Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Purchase Order",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "purchase-invoice",
|
||||
"label": "Purchase Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Purchase Invoice",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier",
|
||||
"label": "Supplier",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-group",
|
||||
"label": "Supplier Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Group",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "price-list",
|
||||
"label": "Price List",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Price List",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "address",
|
||||
"label": "Address",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Address",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "contact",
|
||||
"label": "Contacts",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Contact",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-scorecard",
|
||||
"label": "Supplier Scorecard",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Scorecard",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-scorecard-criteria",
|
||||
"label": "Supplier Scorecard Criteria",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Scorecard Criteria",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-scorecard-variable",
|
||||
"label": "Supplier Scorecard Variable",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Scorecard Variable",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier-scorecard-standing",
|
||||
"label": "Supplier Scorecard Standing",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier Scorecard Standing",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-subcontracting",
|
||||
"label": "Subcontracting",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-bom",
|
||||
"label": "Subcontracting BOM",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting BOM",
|
||||
"parent_key": "section-subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-inward-order",
|
||||
"label": "Subcontracting Inward Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Inward Order",
|
||||
"parent_key": "section-subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-entry",
|
||||
"label": "Subcontracting Delivery",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Entry",
|
||||
"parent_key": "section-subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-order",
|
||||
"label": "Subcontracting Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Order",
|
||||
"parent_key": "section-subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-receipt",
|
||||
"label": "Subcontracting Receipt",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Receipt",
|
||||
"parent_key": "section-subcontracting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-reports",
|
||||
"label": "Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "buying-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Buying Settings",
|
||||
"parent_key": "section-reports",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Buying",
|
||||
"user": ""
|
||||
}
|
||||
370
erpnext/sidebar/module_def_crm/module_def_crm.json
Normal file
370
erpnext/sidebar/module_def_crm/module_def_crm.json
Normal file
@@ -0,0 +1,370 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "CRM",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_crm",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "lead",
|
||||
"label": "Lead",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Lead",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "opportunity",
|
||||
"label": "Opportunity",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Opportunity",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer",
|
||||
"label": "Customer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-maintenance",
|
||||
"label": "Maintenance",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-schedule",
|
||||
"label": "Maintenance Schedule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Schedule",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-visit",
|
||||
"label": "Maintenance Visit",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Visit",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "warranty-claim",
|
||||
"label": "Warranty Claim",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Warranty Claim",
|
||||
"parent_key": "section-maintenance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-sales-pipeline",
|
||||
"label": "Sales Pipeline",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "contract",
|
||||
"label": "Contract",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Contract",
|
||||
"parent_key": "section-sales-pipeline",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "appointment",
|
||||
"label": "Appointment",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Appointment",
|
||||
"parent_key": "section-sales-pipeline",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "communication",
|
||||
"label": "Communication",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Communication",
|
||||
"parent_key": "section-sales-pipeline",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-campaign",
|
||||
"label": "Campaign",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "campaign",
|
||||
"label": "Campaign",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Campaign",
|
||||
"parent_key": "section-campaign",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "email-campaign",
|
||||
"label": "Email Campaign",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Email Campaign",
|
||||
"parent_key": "section-campaign",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sms-center",
|
||||
"label": "SMS Center",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "SMS Center",
|
||||
"parent_key": "section-campaign",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sms-log",
|
||||
"label": "SMS Log",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "SMS Log",
|
||||
"parent_key": "section-campaign",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "email-group",
|
||||
"label": "Email Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Email Group",
|
||||
"parent_key": "section-campaign",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "territory",
|
||||
"label": "Territory",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Territory",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer-group",
|
||||
"label": "Customer Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer Group",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "contact",
|
||||
"label": "Contact",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Contact",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "prospect",
|
||||
"label": "Prospect",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Prospect",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-person",
|
||||
"label": "Sales Person",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Person",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-stage",
|
||||
"label": "Sales Stage",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Stage",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "utm-source",
|
||||
"label": "Lead Source",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "UTM Source",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "crm-settings",
|
||||
"label": "CRM Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "CRM Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sms-settings",
|
||||
"label": "SMS Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "SMS Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "CRM",
|
||||
"user": ""
|
||||
}
|
||||
43
erpnext/sidebar/module_def_edi/module_def_edi.json
Normal file
43
erpnext/sidebar/module_def_edi/module_def_edi.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "EDI",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_edi",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "code-list",
|
||||
"label": "Code List",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Code List",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "common-code",
|
||||
"label": "Common Code",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Common Code",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "EDI",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Maintenance",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_maintenance",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-schedule",
|
||||
"label": "Maintenance Schedule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Schedule",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-visit",
|
||||
"label": "Maintenance Visit",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Visit",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Maintenance",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,295 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Manufacturing",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_manufacturing",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bom",
|
||||
"label": "BOM",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "BOM",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "work-order",
|
||||
"label": "Work Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Work Order",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "job-card",
|
||||
"label": "Job Card",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Job Card",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-entry",
|
||||
"label": "Stock Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Entry",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-material-planning",
|
||||
"label": "Material Planning",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-lead-time",
|
||||
"label": "Item Lead Time",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Lead Time",
|
||||
"parent_key": "section-material-planning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "production-plan",
|
||||
"label": "Production Plan",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Production Plan",
|
||||
"parent_key": "section-material-planning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "master-production-schedule",
|
||||
"label": "Master Production Schedule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Master Production Schedule",
|
||||
"parent_key": "section-material-planning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-forecast",
|
||||
"label": "Sales Forecast",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Forecast",
|
||||
"parent_key": "section-material-planning",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-tools",
|
||||
"label": "Tools",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bom-creator",
|
||||
"label": "BOM Creator",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "BOM Creator",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "bom-update-tool",
|
||||
"label": "BOM Update Tool",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "BOM Update Tool",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "downtime-entry",
|
||||
"label": "Downtime Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Downtime Entry",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "warehouse",
|
||||
"label": "Warehouse",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Warehouse",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "operation",
|
||||
"label": "Operation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Operation",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "workstation",
|
||||
"label": "Workstation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Workstation",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "workstation-type",
|
||||
"label": "Workstation Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Workstation Type",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "plant-floor",
|
||||
"label": "Plant Floor",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Plant Floor",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "routing",
|
||||
"label": "Routing",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Routing",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "manufacturing-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Manufacturing Settings",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Manufacturing",
|
||||
"user": ""
|
||||
}
|
||||
155
erpnext/sidebar/module_def_projects/module_def_projects.json
Normal file
155
erpnext/sidebar/module_def_projects/module_def_projects.json
Normal file
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Projects",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_projects",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "project",
|
||||
"label": "Project",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Project",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "task",
|
||||
"label": "Task",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Task",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "timesheet",
|
||||
"label": "Timesheet",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Timesheet",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "activity-type",
|
||||
"label": "Activity Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Activity Type",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "activity-cost",
|
||||
"label": "Activity Cost",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Activity Cost",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "project-template",
|
||||
"label": "Project Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Project Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "project-type",
|
||||
"label": "Project Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Project Type",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "project-update",
|
||||
"label": "Project Update",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Project Update",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-reports",
|
||||
"label": "Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "projects-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Projects Settings",
|
||||
"parent_key": "section-reports",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Projects",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Quality Management",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_quality_management",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-inspection",
|
||||
"label": "Quality Inspection",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Inspection",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-goal",
|
||||
"label": "Quality Goal",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Goal",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-review",
|
||||
"label": "Quality Review",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Review",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-action",
|
||||
"label": "Quality Action",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Action",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "non-conformance",
|
||||
"label": "Non Conformance",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Non Conformance",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-feedback",
|
||||
"label": "Quality Feedback",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Feedback",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-meeting",
|
||||
"label": "Quality Meeting",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Meeting",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-procedure",
|
||||
"label": "Quality Procedure",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Procedure",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-feedback-template",
|
||||
"label": "Feedback Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Feedback Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-inspection-template",
|
||||
"label": "Quality Inspection Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Inspection Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Quality",
|
||||
"user": ""
|
||||
}
|
||||
55
erpnext/sidebar/module_def_regional/module_def_regional.json
Normal file
55
erpnext/sidebar/module_def_regional/module_def_regional.json
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Regional",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_regional",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "lower-deduction-certificate",
|
||||
"label": "Lower Deduction Certificate",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Lower Deduction Certificate",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "uae-vat-settings",
|
||||
"label": "UAE VAT Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "UAE VAT Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "south-africa-vat-settings",
|
||||
"label": "South Africa VAT Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "South Africa VAT Settings",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Regional",
|
||||
"user": ""
|
||||
}
|
||||
502
erpnext/sidebar/module_def_selling/module_def_selling.json
Normal file
502
erpnext/sidebar/module_def_selling/module_def_selling.json
Normal file
@@ -0,0 +1,502 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Selling",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_selling",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quotation",
|
||||
"label": "Quotation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quotation",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-order",
|
||||
"label": "Sales Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Order",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-invoice",
|
||||
"label": "Sales Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Invoice",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-pos",
|
||||
"label": "POS",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-profile",
|
||||
"label": "POS Profile",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Profile",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-invoice",
|
||||
"label": "POS Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Invoice",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-opening-entry",
|
||||
"label": "POS Opening Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Opening Entry",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-closing-entry",
|
||||
"label": "POS Closing Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Closing Entry",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-invoice-merge-log",
|
||||
"label": "POS Invoice Merge Log",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Invoice Merge Log",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-settings",
|
||||
"label": "POS Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Settings",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "loyalty-program",
|
||||
"label": "Loyalty Program",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Loyalty Program",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "loyalty-point-entry",
|
||||
"label": "Loyalty Point Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Loyalty Point Entry",
|
||||
"parent_key": "section-pos",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-items-pricing",
|
||||
"label": "Items & Pricing",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-group",
|
||||
"label": "Item Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Group",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "price-list",
|
||||
"label": "Price List",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Price List",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-price",
|
||||
"label": "Item Price",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Price",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pricing-rule",
|
||||
"label": "Pricing Rule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Pricing Rule",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "promotional-scheme",
|
||||
"label": "Promotional Scheme",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Promotional Scheme",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "coupon-code",
|
||||
"label": "Coupon Code",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Coupon Code",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "blanket-order",
|
||||
"label": "Blanket Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Blanket Order",
|
||||
"parent_key": "section-items-pricing",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer",
|
||||
"label": "Customer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer-group",
|
||||
"label": "Customer Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer Group",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "address",
|
||||
"label": "Address",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Address",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "contact",
|
||||
"label": "Contact",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Contact",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "territory",
|
||||
"label": "Territory",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Territory",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "campaign",
|
||||
"label": "Campaign",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Campaign",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-person",
|
||||
"label": "Sales Person",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Person",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-partner",
|
||||
"label": "Sales Partner",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Partner",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "monthly-distribution",
|
||||
"label": "Monthly Distribution",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Monthly Distribution",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "terms-and-conditions",
|
||||
"label": "Terms Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Terms and Conditions",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-taxes-and-charges-template",
|
||||
"label": "Tax Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Taxes and Charges Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "product-bundle",
|
||||
"label": "Product Bundle",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Product Bundle",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "utm-source",
|
||||
"label": "UTM Source",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "UTM Source",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "shipping-rule",
|
||||
"label": "Shipping Rule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Shipping Rule",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-reports",
|
||||
"label": "Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "selling-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Selling Settings",
|
||||
"parent_key": "section-reports",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Selling",
|
||||
"user": ""
|
||||
}
|
||||
392
erpnext/sidebar/module_def_setup/module_def_setup.json
Normal file
392
erpnext/sidebar/module_def_setup/module_def_setup.json
Normal file
@@ -0,0 +1,392 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Setup",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_setup",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "global-defaults",
|
||||
"label": "Global Defaults",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Global Defaults",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "system-settings",
|
||||
"label": "System Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "System Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "accounts-settings",
|
||||
"label": "Accounts Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Accounts Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pos-settings",
|
||||
"label": "POS Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "POS Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "selling-settings",
|
||||
"label": "Selling Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Selling Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "buying-settings",
|
||||
"label": "Buying Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Buying Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-settings",
|
||||
"label": "Stock Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "manufacturing-settings",
|
||||
"label": "Manufacturing Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Manufacturing Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "projects-settings",
|
||||
"label": "Projects Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Projects Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "crm-settings",
|
||||
"label": "CRM Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "CRM Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "support-settings",
|
||||
"label": "Support Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Support Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-other-settings",
|
||||
"label": "Other Settings",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subscription-settings",
|
||||
"label": "Subscription Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subscription Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-variant-settings",
|
||||
"label": "Item Variant Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Variant Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "delivery-settings",
|
||||
"label": "Delivery Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Delivery Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "currency-exchange-settings",
|
||||
"label": "Currency Exchange Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Currency Exchange Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "appointment-booking-settings",
|
||||
"label": "Appointment Booking Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Appointment Booking Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-reposting-settings",
|
||||
"label": "Stock Reposting Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Reposting Settings",
|
||||
"parent_key": "section-other-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-organization",
|
||||
"label": "Organization",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "company",
|
||||
"label": "Company",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Company",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "letter-head",
|
||||
"label": "Letter Head",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Letter Head",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "department",
|
||||
"label": "Department",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Department",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "branch",
|
||||
"label": "Branch",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Branch",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "user",
|
||||
"label": "User",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "User",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "email-account",
|
||||
"label": "Email Account",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Email Account",
|
||||
"parent_key": "section-organization",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-home",
|
||||
"label": "Home",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-home",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "customer",
|
||||
"label": "Customer",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Customer",
|
||||
"parent_key": "section-home",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "supplier",
|
||||
"label": "Supplier",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Supplier",
|
||||
"parent_key": "section-home",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "sales-invoice",
|
||||
"label": "Sales Invoice",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Sales Invoice",
|
||||
"parent_key": "section-home",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Setup",
|
||||
"user": ""
|
||||
}
|
||||
461
erpnext/sidebar/module_def_stock/module_def_stock.json
Normal file
461
erpnext/sidebar/module_def_stock/module_def_stock.json
Normal file
@@ -0,0 +1,461 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Stock",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_stock",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-entry",
|
||||
"label": "Stock Entry",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Entry",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "purchase-receipt",
|
||||
"label": "Purchase Receipt",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Purchase Receipt",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "delivery-note",
|
||||
"label": "Delivery Note",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Delivery Note",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "material-request",
|
||||
"label": "Material Request",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Material Request",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "pick-list",
|
||||
"label": "Pick List",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Pick List",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-tools",
|
||||
"label": "Tools",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-reconciliation",
|
||||
"label": "Stock Reconciliation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Reconciliation",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "landed-cost-voucher",
|
||||
"label": "Landed Cost Voucher",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Landed Cost Voucher",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "repost-item-valuation",
|
||||
"label": "Repost Item Valuation",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Repost Item Valuation",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "packing-slip",
|
||||
"label": "Packing Slip",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Packing Slip",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-inspection",
|
||||
"label": "Quality Inspection",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Inspection",
|
||||
"parent_key": "section-tools",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item",
|
||||
"label": "Item",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-group",
|
||||
"label": "Item Group",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Group",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-attribute",
|
||||
"label": "Item Attribute",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Attribute",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "brand",
|
||||
"label": "Brand",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Brand",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "warehouse",
|
||||
"label": "Warehouse",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Warehouse",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "uom",
|
||||
"label": "Unit of Measure (UOM)",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "UOM",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "uom-conversion-factor",
|
||||
"label": "UOM Conversion Factor",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "UOM Conversion Factor",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "serial-no",
|
||||
"label": "Serial No",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Serial No",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "batch",
|
||||
"label": "Batch No",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Batch",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "serial-and-batch-bundle",
|
||||
"label": "Serial and Batch Bundle",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Serial and Batch Bundle",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-standard-cost",
|
||||
"label": "Item Standard Cost",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Standard Cost",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "inventory-dimension",
|
||||
"label": "Inventory Dimension",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Inventory Dimension",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "shipping-rule",
|
||||
"label": "Shipping Rule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Shipping Rule",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-alternative",
|
||||
"label": "Item Alternative",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Alternative",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quality-inspection-template",
|
||||
"label": "Quality Inspection Template",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quality Inspection Template",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "delivery-trip",
|
||||
"label": "Delivery Trip",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Delivery Trip",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-reports",
|
||||
"label": "Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "quick-stock-balance",
|
||||
"label": "Quick Stock Balance",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Quick Stock Balance",
|
||||
"parent_key": "section-reports",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-settings",
|
||||
"label": "Stock Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "item-variant-settings",
|
||||
"label": "Item Variant Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Item Variant Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "stock-reposting-settings",
|
||||
"label": "Stock Reposting Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Stock Reposting Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "delivery-settings",
|
||||
"label": "Delivery Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Delivery Settings",
|
||||
"parent_key": "section-settings",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Stock",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Subcontracting",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_subcontracting",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-order",
|
||||
"label": "Subcontracting Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Order",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-receipt",
|
||||
"label": "Subcontracting Receipt",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Receipt",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-bom",
|
||||
"label": "Subcontracting BOM",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting BOM",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "subcontracting-inward-order",
|
||||
"label": "Subcontracting Inward Order",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Subcontracting Inward Order",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Subcontracting",
|
||||
"user": ""
|
||||
}
|
||||
141
erpnext/sidebar/module_def_support/module_def_support.json
Normal file
141
erpnext/sidebar/module_def_support/module_def_support.json
Normal file
@@ -0,0 +1,141 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Support",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_support",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "issue",
|
||||
"label": "Issue",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Issue",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-schedule",
|
||||
"label": "Maintenance Schedule",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Schedule",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "maintenance-visit",
|
||||
"label": "Maintenance Visit",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Maintenance Visit",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "warranty-claim",
|
||||
"label": "Warranty Claim",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Warranty Claim",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-setup",
|
||||
"label": "Setup",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "issue-type",
|
||||
"label": "Issue Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Issue Type",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "issue-priority",
|
||||
"label": "Issue Priority",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Issue Priority",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "service-level-agreement",
|
||||
"label": "Service Level Agreement",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Service Level Agreement",
|
||||
"parent_key": "section-setup",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 1,
|
||||
"hidden": 0,
|
||||
"item_type": "Section",
|
||||
"keep_closed": 1,
|
||||
"key": "section-reports",
|
||||
"label": "Reports",
|
||||
"link_doctype": "",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "support-settings",
|
||||
"label": "Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Support Settings",
|
||||
"parent_key": "section-reports",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Support",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Telephony",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_telephony",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "incoming-call-settings",
|
||||
"label": "Incoming Call Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Incoming Call Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "voice-call-settings",
|
||||
"label": "Voice Call Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Voice Call Settings",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "call-log",
|
||||
"label": "Call Log",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Call Log",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "telephony-call-type",
|
||||
"label": "Telephony Call Type",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Telephony Call Type",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Telephony",
|
||||
"user": ""
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"app": "erpnext",
|
||||
"creation": "2026-09-02 22:15:00.000000",
|
||||
"docstatus": 0,
|
||||
"doctype": "Sidebar",
|
||||
"idx": 0,
|
||||
"items": [],
|
||||
"link_doctype": "Module Def",
|
||||
"link_to": "Utilities",
|
||||
"modified": "2026-09-02 22:15:00.000000",
|
||||
"modified_by": "Administrator",
|
||||
"name": "module_def_utilities",
|
||||
"navigation_items": [
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "rename-tool",
|
||||
"label": "Rename Tool",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Rename Tool",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "video",
|
||||
"label": "Video",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Video",
|
||||
"switches_app": 0
|
||||
},
|
||||
{
|
||||
"added": 0,
|
||||
"collapsible": 0,
|
||||
"hidden": 0,
|
||||
"item_type": "DocType",
|
||||
"keep_closed": 0,
|
||||
"key": "video-settings",
|
||||
"label": "Video Settings",
|
||||
"link_doctype": "DocType",
|
||||
"link_to": "Video Settings",
|
||||
"switches_app": 0
|
||||
}
|
||||
],
|
||||
"owner": "Administrator",
|
||||
"standard": 1,
|
||||
"title": "Utilities",
|
||||
"user": ""
|
||||
}
|
||||
290
erpnext/tests/test_navigation.py
Normal file
290
erpnext/tests/test_navigation.py
Normal file
@@ -0,0 +1,290 @@
|
||||
# Copyright (c) 2026, Frappe Technologies Pvt. Ltd. and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
"""ERPNext's shipped desk v2 navigation: one Rail record and eighteen module Sidebars.
|
||||
|
||||
These are fixture tests. ERPNext ships no navigation code at all -- the rows arrive as JSON at
|
||||
`bench migrate` and the framework resolves them -- so what there is to get wrong is the content
|
||||
of those rows: a rail item naming a sidebar nobody ships, a row pointing at a doctype this site
|
||||
does not have, or two rows claiming one key. Each of those resolves to a quietly shorter list
|
||||
rather than to an error, which is why they are asserted here.
|
||||
|
||||
This is the module-primary half of charter point 2 (frappe/frappe#42226): the same table, the
|
||||
same resolver and the same item kinds that give CRM a doctype-primary rail, giving ERPNext one
|
||||
made of modules. The rail is a `Sidebar` item per module that has an authored sidebar and a
|
||||
`Module` item per module that does not.
|
||||
|
||||
Every test runs as somebody other than Administrator. The permission filter short-circuits for
|
||||
an administrator (`frappe/shell/navigation_filter.py`), so an Administrator suite would pass
|
||||
against a rail that is not being filtered at all.
|
||||
"""
|
||||
|
||||
import frappe
|
||||
from frappe.shell.navigation import resolve_navigation
|
||||
from frappe.tests import IntegrationTestCase
|
||||
|
||||
APP = "erpnext"
|
||||
|
||||
# The rail, in the order it is authored -- which is the order ERPNext already curated for desk
|
||||
# v1's dock, since that list is what a person using ERPNext expects to see.
|
||||
RAIL = (
|
||||
"accounts",
|
||||
"crm",
|
||||
"buying",
|
||||
"projects",
|
||||
"selling",
|
||||
"setup",
|
||||
"manufacturing",
|
||||
"stock",
|
||||
"support",
|
||||
"utilities",
|
||||
"assets",
|
||||
"maintenance",
|
||||
"regional",
|
||||
"erpnext-integrations",
|
||||
"quality-management",
|
||||
"communication",
|
||||
"telephony",
|
||||
"bulk-transaction",
|
||||
"subcontracting",
|
||||
"edi",
|
||||
)
|
||||
|
||||
# The two modules whose authored sidebar would hold one row or none, so none is shipped. Their
|
||||
# rail item is a `Module`, which lands on the module page -- a list derived from the module's
|
||||
# contents, which is a different list on purpose (frappe/frappe#42357).
|
||||
#
|
||||
# `Portal` is on desk v1's dock and is deliberately not here: it holds no doctypes at all, so
|
||||
# it has neither a sidebar to open nor a module page to land on, and the renderer would find no
|
||||
# address and skip the row.
|
||||
INDEPENDENT = ("erpnext-integrations", "communication")
|
||||
|
||||
# Every other module ships a sidebar, addressed at its `Module Def`. The scrubbed address is
|
||||
# both the standard record's name and the key boot files it under, and it is the string the
|
||||
# rail item of type `Sidebar` carries in `link_to`.
|
||||
LINKED = tuple(key for key in RAIL if key not in INDEPENDENT)
|
||||
|
||||
|
||||
def rail_of(user: str) -> list[dict]:
|
||||
frappe.set_user(user)
|
||||
try:
|
||||
return resolve_navigation(APP)["rail"]
|
||||
finally:
|
||||
frappe.set_user("Administrator")
|
||||
|
||||
|
||||
class TestERPNextNavigation(IntegrationTestCase):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super().setUpClass()
|
||||
cls.user = make_erpnext_user("erpnext.navigation.test@example.com")
|
||||
|
||||
def setUp(self):
|
||||
frappe.set_user(self.user)
|
||||
self.addCleanup(frappe.set_user, "Administrator")
|
||||
# `IntegrationTestCase` rolls back once per CLASS, so a `Block Module` row written by one
|
||||
# test is still there for the next -- and three tests below block the same module, so the
|
||||
# one that asserts what the rail looks like *before* the block would depend on running
|
||||
# first. Cleared here rather than in a cleanup, so it holds however the tests are ordered.
|
||||
self.unblock()
|
||||
self.addCleanup(self.unblock)
|
||||
|
||||
def unblock(self):
|
||||
"""Give every module back, and clear the cache the block is read through."""
|
||||
frappe.set_user("Administrator")
|
||||
doc = frappe.get_doc("User", self.user)
|
||||
if doc.block_modules:
|
||||
doc.set("block_modules", [])
|
||||
doc.save(ignore_permissions=True)
|
||||
frappe.clear_cache(user=self.user)
|
||||
frappe.set_user(self.user)
|
||||
|
||||
def test_the_rail_is_the_twenty_authored_items(self):
|
||||
"""As Administrator, who is filtered by nothing, so this is the shipped list itself."""
|
||||
frappe.set_user("Administrator")
|
||||
|
||||
self.assertEqual(tuple(item["key"] for item in resolve_navigation(APP)["rail"]), RAIL)
|
||||
|
||||
def test_a_linked_item_names_a_sidebar_this_app_ships(self):
|
||||
"""A typo in `link_to` costs the item its panel and nothing else, so nothing reports it.
|
||||
|
||||
Read off the **shipped rows**, not the resolved payload. `Sidebar` declares the
|
||||
`Derived From Children` permission rule, so an item naming an address that resolves to no
|
||||
rows is dropped by the server's own cascade -- silently, and correctly, because that is
|
||||
also what an emptied sidebar has to do. Asserting against the resolved list would
|
||||
therefore be asserting that the cascade works, which is frappe's test and not this one.
|
||||
"""
|
||||
linked = [row for row in shipped("Rail", "erpnext") if row.item_type == "Sidebar"]
|
||||
addresses = set(frappe.get_all("Sidebar", filters={"app": APP, "standard": 1}, pluck="name"))
|
||||
|
||||
self.assertEqual(tuple(row.key for row in linked), LINKED)
|
||||
for row in linked:
|
||||
self.assertIn(row.link_to, addresses, row.key)
|
||||
|
||||
def test_an_independent_item_is_a_module_and_opens_nothing(self):
|
||||
"""Charter point 1 makes independent a first-class state, and needs no field to say so:
|
||||
a `Module` item lands on the module page and has no sidebar to open."""
|
||||
frappe.set_user("Administrator")
|
||||
navigation = resolve_navigation(APP)
|
||||
rail = {item["key"]: item for item in navigation["rail"]}
|
||||
|
||||
for key in INDEPENDENT:
|
||||
self.assertEqual(rail[key]["item_type"], "Module")
|
||||
self.assertNotIn(frappe.scrub(f"Module Def {rail[key]['link_to']}"), navigation["sidebars"])
|
||||
|
||||
def test_every_sidebar_is_addressed_at_a_module_that_exists(self):
|
||||
"""The address is the module, not the desk v1 sidebar the rows were curated for -- and
|
||||
those two differ: v1's `Quality` sidebar belongs to the `Quality Management` module."""
|
||||
for name in frappe.get_all(
|
||||
"Sidebar", filters={"app": APP, "standard": 1, "link_doctype": "Module Def"}, pluck="name"
|
||||
):
|
||||
module = frappe.db.get_value("Sidebar", name, "link_to")
|
||||
self.assertTrue(frappe.db.exists("Module Def", module), name)
|
||||
self.assertEqual(name, frappe.scrub(f"Module Def {module}"))
|
||||
|
||||
def test_every_destination_is_a_doctype_this_site_has(self):
|
||||
"""Read off the shipped rows rather than the resolved payload, which has already dropped
|
||||
any row it could not place.
|
||||
|
||||
A typo cannot get this far: `link_to` is a Dynamic Link, so `_validate_links` refuses the
|
||||
row at import with `Could not find Row #N: Link To` -- checked, not assumed. What is left
|
||||
for this to catch is a doctype removed *after* the rows were imported, which arrives as a
|
||||
quietly shorter sidebar and nothing else.
|
||||
"""
|
||||
for container, address in every_container():
|
||||
for row in shipped(container, address):
|
||||
if row.item_type == "DocType":
|
||||
self.assertTrue(frappe.db.exists("DocType", row.link_to), f"{address}/{row.key}")
|
||||
|
||||
def test_keys_are_unique_within_each_container(self):
|
||||
"""Every site and user edit is filed against a key, so two rows sharing one collide."""
|
||||
for container, address in every_container():
|
||||
keys = [row.key for row in shipped(container, address)]
|
||||
self.assertEqual(len(keys), len(set(keys)), address)
|
||||
|
||||
def test_no_section_is_shipped_over_nothing(self):
|
||||
"""A heading with no rows under it is dropped by the cascade at read time, so shipping one
|
||||
would mean shipping a row that can never render. Left out at authoring instead -- and read
|
||||
here off the shipped rows, since the cascade would have hidden it either way."""
|
||||
for container, address in every_container():
|
||||
rows = shipped(container, address)
|
||||
parents = {row.parent_key for row in rows}
|
||||
for row in rows:
|
||||
if row.item_type == "Section":
|
||||
self.assertIn(row.key, parents, f"{address}/{row.key}")
|
||||
|
||||
def test_every_parent_key_names_a_section_beside_it(self):
|
||||
"""A row filed under a heading that is not there loses its nesting silently: the resolver
|
||||
promotes an orphan to the top level rather than dropping it."""
|
||||
for container, address in every_container():
|
||||
rows = shipped(container, address)
|
||||
sections = {row.key for row in rows if row.item_type == "Section"}
|
||||
for row in rows:
|
||||
if row.parent_key:
|
||||
self.assertIn(row.parent_key, sections, f"{address}/{row.key}")
|
||||
|
||||
def test_a_real_user_sees_fewer_modules_than_administrator(self):
|
||||
"""The filter is doing something, which is the one thing an Administrator suite cannot
|
||||
show. An `Accounts User` has no reason to be offered `Regional` or `Telephony`."""
|
||||
frappe.set_user("Administrator")
|
||||
everything = len(resolve_navigation(APP)["rail"])
|
||||
|
||||
self.assertLess(len(rail_of(self.user)), everything)
|
||||
|
||||
def test_a_blocked_module_ships_nothing(self):
|
||||
"""The veto on a module-primary rail, which is what this rail is here to exercise.
|
||||
|
||||
`block_modules` gates module-derived items, and a module-primary rail reaches a module
|
||||
through a `Sidebar` item holding `DocType` rows -- so before frappe/frappe#42423 blocking
|
||||
Accounts left all 73 rows and the rail item standing. The block now names the sidebar's
|
||||
*address*, and the rail item goes with it through the cascade it already ran under.
|
||||
"""
|
||||
before = [item["key"] for item in rail_of(self.user)]
|
||||
self.assertIn("accounts", before)
|
||||
|
||||
block("Accounts", self.user)
|
||||
after = rail_of(self.user)
|
||||
|
||||
self.assertEqual([item["key"] for item in after], [key for key in before if key != "accounts"])
|
||||
|
||||
def test_a_blocked_module_takes_its_sidebar_with_it(self):
|
||||
block("Accounts", self.user)
|
||||
frappe.set_user(self.user)
|
||||
|
||||
self.assertNotIn("module_def_accounts", resolve_navigation(APP)["sidebars"])
|
||||
|
||||
def test_a_doctype_in_a_blocked_module_is_still_reachable(self):
|
||||
"""Hiding a module hides the way to a document, never the document. `Sales Invoice` is
|
||||
an Accounts doctype and ERPNext's Selling sidebar links it, which is one of the 101 rows
|
||||
that point outside their own module."""
|
||||
block("Accounts", self.user)
|
||||
frappe.set_user(self.user)
|
||||
sidebars = resolve_navigation(APP)["sidebars"]
|
||||
|
||||
self.assertTrue(
|
||||
any(
|
||||
row.get("link_to") == "Sales Invoice"
|
||||
for address, rows in sidebars.items()
|
||||
if address != "module_def_accounts"
|
||||
for row in rows
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
def every_container() -> list[tuple[str, str]]:
|
||||
"""Every standard record ERPNext ships, as `(doctype, name)`."""
|
||||
return [("Rail", "erpnext")] + [
|
||||
("Sidebar", name)
|
||||
for name in frappe.get_all("Sidebar", filters={"app": APP, "standard": 1}, pluck="name")
|
||||
]
|
||||
|
||||
|
||||
def shipped(container: str, address: str) -> list:
|
||||
"""The rows as authored, before the resolver has filtered or cascaded anything away.
|
||||
|
||||
The distinction matters for every fixture assertion below: `resolve_navigation` drops a row
|
||||
naming a doctype that is gone, a heading over nothing and a linked item whose sidebar
|
||||
emptied. Read against its output, a test for those is asserting that the resolver works.
|
||||
"""
|
||||
return frappe.get_all(
|
||||
"Navigation Item",
|
||||
filters={
|
||||
"parenttype": container,
|
||||
"parent": address,
|
||||
"parentfield": "items" if container == "Rail" else "navigation_items",
|
||||
},
|
||||
fields=["key", "parent_key", "item_type", "link_doctype", "link_to"],
|
||||
order_by="idx asc",
|
||||
)
|
||||
|
||||
|
||||
def block(module: str, user: str):
|
||||
"""Withdraw a module from one person, the way an administrator does on the User form.
|
||||
|
||||
`tabBlock Module` holds no rows on either bench site, so the veto cannot be observed without
|
||||
seeding one -- which is why it had never been watched on a real rail.
|
||||
"""
|
||||
frappe.set_user("Administrator")
|
||||
doc = frappe.get_doc("User", user)
|
||||
doc.append("block_modules", {"module": module})
|
||||
doc.save(ignore_permissions=True)
|
||||
frappe.clear_cache(user=user)
|
||||
frappe.set_user(user)
|
||||
|
||||
|
||||
def make_erpnext_user(email: str) -> str:
|
||||
"""Somebody who works in a few of ERPNext's modules and not in the rest of them."""
|
||||
if frappe.db.exists("User", email):
|
||||
return email
|
||||
|
||||
user = frappe.get_doc(
|
||||
{
|
||||
"doctype": "User",
|
||||
"email": email,
|
||||
"first_name": "ERPNext Navigation",
|
||||
"user_type": "System User",
|
||||
"roles": [{"role": "Accounts User"}, {"role": "Stock User"}, {"role": "Sales User"}],
|
||||
}
|
||||
).insert(ignore_permissions=True)
|
||||
|
||||
return user.name
|
||||
Reference in New Issue
Block a user