From e71e08959f596355961da6408c56b32910f183ef Mon Sep 17 00:00:00 2001 From: Raffael Meyer <14891507+barredterra@users.noreply.github.com> Date: Sat, 22 Aug 2026 00:28:55 +0200 Subject: [PATCH] refactor: use Meta.get_translated_label (#58335) --- .../accounts_settings/accounts_settings.py | 11 ++----- .../financial_report_validation.py | 4 +-- erpnext/accounts/doctype/gl_entry/gl_entry.py | 2 +- .../doctype/payment_entry/payment_entry.py | 8 ++--- .../payment_reconciliation.py | 6 +--- .../doctype/pricing_rule/pricing_rule.py | 2 +- erpnext/accounts/services/party_validation.py | 2 +- erpnext/accounts/utils.py | 2 +- erpnext/controllers/accounts_controller.py | 2 +- erpnext/controllers/buying_controller.py | 16 ++++------ .../controllers/sales_and_purchase_return.py | 6 ++-- erpnext/controllers/selling_controller.py | 9 ++---- erpnext/controllers/stock_controller.py | 2 +- erpnext/controllers/taxes_and_totals.py | 2 +- erpnext/manufacturing/doctype/bom/bom.py | 2 +- .../doctype/work_order/services/status.py | 2 +- .../doctype/work_order/work_order.py | 2 +- .../bom_comparison_tool.js | 4 +-- erpnext/projects/doctype/task/task.py | 4 +-- erpnext/public/js/controllers/buying.js | 2 +- .../public/js/controllers/taxes_and_totals.js | 8 ++--- erpnext/public/js/controllers/transaction.js | 12 +++---- erpnext/public/js/queries.js | 28 ++++++++-------- erpnext/public/js/utils/sales_common.js | 12 +++---- erpnext/selling/doctype/quotation/mapper.py | 4 +-- .../selling_settings/selling_settings.py | 9 ++---- erpnext/setup/doctype/company/company.py | 2 +- .../doctype/email_digest/email_digest.py | 32 +++++++++---------- erpnext/stock/doctype/item/item.py | 17 +++------- .../item_alternative/item_alternative.py | 2 +- .../stock/doctype/stock_entry/stock_entry.py | 5 ++- .../stock_ledger_entry/stock_ledger_entry.py | 2 +- .../stock_reservation_entry.py | 2 +- .../doctype/stock_settings/stock_settings.py | 9 ++---- erpnext/stock/get_item_details.py | 4 +-- .../includes/item_table_description.html | 2 +- .../print_formats/includes/taxes.html | 2 +- .../includes/taxes_and_charges.html | 2 +- 38 files changed, 95 insertions(+), 149 deletions(-) diff --git a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py index 928d621677d..f742cb30efe 100644 --- a/erpnext/accounts/doctype/accounts_settings/accounts_settings.py +++ b/erpnext/accounts/doctype/accounts_settings/accounts_settings.py @@ -204,15 +204,8 @@ class AccountsSettings(Document): if self.add_taxes_from_item_tax_template and self.add_taxes_from_taxes_and_charges_template: frappe.throw( _("You cannot enable both the settings '{0}' and '{1}'.").format( - frappe.bold( - _(self.meta.get_label("add_taxes_from_item_tax_template"), context=self.doctype) - ), - frappe.bold( - _( - self.meta.get_label("add_taxes_from_taxes_and_charges_template"), - context=self.doctype, - ) - ), + frappe.bold(self.meta.get_translated_label("add_taxes_from_item_tax_template")), + frappe.bold(self.meta.get_translated_label("add_taxes_from_taxes_and_charges_template")), ), title=_("Auto Tax Settings Error"), ) diff --git a/erpnext/accounts/doctype/financial_report_template/financial_report_validation.py b/erpnext/accounts/doctype/financial_report_template/financial_report_validation.py index 850be343385..adbef35960b 100644 --- a/erpnext/accounts/doctype/financial_report_template/financial_report_validation.py +++ b/erpnext/accounts/doctype/financial_report_template/financial_report_validation.py @@ -443,9 +443,7 @@ class AccountFilterValidator(Validator): return "Field and operator must be strings" display = ( - field - if advanced_filtering - else _(self.account_meta.get_label(field), context=self.account_meta.name) + field if advanced_filtering else self.account_meta.get_translated_label(field) ) or field if field not in account_fields: diff --git a/erpnext/accounts/doctype/gl_entry/gl_entry.py b/erpnext/accounts/doctype/gl_entry/gl_entry.py index 7f4dae5f544..76faae261cd 100644 --- a/erpnext/accounts/doctype/gl_entry/gl_entry.py +++ b/erpnext/accounts/doctype/gl_entry/gl_entry.py @@ -134,7 +134,7 @@ class GLEntry(Document): mandatory = ["account", "voucher_type", "voucher_no", "company"] for k in mandatory: if not self.get(k): - frappe.throw(_("{0} is required").format(_(self.meta.get_label(k), context=self.doctype))) + frappe.throw(_("{0} is required").format(self.meta.get_translated_label(k))) if not self.is_cancelled and not (self.party_type and self.party): account_type = frappe.get_cached_value("Account", self.account, "account_type") diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py index 7f96ae26210..247a9f9fdd3 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -278,7 +278,7 @@ class PaymentEntry(AccountsController): if not liability_account: throw( _("Please set default {0} in Company {1}").format( - frappe.bold(_(frappe.get_meta("Company").get_label(fieldname), context="Company")), + frappe.bold(frappe.get_meta("Company").get_translated_label(fieldname)), frappe.bold(self.company), ) ) @@ -662,9 +662,7 @@ class PaymentEntry(AccountsController): def validate_mandatory(self): for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"): if not self.get(field): - frappe.throw( - _("{0} is mandatory").format(_(self.meta.get_label(field), context=self.doctype)) - ) + frappe.throw(_("{0} is mandatory").format(self.meta.get_translated_label(field))) def validate_reference_documents(self): valid_reference_doctypes = self.get_valid_reference_doctypes() @@ -1154,7 +1152,7 @@ class PaymentEntry(AccountsController): if value: continue - label = _(frappe.get_meta("Company").get_label(fieldname), context="Company") + label = frappe.get_meta("Company").get_translated_label(fieldname) return frappe.msgprint( _("Please set {0} in Company {1} to account for Exchange Gain / Loss").format( label, get_link_to_form("Company", self.company) diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py index f3a33679871..b2c43e4b2ea 100644 --- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py +++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py @@ -647,11 +647,7 @@ class PaymentReconciliation(Document): def check_mandatory_to_fetch(self): for fieldname in ["company", "party_type", "party", "receivable_payable_account"]: if not self.get(fieldname): - frappe.throw( - _("Please select {0} first").format( - _(self.meta.get_label(fieldname), context=self.doctype) - ) - ) + frappe.throw(_("Please select {0} first").format(self.meta.get_translated_label(fieldname))) def validate_entries(self): if not self.get("invoices"): diff --git a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py index 33e5da70885..fd43f5b58d5 100644 --- a/erpnext/accounts/doctype/pricing_rule/pricing_rule.py +++ b/erpnext/accounts/doctype/pricing_rule/pricing_rule.py @@ -188,7 +188,7 @@ class PricingRule(Document): tocheck = frappe.scrub(self.get("applicable_for", "")) if tocheck and not self.get(tocheck): throw( - _("{0} is required").format(_(self.meta.get_label(tocheck), context=self.doctype)), + _("{0} is required").format(self.meta.get_translated_label(tocheck)), frappe.MandatoryError, ) diff --git a/erpnext/accounts/services/party_validation.py b/erpnext/accounts/services/party_validation.py index bf80ecc30db..4175bde3317 100644 --- a/erpnext/accounts/services/party_validation.py +++ b/erpnext/accounts/services/party_validation.py @@ -183,7 +183,7 @@ class PartyValidator: ): frappe.throw( _("{0} does not belong to the Company {1}.").format( - _(doc.meta.get_label(field), context=doc.doctype), frappe.bold(doc.company) + doc.meta.get_translated_label(field), frappe.bold(doc.company) ) ) diff --git a/erpnext/accounts/utils.py b/erpnext/accounts/utils.py index 71eb4a92589..c127dcabda3 100644 --- a/erpnext/accounts/utils.py +++ b/erpnext/accounts/utils.py @@ -1168,7 +1168,7 @@ def get_company_default(company: str, fieldname: str, ignore_validation: bool = if not ignore_validation and not value: throw( _("Please set default {0} in Company {1}").format( - _(frappe.get_meta("Company").get_label(fieldname), context="Company"), company + frappe.get_meta("Company").get_translated_label(fieldname), company ) ) diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py index 4646055c49f..0037935d399 100644 --- a/erpnext/controllers/accounts_controller.py +++ b/erpnext/controllers/accounts_controller.py @@ -524,7 +524,7 @@ class AccountsController(TransactionBase): _( "Please set {0} to {1}, the same account that was used in the original invoice {2}." ).format( - frappe.bold(_(self.meta.get_label(cr_dr_account_field), context=self.doctype)), + frappe.bold(self.meta.get_translated_label(cr_dr_account_field)), frappe.bold(original_account), frappe.bold(self.return_against), ) diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py index b5a65c2f9cb..33f36c56280 100644 --- a/erpnext/controllers/buying_controller.py +++ b/erpnext/controllers/buying_controller.py @@ -304,8 +304,8 @@ class BuyingController(SubcontractingController): frappe.throw( _("Row #{idx}: {from_warehouse_field} and {to_warehouse_field} cannot be same.").format( idx=item.idx, - from_warehouse_field=_(item.meta.get_label("from_warehouse"), context=item.doctype), - to_warehouse_field=_(item.meta.get_label("warehouse"), context=item.doctype), + from_warehouse_field=item.meta.get_translated_label("from_warehouse"), + to_warehouse_field=item.meta.get_translated_label("warehouse"), ) ) @@ -710,7 +710,7 @@ class BuyingController(SubcontractingController): frappe.throw( _("Row #{idx}: {field_label} is mandatory.").format( idx=d.idx, - field_label=_(d.meta.get_label("conversion_factor"), context=d.doctype), + field_label=d.meta.get_translated_label("conversion_factor"), ) ) d.stock_qty = flt(d.qty) * flt(d.conversion_factor) @@ -757,9 +757,7 @@ class BuyingController(SubcontractingController): frappe.throw( _("Row #{idx}: {field_label} can not be negative for item {item_code}.").format( idx=item_row["idx"], - field_label=_( - frappe.get_meta(item_row.doctype).get_label(fieldname), context=item_row.doctype - ), + field_label=frappe.get_meta(item_row.doctype).get_translated_label(fieldname), item_code=frappe.bold(item_row["item_code"]), ) ) @@ -1212,14 +1210,14 @@ class BuyingController(SubcontractingController): frappe.throw( _("Row #{idx}: {schedule_date} cannot be before {transaction_date}.").format( idx=d.idx, - schedule_date=_(self.meta.get_label("schedule_date"), context=self.doctype), - transaction_date=_(self.meta.get_label("transaction_date"), context=self.doctype), + schedule_date=self.meta.get_translated_label("schedule_date"), + transaction_date=self.meta.get_translated_label("transaction_date"), ) ) else: frappe.throw( _("Please enter the {schedule_date}.").format( - schedule_date=_(self.meta.get_label("schedule_date"), context=self.doctype) + schedule_date=self.meta.get_translated_label("schedule_date") ) ) diff --git a/erpnext/controllers/sales_and_purchase_return.py b/erpnext/controllers/sales_and_purchase_return.py index d3798303c07..abaa081d4fe 100644 --- a/erpnext/controllers/sales_and_purchase_return.py +++ b/erpnext/controllers/sales_and_purchase_return.py @@ -32,9 +32,7 @@ def validate_return(doc): def validate_return_against(doc): if not frappe.db.exists(doc.doctype, doc.return_against): frappe.throw( - _("Invalid {0}: {1}").format( - _(doc.meta.get_label("return_against"), context=doc.doctype), doc.return_against - ) + _("Invalid {0}: {1}").format(doc.meta.get_translated_label("return_against"), doc.return_against) ) else: ref_doc = frappe.get_doc(doc.doctype, doc.return_against) @@ -44,7 +42,7 @@ def validate_return_against(doc): if ref_doc.get(party_type) != doc.get(party_type): frappe.throw( _("The {0} {1} does not match with the {0} {2} in the {3} {4}").format( - _(doc.meta.get_label(party_type), context=doc.doctype), + doc.meta.get_translated_label(party_type), bold(doc.get(party_type)), bold(ref_doc.get(party_type)), ref_doc.doctype, diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py index 549fb12d0e6..0970a6f0db7 100644 --- a/erpnext/controllers/selling_controller.py +++ b/erpnext/controllers/selling_controller.py @@ -215,7 +215,7 @@ class SellingController(StockController): if not (0 <= self.commission_rate <= 100.0): throw( "{} {}".format( - _(self.meta.get_label("commission_rate"), context=self.doctype), + self.meta.get_translated_label("commission_rate"), _("must be between 0 and 100"), ) ) @@ -306,12 +306,7 @@ class SellingController(StockController): bold(ref_rate_field), bold("net rate"), bold(rate), - bold( - _( - frappe.get_meta("Selling Settings").get_label("validate_selling_price"), - context="Selling Settings", - ) - ), + bold(frappe.get_meta("Selling Settings").get_translated_label("validate_selling_price")), get_link_to_form("Selling Settings"), ), title=_("Invalid Selling Price"), diff --git a/erpnext/controllers/stock_controller.py b/erpnext/controllers/stock_controller.py index 583ea7dbb91..f5723bec5de 100644 --- a/erpnext/controllers/stock_controller.py +++ b/erpnext/controllers/stock_controller.py @@ -103,7 +103,7 @@ class StockController(AccountsController): _("Row #{0}: Item {1} has zero rate but '{2}' is not enabled.").format( item.idx, frappe.bold(item.item_code), - _(item.meta.get_label("allow_zero_valuation_rate"), context=item.doctype), + item.meta.get_translated_label("allow_zero_valuation_rate"), ), indicator="orange", ) diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py index b2dd3adb202..dbf8ba92354 100644 --- a/erpnext/controllers/taxes_and_totals.py +++ b/erpnext/controllers/taxes_and_totals.py @@ -157,7 +157,7 @@ class calculate_taxes_and_totals: validate_conversion_rate( self.doc.currency, self.doc.conversion_rate, - _(self.doc.meta.get_label("conversion_rate"), context=self.doc.doctype), + self.doc.meta.get_translated_label("conversion_rate"), self.doc.company, ) diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py index 109a3d02876..c916e2c7b32 100644 --- a/erpnext/manufacturing/doctype/bom/bom.py +++ b/erpnext/manufacturing/doctype/bom/bom.py @@ -1019,7 +1019,7 @@ class BOM(WebsiteGenerator): if not self.transfer_material_against and not self.track_semi_finished_goods and not self.is_new(): frappe.throw( _("Setting {0} is required").format( - _(self.meta.get_label("transfer_material_against"), context=self.doctype) + self.meta.get_translated_label("transfer_material_against") ), title=_("Missing value"), ) diff --git a/erpnext/manufacturing/doctype/work_order/services/status.py b/erpnext/manufacturing/doctype/work_order/services/status.py index bac42b203a2..6d8dd97ea41 100644 --- a/erpnext/manufacturing/doctype/work_order/services/status.py +++ b/erpnext/manufacturing/doctype/work_order/services/status.py @@ -203,7 +203,7 @@ class StatusService: if qty > completed_qty: frappe.throw( _("{0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3}").format( - _(self.doc.meta.get_label(fieldname), context=self.doc.doctype), + self.doc.meta.get_translated_label(fieldname), qty, completed_qty, self.doc.name, diff --git a/erpnext/manufacturing/doctype/work_order/work_order.py b/erpnext/manufacturing/doctype/work_order/work_order.py index 65dee07ddea..c8210857437 100644 --- a/erpnext/manufacturing/doctype/work_order/work_order.py +++ b/erpnext/manufacturing/doctype/work_order/work_order.py @@ -942,7 +942,7 @@ class WorkOrder(Document): if not self.transfer_material_against: frappe.throw( _("Setting {0} is required").format( - _(self.meta.get_label("transfer_material_against"), context=self.doctype) + self.meta.get_translated_label("transfer_material_against") ), title=_("Missing value"), ) diff --git a/erpnext/manufacturing/page/bom_comparison_tool/bom_comparison_tool.js b/erpnext/manufacturing/page/bom_comparison_tool/bom_comparison_tool.js index dcca53c1016..9124020aa32 100644 --- a/erpnext/manufacturing/page/bom_comparison_tool/bom_comparison_tool.js +++ b/erpnext/manufacturing/page/bom_comparison_tool/bom_comparison_tool.js @@ -95,7 +95,7 @@ erpnext.BOMComparisonTool = class BOMComparisonTool { let [fieldname, value1, value2] = change; return ` - ${__(frappe.meta.get_label(doctype, fieldname), null, doctype)} + ${frappe.meta.get_translated_label(doctype, fieldname)} ${frappe.utils.escape_html(cstr(value1))} ${frappe.utils.escape_html(cstr(value2))} @@ -146,7 +146,7 @@ erpnext.BOMComparisonTool = class BOMComparisonTool { return ` ${th} - ${__(frappe.meta.get_label(child_doctype, fieldname), null, child_doctype)} + ${frappe.meta.get_translated_label(child_doctype, fieldname)} ${frappe.utils.escape_html(cstr(value1))} ${frappe.utils.escape_html(cstr(value2))} diff --git a/erpnext/projects/doctype/task/task.py b/erpnext/projects/doctype/task/task.py index 3502cca8275..f3b6503a62e 100755 --- a/erpnext/projects/doctype/task/task.py +++ b/erpnext/projects/doctype/task/task.py @@ -136,7 +136,7 @@ class Task(NestedSet): frappe.throw( _("{0}'s {1} cannot be after {2}'s Expected End Date.").format( get_link_to_form("Task", self.name), - _(self.meta.get_label(fieldname), context=self.doctype), + self.meta.get_translated_label(fieldname), get_link_to_form("Project", self.project), ), frappe.exceptions.InvalidDates, @@ -146,7 +146,7 @@ class Task(NestedSet): frappe.throw( _("{0}'s {1} cannot be before {2}'s Expected Start Date.").format( get_link_to_form("Task", self.name), - _(self.meta.get_label(fieldname), context=self.doctype), + self.meta.get_translated_label(fieldname), get_link_to_form("Project", self.project), ), frappe.exceptions.InvalidDates, diff --git a/erpnext/public/js/controllers/buying.js b/erpnext/public/js/controllers/buying.js index f5a9da2ad64..e89ee39ac49 100644 --- a/erpnext/public/js/controllers/buying.js +++ b/erpnext/public/js/controllers/buying.js @@ -263,7 +263,7 @@ erpnext.buying = { frappe.msgprint( __("Row #{0}: {1} can not be negative for item {2}", [ item.idx, - __(frappe.meta.get_label(cdt, fieldnames[i], cdn), null, cdt), + frappe.meta.get_translated_label(cdt, fieldnames[i], cdn), item.item_code, ]) ); diff --git a/erpnext/public/js/controllers/taxes_and_totals.js b/erpnext/public/js/controllers/taxes_and_totals.js index 60aef4dbba7..eabfdc47b92 100644 --- a/erpnext/public/js/controllers/taxes_and_totals.js +++ b/erpnext/public/js/controllers/taxes_and_totals.js @@ -122,10 +122,10 @@ erpnext.taxes_and_totals = class TaxesAndTotals extends erpnext.payments { this.frm.doc.conversion_rate, cur_frm ? precision("conversion_rate") : 9 ); - var conversion_rate_label = __( - frappe.meta.get_label(this.frm.doc.doctype, "conversion_rate", this.frm.doc.name), - null, - this.frm.doc.doctype + var conversion_rate_label = frappe.meta.get_translated_label( + this.frm.doc.doctype, + "conversion_rate", + this.frm.doc.name ); var company_currency = this.get_company_currency(); diff --git a/erpnext/public/js/controllers/transaction.js b/erpnext/public/js/controllers/transaction.js index 89877b5db17..6acc08e92de 100644 --- a/erpnext/public/js/controllers/transaction.js +++ b/erpnext/public/js/controllers/transaction.js @@ -1438,17 +1438,17 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe ) { const to_clear = []; if (doc.payment_terms_template) { - to_clear.push(__(frappe.meta.get_label(cdt, "payment_terms_template"), null, cdt)); + to_clear.push(frappe.meta.get_translated_label(cdt, "payment_terms_template")); } if (doc.payment_schedule?.length) { - to_clear.push(__(frappe.meta.get_label(cdt, "payment_schedule"), null, cdt)); + to_clear.push(frappe.meta.get_translated_label(cdt, "payment_schedule")); } frappe.confirm( __( "For the new {0} to take effect, would you like to clear the current {1}?", - [__(frappe.meta.get_label(cdt, "due_date"), null, cdt), frappe.utils.comma_and(to_clear)], + [frappe.meta.get_translated_label(cdt, "due_date"), frappe.utils.comma_and(to_clear)], "Clear payment terms template and/or payment schedule when due date is changed" ), () => { @@ -2646,11 +2646,7 @@ erpnext.TransactionController = class TransactionController extends erpnext.taxe if (!me.frm.doc[fieldname]) { frappe.msgprint( __("Please specify {0}. It is needed to fetch Item Details.", [ - __( - frappe.meta.get_label(me.frm.doc.doctype, fieldname, me.frm.doc.name), - null, - me.frm.doc.doctype - ), + frappe.meta.get_translated_label(me.frm.doc.doctype, fieldname, me.frm.doc.name), ]) ); valid = false; diff --git a/erpnext/public/js/queries.js b/erpnext/public/js/queries.js index f374d4a6817..eba0bdabfb9 100644 --- a/erpnext/public/js/queries.js +++ b/erpnext/public/js/queries.js @@ -46,7 +46,7 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field("customer"); frappe.show_alert({ message: __("Please set {0} first.", [ - __(frappe.meta.get_label(doc.doctype, "customer", doc.name), null, doc.doctype), + frappe.meta.get_translated_label(doc.doctype, "customer", doc.name), ]), indicator: "orange", }); @@ -61,10 +61,10 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field(frappe.dynamic_link.fieldname); frappe.show_alert({ message: __("Please set {0} first.", [ - __( - frappe.meta.get_label(doc.doctype, frappe.dynamic_link.fieldname, doc.name), - null, - doc.doctype + frappe.meta.get_translated_label( + doc.doctype, + frappe.dynamic_link.fieldname, + doc.name ), ]), indicator: "orange", @@ -84,9 +84,7 @@ $.extend(erpnext.queries, { company_contact_query: function (doc) { if (!doc.company) { frappe.throw( - __("Please set {0}", [ - __(frappe.meta.get_label(doc.doctype, "company", doc.name), null, doc.doctype), - ]) + __("Please set {0}", [frappe.meta.get_translated_label(doc.doctype, "company", doc.name)]) ); } @@ -102,10 +100,10 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field(frappe.dynamic_link.fieldname); frappe.show_alert({ message: __("Please set {0} first.", [ - __( - frappe.meta.get_label(doc.doctype, frappe.dynamic_link.fieldname, doc.name), - null, - doc.doctype + frappe.meta.get_translated_label( + doc.doctype, + frappe.dynamic_link.fieldname, + doc.name ), ]), indicator: "orange", @@ -127,7 +125,7 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field("company"); frappe.show_alert({ message: __("Please set {0} first.", [ - __(frappe.meta.get_label(doc.doctype, "company", doc.name), null, doc.doctype), + frappe.meta.get_translated_label(doc.doctype, "company", doc.name), ]), indicator: "orange", }); @@ -158,7 +156,7 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field("supplier"); frappe.show_alert({ message: __("Please set {0} first.", [ - __(frappe.meta.get_label(doc.doctype, "supplier", doc.name), null, doc.doctype), + frappe.meta.get_translated_label(doc.doctype, "supplier", doc.name), ]), indicator: "orange", }); @@ -172,7 +170,7 @@ $.extend(erpnext.queries, { cur_frm.scroll_to_field("lead"); frappe.show_alert({ message: __("Please specify a {0} first.", [ - __(frappe.meta.get_label(doc.doctype, "lead", doc.name), null, doc.doctype), + frappe.meta.get_translated_label(doc.doctype, "lead", doc.name), ]), indicator: "orange", }); diff --git a/erpnext/public/js/utils/sales_common.js b/erpnext/public/js/utils/sales_common.js index 68a6bc8de0b..9e9750174b8 100644 --- a/erpnext/public/js/utils/sales_common.js +++ b/erpnext/public/js/utils/sales_common.js @@ -353,14 +353,10 @@ erpnext.sales_common = { this.frm.set_value("commission_rate", 100); frappe.throw( __("{0} cannot be greater than 100", [ - __( - frappe.meta.get_label( - this.frm.doc.doctype, - "commission_rate", - this.frm.doc.name - ), - null, - this.frm.doc.doctype + frappe.meta.get_translated_label( + this.frm.doc.doctype, + "commission_rate", + this.frm.doc.name ), ]) ); diff --git a/erpnext/selling/doctype/quotation/mapper.py b/erpnext/selling/doctype/quotation/mapper.py index 732cb475792..c25877da11b 100644 --- a/erpnext/selling/doctype/quotation/mapper.py +++ b/erpnext/selling/doctype/quotation/mapper.py @@ -257,9 +257,7 @@ def handle_mandatory_error(e, customer, lead_name): from frappe.utils import get_link_to_form mandatory_fields = e.args[0].split(":")[1].split(",") - mandatory_fields = [ - _(customer.meta.get_label(field.strip()), context=customer.doctype) for field in mandatory_fields - ] + mandatory_fields = [customer.meta.get_translated_label(field.strip()) for field in mandatory_fields] frappe.local.message_log = [] message = _("Could not auto create Customer due to the following missing mandatory field(s):") + "
" diff --git a/erpnext/selling/doctype/selling_settings/selling_settings.py b/erpnext/selling/doctype/selling_settings/selling_settings.py index daf185a9e0d..ee10027005d 100644 --- a/erpnext/selling/doctype/selling_settings/selling_settings.py +++ b/erpnext/selling/doctype/selling_settings/selling_settings.py @@ -118,14 +118,9 @@ class SellingSettings(Document): _( "You have enabled {0} and {1} in {2}. This can lead to prices from the default price list being inserted into the transaction price list." ).format( + "{}".format(self.meta.get_translated_label("fallback_to_default_price_list")), "{}".format( - _(self.meta.get_label("fallback_to_default_price_list"), context=self.doctype) - ), - "{}".format( - _( - stock_meta.get_label("auto_insert_price_list_rate_if_missing"), - context=stock_meta.name, - ) + stock_meta.get_translated_label("auto_insert_price_list_rate_if_missing") ), frappe.bold(_("Stock Settings")), ) diff --git a/erpnext/setup/doctype/company/company.py b/erpnext/setup/doctype/company/company.py index f4c43106d54..538025f9648 100644 --- a/erpnext/setup/doctype/company/company.py +++ b/erpnext/setup/doctype/company/company.py @@ -323,7 +323,7 @@ class Company(NestedSet): if not details: continue - label = _(self.meta.get_label(fieldname)) + label = self.meta.get_translated_label(fieldname) if details.is_group: frappe.throw( diff --git a/erpnext/setup/doctype/email_digest/email_digest.py b/erpnext/setup/doctype/email_digest/email_digest.py index 3b28ed93d36..e9a93ae0a59 100644 --- a/erpnext/setup/doctype/email_digest/email_digest.py +++ b/erpnext/setup/doctype/email_digest/email_digest.py @@ -393,7 +393,7 @@ class EmailDigest(Document): label = get_link_to_report( "General Ledger", - _(self.meta.get_label("income"), context=self.doctype), + self.meta.get_translated_label("income"), filters={ "from_date": self.future_from_date, "to_date": self.future_to_date, @@ -425,7 +425,7 @@ class EmailDigest(Document): filters = {"currency": self.currency} label = get_link_to_report( "Profit and Loss Statement", - label=_(self.meta.get_label(root_type + "_year_to_date"), context=self.doctype), + label=self.meta.get_translated_label(root_type + "_year_to_date"), filters=filters, ) @@ -433,7 +433,7 @@ class EmailDigest(Document): filters = {"currency": self.currency} label = get_link_to_report( "Profit and Loss Statement", - label=_(self.meta.get_label(root_type + "_year_to_date"), context=self.doctype), + label=self.meta.get_translated_label(root_type + "_year_to_date"), filters=filters, ) @@ -464,7 +464,7 @@ class EmailDigest(Document): label = get_link_to_report( "General Ledger", - _(self.meta.get_label("expenses_booked"), context=self.doctype), + self.meta.get_translated_label("expenses_booked"), filters={ "company": self.company, "from_date": self.future_from_date, @@ -506,7 +506,7 @@ class EmailDigest(Document): label = get_link_to_report( "Sales Order", - label=_(self.meta.get_label("sales_orders_to_bill"), context=self.doctype), + label=self.meta.get_translated_label("sales_orders_to_bill"), report_type="Report Builder", doctype="Sales Order", filters={ @@ -540,7 +540,7 @@ class EmailDigest(Document): label = get_link_to_report( "Sales Order", - label=_(self.meta.get_label("sales_orders_to_deliver"), context=self.doctype), + label=self.meta.get_translated_label("sales_orders_to_deliver"), report_type="Report Builder", doctype="Sales Order", filters={ @@ -574,7 +574,7 @@ class EmailDigest(Document): label = get_link_to_report( "Purchase Order", - label=_(self.meta.get_label("purchase_orders_to_receive"), context=self.doctype), + label=self.meta.get_translated_label("purchase_orders_to_receive"), report_type="Report Builder", doctype="Purchase Order", filters={ @@ -608,7 +608,7 @@ class EmailDigest(Document): label = get_link_to_report( "Purchase Order", - label=_(self.meta.get_label("purchase_orders_to_bill"), context=self.doctype), + label=self.meta.get_translated_label("purchase_orders_to_bill"), report_type="Report Builder", doctype="Purchase Order", filters={ @@ -661,7 +661,7 @@ class EmailDigest(Document): } label = get_link_to_report( "Account Balance", - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), filters=filters, ) else: @@ -673,7 +673,7 @@ class EmailDigest(Document): } label = get_link_to_report( "Account Balance", - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), filters=filters, ) @@ -682,17 +682,17 @@ class EmailDigest(Document): if account_type == "Payable": label = get_link_to_report( "Accounts Payable", - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), filters={"report_date": self.future_to_date, "company": self.company}, ) elif account_type == "Receivable": label = get_link_to_report( "Accounts Receivable", - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), filters={"report_date": self.future_to_date, "company": self.company}, ) else: - label = _(self.meta.get_label(fieldname), context=self.doctype) + label = self.meta.get_translated_label(fieldname) return {"label": label, "value": balance, "last_value": prev_balance, "count": count} @@ -764,7 +764,7 @@ class EmailDigest(Document): )[0] return { - "label": _(self.meta.get_label(fieldname), context=self.doctype), + "label": self.meta.get_translated_label(fieldname), "value": value, "billed_value": billed_value, "delivered_value": delivered_value, @@ -797,7 +797,7 @@ class EmailDigest(Document): label = get_link_to_report( "Quotation", - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), report_type="Report Builder", doctype="Quotation", filters={ @@ -828,7 +828,7 @@ class EmailDigest(Document): label = get_link_to_report( doc_type, - label=_(self.meta.get_label(fieldname), context=self.doctype), + label=self.meta.get_translated_label(fieldname), report_type="Report Builder", filters=filters, doctype=doc_type, diff --git a/erpnext/stock/doctype/item/item.py b/erpnext/stock/doctype/item/item.py index 00f67f5e7d2..9de827be31a 100644 --- a/erpnext/stock/doctype/item/item.py +++ b/erpnext/stock/doctype/item/item.py @@ -272,10 +272,7 @@ class Item(Document): _( 'Image in the description has been removed. To disable this behavior, uncheck "{0}" in {1}.' ).format( - _( - frappe.get_meta("Stock Settings").get_label("clean_description_html"), - context="Stock Settings", - ), + frappe.get_meta("Stock Settings").get_translated_label("clean_description_html"), get_link_to_form("Stock Settings"), ), alert=True, @@ -427,8 +424,8 @@ class Item(Document): frappe.throw( _("Taxes row #{0}: {1} cannot be smaller than {2}").format( tax.idx, - bold(_(tax.meta.get_label("maximum_net_rate"), context=tax.doctype)), - bold(_(tax.meta.get_label("minimum_net_rate"), context=tax.doctype)), + bold(tax.meta.get_translated_label("maximum_net_rate")), + bold(tax.meta.get_translated_label("minimum_net_rate")), ) ) @@ -705,9 +702,7 @@ class Item(Document): if new_properties != [cstr(self.get(field)) for field in field_list]: msg = _("To merge, following properties must be same for both items") - msg += ": \n" + ", ".join( - [_(self.meta.get_label(fld), context=self.doctype) for fld in field_list] - ) + msg += ": \n" + ", ".join([self.meta.get_translated_label(fld) for fld in field_list]) frappe.throw(msg, title=_("Cannot Merge"), exc=DataValidationError) def validate_duplicate_product_bundles_before_merge(self, old_name, new_name): @@ -1139,9 +1134,7 @@ class Item(Document): return if linked_doc := self._get_linked_submitted_documents(changed_fields): - changed_field_labels = [ - frappe.bold(_(self.meta.get_label(f), context=self.doctype)) for f in changed_fields - ] + changed_field_labels = [frappe.bold(self.meta.get_translated_label(f)) for f in changed_fields] msg = _( "As there are existing submitted transactions against item {0}, you can not change the value of {1}." ).format(self.name, ", ".join(changed_field_labels)) diff --git a/erpnext/stock/doctype/item_alternative/item_alternative.py b/erpnext/stock/doctype/item_alternative/item_alternative.py index 8d8fce14dcc..5a64c4be584 100644 --- a/erpnext/stock/doctype/item_alternative/item_alternative.py +++ b/erpnext/stock/doctype/item_alternative/item_alternative.py @@ -56,7 +56,7 @@ class ItemAlternative(Document): frappe.msgprint( _("The value of {0} differs between Items {1} and {2}").format( - frappe.bold(_(item_meta.get_label(field), context="Item")), + frappe.bold(item_meta.get_translated_label(field)), frappe.bold(self.alternative_item_code), frappe.bold(self.item_code), ), diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py index 207f2c4804e..6f5ba8abb61 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.py +++ b/erpnext/stock/doctype/stock_entry/stock_entry.py @@ -805,9 +805,8 @@ class StockEntry(StockController, SubcontractingInwardController): def _validate_no_raw_materials_in_manufacture_entry(self, settings): for item in self.items: if not item.is_finished_item and not item.secondary_item_type and not item.is_legacy_scrap_item: - label = _( - frappe.get_meta(settings.doctype).get_label("get_rm_cost_from_consumption_entry"), - context=settings.doctype, + label = frappe.get_meta(settings.doctype).get_translated_label( + "get_rm_cost_from_consumption_entry" ) frappe.throw( _( diff --git a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py index ae346a313dd..45cdd579b96 100644 --- a/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py +++ b/erpnext/stock/doctype/stock_ledger_entry/stock_ledger_entry.py @@ -195,7 +195,7 @@ class StockLedgerEntry(Document): mandatory = ["warehouse", "posting_date", "voucher_type", "voucher_no", "company"] for k in mandatory: if not self.get(k): - frappe.throw(_("{0} is required").format(_(self.meta.get_label(k), context=self.doctype))) + frappe.throw(_("{0} is required").format(self.meta.get_translated_label(k))) if self.voucher_type != "Stock Reconciliation" and not self.actual_qty: frappe.throw(_("Actual Qty is mandatory")) diff --git a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py index 2e88a83127a..30acc94ebe2 100644 --- a/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py +++ b/erpnext/stock/doctype/stock_reservation_entry/stock_reservation_entry.py @@ -245,7 +245,7 @@ class StockReservationEntry(Document): ] for d in mandatory: if not self.get(d): - msg = _("{0} is required").format(_(self.meta.get_label(d), context=self.doctype)) + msg = _("{0} is required").format(self.meta.get_translated_label(d)) frappe.throw(msg) def validate_group_warehouse(self) -> None: diff --git a/erpnext/stock/doctype/stock_settings/stock_settings.py b/erpnext/stock/doctype/stock_settings/stock_settings.py index c6f1ccfa358..7a3a6269f0a 100644 --- a/erpnext/stock/doctype/stock_settings/stock_settings.py +++ b/erpnext/stock/doctype/stock_settings/stock_settings.py @@ -265,14 +265,9 @@ class StockSettings(Document): "You have enabled {0} and {1} in {2}. This can lead to prices from the default price list being inserted in the transaction price list." ).format( "{}".format( - _(self.meta.get_label("auto_insert_price_list_rate_if_missing"), context=self.doctype) - ), - "{}".format( - _( - selling_meta.get_label("fallback_to_default_price_list"), - context=selling_meta.name, - ) + self.meta.get_translated_label("auto_insert_price_list_rate_if_missing") ), + "{}".format(selling_meta.get_translated_label("fallback_to_default_price_list")), frappe.bold(_("Selling Settings")), ) ) diff --git a/erpnext/stock/get_item_details.py b/erpnext/stock/get_item_details.py index 4c48bbea0cd..4556b3defff 100644 --- a/erpnext/stock/get_item_details.py +++ b/erpnext/stock/get_item_details.py @@ -1442,7 +1442,7 @@ def validate_conversion_rate(ctx: frappe._dict, meta): validate_conversion_rate( ctx.currency, ctx.conversion_rate, - _(meta.get_label("conversion_rate"), context=meta.name), + meta.get_translated_label("conversion_rate"), ctx.company, ) @@ -1464,7 +1464,7 @@ def validate_conversion_rate(ctx: frappe._dict, meta): validate_conversion_rate( ctx.price_list_currency, ctx.plc_conversion_rate, - _(meta.get_label("plc_conversion_rate"), context=meta.name), + meta.get_translated_label("plc_conversion_rate"), ctx.company, ) diff --git a/erpnext/templates/print_formats/includes/item_table_description.html b/erpnext/templates/print_formats/includes/item_table_description.html index 5fabddbc40e..23b4741b81f 100644 --- a/erpnext/templates/print_formats/includes/item_table_description.html +++ b/erpnext/templates/print_formats/includes/item_table_description.html @@ -38,7 +38,7 @@ {%- for fieldname in columns -%} {% if doc.get(fieldname) and doc.in_format_data(fieldname) -%}

- {{ _(doc.meta.get_label(fieldname), context=doc.doctype) }}: + {{ doc.meta.get_translated_label(fieldname) }}: {{ doc.get_formatted(fieldname, translated=True) }}

{% endif %} diff --git a/erpnext/templates/print_formats/includes/taxes.html b/erpnext/templates/print_formats/includes/taxes.html index 27397fc7ee8..81626a22989 100644 --- a/erpnext/templates/print_formats/includes/taxes.html +++ b/erpnext/templates/print_formats/includes/taxes.html @@ -2,7 +2,7 @@ {%- if doc.discount_amount -%}
-
+
- {{ doc.get_formatted("discount_amount", doc) }}
diff --git a/erpnext/templates/print_formats/includes/taxes_and_charges.html b/erpnext/templates/print_formats/includes/taxes_and_charges.html index da076d5daf5..d7af51c166c 100644 --- a/erpnext/templates/print_formats/includes/taxes_and_charges.html +++ b/erpnext/templates/print_formats/includes/taxes_and_charges.html @@ -11,7 +11,7 @@ {%- macro render_discount_amount(doc) -%} {%- if doc.discount_amount -%} - {{ render_row(_(doc.meta.get_label('discount_amount'), context=doc.doctype), '- ' + doc.get_formatted("discount_amount", doc)) }} + {{ render_row(doc.meta.get_translated_label('discount_amount'), '- ' + doc.get_formatted("discount_amount", doc)) }} {%- endif -%} {%- endmacro -%}