mirror of
https://github.com/frappe/erpnext.git
synced 2026-02-20 01:55:01 +00:00
Co-authored-by: Raffael Meyer <14891507+barredterra@users.noreply.github.com> fix: make labels in error message translatable (#48327)
This commit is contained in:
@@ -147,8 +147,8 @@ class AccountsSettings(Document):
|
|||||||
if self.add_taxes_from_item_tax_template and self.add_taxes_from_taxes_and_charges_template:
|
if self.add_taxes_from_item_tax_template and self.add_taxes_from_taxes_and_charges_template:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("You cannot enable both the settings '{0}' and '{1}'.").format(
|
_("You cannot enable both the settings '{0}' and '{1}'.").format(
|
||||||
frappe.bold(self.meta.get_label("add_taxes_from_item_tax_template")),
|
frappe.bold(_(self.meta.get_label("add_taxes_from_item_tax_template"))),
|
||||||
frappe.bold(self.meta.get_label("add_taxes_from_taxes_and_charges_template")),
|
frappe.bold(_(self.meta.get_label("add_taxes_from_taxes_and_charges_template"))),
|
||||||
),
|
),
|
||||||
title=_("Auto Tax Settings Error"),
|
title=_("Auto Tax Settings Error"),
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -568,7 +568,7 @@ class PaymentEntry(AccountsController):
|
|||||||
def validate_mandatory(self):
|
def validate_mandatory(self):
|
||||||
for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"):
|
for field in ("paid_amount", "received_amount", "source_exchange_rate", "target_exchange_rate"):
|
||||||
if not self.get(field):
|
if not self.get(field):
|
||||||
frappe.throw(_("{0} is mandatory").format(self.meta.get_label(field)))
|
frappe.throw(_("{0} is mandatory").format(_(self.meta.get_label(field))))
|
||||||
|
|
||||||
def validate_reference_documents(self):
|
def validate_reference_documents(self):
|
||||||
valid_reference_doctypes = self.get_valid_reference_doctypes()
|
valid_reference_doctypes = self.get_valid_reference_doctypes()
|
||||||
|
|||||||
@@ -589,7 +589,7 @@ class PaymentReconciliation(Document):
|
|||||||
def check_mandatory_to_fetch(self):
|
def check_mandatory_to_fetch(self):
|
||||||
for fieldname in ["company", "party_type", "party", "receivable_payable_account"]:
|
for fieldname in ["company", "party_type", "party", "receivable_payable_account"]:
|
||||||
if not self.get(fieldname):
|
if not self.get(fieldname):
|
||||||
frappe.throw(_("Please select {0} first").format(self.meta.get_label(fieldname)))
|
frappe.throw(_("Please select {0} first").format(_(self.meta.get_label(fieldname))))
|
||||||
|
|
||||||
def validate_entries(self):
|
def validate_entries(self):
|
||||||
if not self.get("invoices"):
|
if not self.get("invoices"):
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ class PricingRule(Document):
|
|||||||
|
|
||||||
tocheck = frappe.scrub(self.get("applicable_for", ""))
|
tocheck = frappe.scrub(self.get("applicable_for", ""))
|
||||||
if tocheck and not self.get(tocheck):
|
if tocheck and not self.get(tocheck):
|
||||||
throw(_("{0} is required").format(self.meta.get_label(tocheck)), frappe.MandatoryError)
|
throw(_("{0} is required").format(_(self.meta.get_label(tocheck))), frappe.MandatoryError)
|
||||||
|
|
||||||
if self.apply_rule_on_other:
|
if self.apply_rule_on_other:
|
||||||
o_field = "other_" + frappe.scrub(self.apply_rule_on_other)
|
o_field = "other_" + frappe.scrub(self.apply_rule_on_other)
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ def validate_fiscal_year(date, fiscal_year, company, label="Date", doc=None):
|
|||||||
if doc:
|
if doc:
|
||||||
doc.fiscal_year = years[0]
|
doc.fiscal_year = years[0]
|
||||||
else:
|
else:
|
||||||
throw(_("{0} '{1}' not in Fiscal Year {2}").format(label, formatdate(date), fiscal_year))
|
throw(_("{0} '{1}' not in Fiscal Year {2}").format(_(label), formatdate(date), fiscal_year))
|
||||||
|
|
||||||
|
|
||||||
@frappe.whitelist()
|
@frappe.whitelist()
|
||||||
|
|||||||
@@ -987,7 +987,7 @@ class BOM(WebsiteGenerator):
|
|||||||
self.transfer_material_against = "Work Order"
|
self.transfer_material_against = "Work Order"
|
||||||
if not self.transfer_material_against and not self.is_new():
|
if not self.transfer_material_against and not self.is_new():
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("Setting {} is required").format(self.meta.get_label("transfer_material_against")),
|
_("Setting {0} is required").format(_(self.meta.get_label("transfer_material_against"))),
|
||||||
title=_("Missing value"),
|
title=_("Missing value"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -390,7 +390,7 @@ class WorkOrder(Document):
|
|||||||
if qty > completed_qty:
|
if qty > completed_qty:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("{0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3}").format(
|
_("{0} ({1}) cannot be greater than planned quantity ({2}) in Work Order {3}").format(
|
||||||
self.meta.get_label(fieldname), qty, completed_qty, self.name
|
_(self.meta.get_label(fieldname)), qty, completed_qty, self.name
|
||||||
),
|
),
|
||||||
StockOverProductionError,
|
StockOverProductionError,
|
||||||
)
|
)
|
||||||
@@ -1077,7 +1077,7 @@ class WorkOrder(Document):
|
|||||||
self.transfer_material_against = "Work Order"
|
self.transfer_material_against = "Work Order"
|
||||||
if not self.transfer_material_against:
|
if not self.transfer_material_against:
|
||||||
frappe.throw(
|
frappe.throw(
|
||||||
_("Setting {} is required").format(self.meta.get_label("transfer_material_against")),
|
_("Setting {0} is required").format(_(self.meta.get_label("transfer_material_against"))),
|
||||||
title=_("Missing value"),
|
title=_("Missing value"),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -395,7 +395,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"General Ledger",
|
"General Ledger",
|
||||||
self.meta.get_label("income"),
|
_(self.meta.get_label("income")),
|
||||||
filters={
|
filters={
|
||||||
"from_date": self.future_from_date,
|
"from_date": self.future_from_date,
|
||||||
"to_date": self.future_to_date,
|
"to_date": self.future_to_date,
|
||||||
@@ -427,7 +427,7 @@ class EmailDigest(Document):
|
|||||||
filters = {"currency": self.currency}
|
filters = {"currency": self.currency}
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Profit and Loss Statement",
|
"Profit and Loss Statement",
|
||||||
label=self.meta.get_label(root_type + "_year_to_date"),
|
label=_(self.meta.get_label(root_type + "_year_to_date")),
|
||||||
filters=filters,
|
filters=filters,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -435,7 +435,7 @@ class EmailDigest(Document):
|
|||||||
filters = {"currency": self.currency}
|
filters = {"currency": self.currency}
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Profit and Loss Statement",
|
"Profit and Loss Statement",
|
||||||
label=self.meta.get_label(root_type + "_year_to_date"),
|
label=_(self.meta.get_label(root_type + "_year_to_date")),
|
||||||
filters=filters,
|
filters=filters,
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -466,7 +466,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"General Ledger",
|
"General Ledger",
|
||||||
self.meta.get_label("expenses_booked"),
|
_(self.meta.get_label("expenses_booked")),
|
||||||
filters={
|
filters={
|
||||||
"company": self.company,
|
"company": self.company,
|
||||||
"from_date": self.future_from_date,
|
"from_date": self.future_from_date,
|
||||||
@@ -500,7 +500,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Sales Order",
|
"Sales Order",
|
||||||
label=self.meta.get_label("sales_orders_to_bill"),
|
label=_(self.meta.get_label("sales_orders_to_bill")),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
doctype="Sales Order",
|
doctype="Sales Order",
|
||||||
filters={
|
filters={
|
||||||
@@ -526,7 +526,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Sales Order",
|
"Sales Order",
|
||||||
label=self.meta.get_label("sales_orders_to_deliver"),
|
label=_(self.meta.get_label("sales_orders_to_deliver")),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
doctype="Sales Order",
|
doctype="Sales Order",
|
||||||
filters={
|
filters={
|
||||||
@@ -552,7 +552,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Purchase Order",
|
"Purchase Order",
|
||||||
label=self.meta.get_label("purchase_orders_to_receive"),
|
label=_(self.meta.get_label("purchase_orders_to_receive")),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
doctype="Purchase Order",
|
doctype="Purchase Order",
|
||||||
filters={
|
filters={
|
||||||
@@ -578,7 +578,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Purchase Order",
|
"Purchase Order",
|
||||||
label=self.meta.get_label("purchase_orders_to_bill"),
|
label=_(self.meta.get_label("purchase_orders_to_bill")),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
doctype="Purchase Order",
|
doctype="Purchase Order",
|
||||||
filters={
|
filters={
|
||||||
@@ -630,7 +630,7 @@ class EmailDigest(Document):
|
|||||||
"company": self.company,
|
"company": self.company,
|
||||||
}
|
}
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Account Balance", label=self.meta.get_label(fieldname), filters=filters
|
"Account Balance", label=_(self.meta.get_label(fieldname)), filters=filters
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
filters = {
|
filters = {
|
||||||
@@ -640,7 +640,7 @@ class EmailDigest(Document):
|
|||||||
"company": self.company,
|
"company": self.company,
|
||||||
}
|
}
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Account Balance", label=self.meta.get_label(fieldname), filters=filters
|
"Account Balance", label=_(self.meta.get_label(fieldname)), filters=filters
|
||||||
)
|
)
|
||||||
|
|
||||||
return {"label": label, "value": balance, "last_value": prev_balance}
|
return {"label": label, "value": balance, "last_value": prev_balance}
|
||||||
@@ -648,17 +648,17 @@ class EmailDigest(Document):
|
|||||||
if account_type == "Payable":
|
if account_type == "Payable":
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Accounts Payable",
|
"Accounts Payable",
|
||||||
label=self.meta.get_label(fieldname),
|
label=_(self.meta.get_label(fieldname)),
|
||||||
filters={"report_date": self.future_to_date, "company": self.company},
|
filters={"report_date": self.future_to_date, "company": self.company},
|
||||||
)
|
)
|
||||||
elif account_type == "Receivable":
|
elif account_type == "Receivable":
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Accounts Receivable",
|
"Accounts Receivable",
|
||||||
label=self.meta.get_label(fieldname),
|
label=_(self.meta.get_label(fieldname)),
|
||||||
filters={"report_date": self.future_to_date, "company": self.company},
|
filters={"report_date": self.future_to_date, "company": self.company},
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
label = self.meta.get_label(fieldname)
|
label = _(self.meta.get_label(fieldname))
|
||||||
|
|
||||||
return {"label": label, "value": balance, "last_value": prev_balance, "count": count}
|
return {"label": label, "value": balance, "last_value": prev_balance, "count": count}
|
||||||
|
|
||||||
@@ -748,7 +748,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
"Quotation",
|
"Quotation",
|
||||||
label=self.meta.get_label(fieldname),
|
label=_(self.meta.get_label(fieldname)),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
doctype="Quotation",
|
doctype="Quotation",
|
||||||
filters={
|
filters={
|
||||||
@@ -779,7 +779,7 @@ class EmailDigest(Document):
|
|||||||
|
|
||||||
label = get_link_to_report(
|
label = get_link_to_report(
|
||||||
doc_type,
|
doc_type,
|
||||||
label=self.meta.get_label(fieldname),
|
label=_(self.meta.get_label(fieldname)),
|
||||||
report_type="Report Builder",
|
report_type="Report Builder",
|
||||||
filters=filters,
|
filters=filters,
|
||||||
doctype=doc_type,
|
doctype=doc_type,
|
||||||
|
|||||||
@@ -634,7 +634,7 @@ class Item(Document):
|
|||||||
|
|
||||||
if new_properties != [cstr(self.get(field)) for field in field_list]:
|
if new_properties != [cstr(self.get(field)) for field in field_list]:
|
||||||
msg = _("To merge, following properties must be same for both items")
|
msg = _("To merge, following properties must be same for both items")
|
||||||
msg += ": \n" + ", ".join([self.meta.get_label(fld) for fld in field_list])
|
msg += ": \n" + ", ".join([_(self.meta.get_label(fld)) for fld in field_list])
|
||||||
frappe.throw(msg, title=_("Cannot Merge"), exc=DataValidationError)
|
frappe.throw(msg, title=_("Cannot Merge"), exc=DataValidationError)
|
||||||
|
|
||||||
def validate_duplicate_product_bundles_before_merge(self, old_name, new_name):
|
def validate_duplicate_product_bundles_before_merge(self, old_name, new_name):
|
||||||
@@ -981,7 +981,7 @@ class Item(Document):
|
|||||||
return
|
return
|
||||||
|
|
||||||
if linked_doc := self._get_linked_submitted_documents(changed_fields):
|
if linked_doc := self._get_linked_submitted_documents(changed_fields):
|
||||||
changed_field_labels = [frappe.bold(self.meta.get_label(f)) for f in changed_fields]
|
changed_field_labels = [frappe.bold(_(self.meta.get_label(f))) for f in changed_fields]
|
||||||
msg = _(
|
msg = _(
|
||||||
"As there are existing submitted transactions against item {0}, you can not change the value of {1}."
|
"As there are existing submitted transactions against item {0}, you can not change the value of {1}."
|
||||||
).format(self.name, ", ".join(changed_field_labels))
|
).format(self.name, ", ".join(changed_field_labels))
|
||||||
|
|||||||
@@ -192,7 +192,7 @@ class StockLedgerEntry(Document):
|
|||||||
mandatory = ["warehouse", "posting_date", "voucher_type", "voucher_no", "company"]
|
mandatory = ["warehouse", "posting_date", "voucher_type", "voucher_no", "company"]
|
||||||
for k in mandatory:
|
for k in mandatory:
|
||||||
if not self.get(k):
|
if not self.get(k):
|
||||||
frappe.throw(_("{0} is required").format(self.meta.get_label(k)))
|
frappe.throw(_("{0} is required").format(_(self.meta.get_label(k))))
|
||||||
|
|
||||||
if self.voucher_type != "Stock Reconciliation" and not self.actual_qty:
|
if self.voucher_type != "Stock Reconciliation" and not self.actual_qty:
|
||||||
frappe.throw(_("Actual Qty is mandatory"))
|
frappe.throw(_("Actual Qty is mandatory"))
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ class StockReservationEntry(Document):
|
|||||||
]
|
]
|
||||||
for d in mandatory:
|
for d in mandatory:
|
||||||
if not self.get(d):
|
if not self.get(d):
|
||||||
msg = _("{0} is required").format(self.meta.get_label(d))
|
msg = _("{0} is required").format(_(self.meta.get_label(d)))
|
||||||
frappe.throw(msg)
|
frappe.throw(msg)
|
||||||
|
|
||||||
def validate_group_warehouse(self) -> None:
|
def validate_group_warehouse(self) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user