diff --git a/frappe/__init__.py b/frappe/__init__.py
index ac6b0edff5..4c1873ea9b 100644
--- a/frappe/__init__.py
+++ b/frappe/__init__.py
@@ -442,6 +442,12 @@ def get_site_config(sites_path: str | None = None, site_path: str | None = None)
# Set the user as database name if not set in config
config["db_user"] = os.environ.get("FRAPPE_DB_USER") or config.get("db_user") or config.get("db_name")
+ # vice versa for dbname if not defined
+ config["db_name"] = os.environ.get("FRAPPE_DB_NAME") or config.get("db_name") or config["db_user"]
+
+ # read password
+ config["db_password"] = os.environ.get("FRAPPE_DB_PASSWORD") or config.get("db_password")
+
# Allow externally extending the config with hooks
if extra_config := config.get("extra_config"):
if isinstance(extra_config, str):
diff --git a/frappe/core/doctype/data_import/data_import.py b/frappe/core/doctype/data_import/data_import.py
index cfecb3fbda..b2de0badc9 100644
--- a/frappe/core/doctype/data_import/data_import.py
+++ b/frappe/core/doctype/data_import/data_import.py
@@ -138,7 +138,7 @@ def get_preview_from_template(data_import, import_file=None, google_sheets_url=N
@frappe.whitelist()
-def form_start_import(data_import):
+def form_start_import(data_import: str):
return frappe.get_doc("Data Import", data_import).start_import()
diff --git a/frappe/core/doctype/doctype/doctype.js b/frappe/core/doctype/doctype/doctype.js
index f672db1f92..6cfb54dc1c 100644
--- a/frappe/core/doctype/doctype/doctype.js
+++ b/frappe/core/doctype/doctype/doctype.js
@@ -62,7 +62,7 @@ frappe.ui.form.on("DocType", {
}
}
- const customize_form_link = "Customize Form";
+ const customize_form_link = `${__("Customize Form")}`;
if (!frappe.boot.developer_mode && !frm.doc.custom) {
// make the document read-only
frm.set_read_only();
diff --git a/frappe/core/doctype/file/test_file.py b/frappe/core/doctype/file/test_file.py
index 6c9b9f5872..03a8927dac 100644
--- a/frappe/core/doctype/file/test_file.py
+++ b/frappe/core/doctype/file/test_file.py
@@ -17,7 +17,7 @@ from frappe.core.api.file import (
unzip_file,
)
from frappe.core.doctype.file.exceptions import FileTypeNotAllowed
-from frappe.core.doctype.file.utils import get_extension
+from frappe.core.doctype.file.utils import get_corrupted_image_msg, get_extension
from frappe.desk.form.utils import add_comment
from frappe.exceptions import ValidationError
from frappe.tests.utils import FrappeTestCase, change_settings
@@ -768,6 +768,25 @@ class TestFileUtils(FrappeTestCase):
)
self.assertRegex(communication.content, r"
")
+ def test_broken_image(self):
+ """Ensure that broken inline images don't cause errors."""
+ is_private = not frappe.get_meta("Communication").make_attachments_public
+ communication = frappe.get_doc(
+ doctype="Communication",
+ communication_type="Communication",
+ communication_medium="Email",
+ content='

The On Payment Failed (on_payment_failed) event only transports the error message which the controller implementation had extracted from the transaction.
Fältnamn som kan använda i e-post mall är fält i dokument som du skickar e-post meddelande från. Ta reda på fält namn för alla dokument via Inställningar > Anpassa formulär vy och välja dokument typ (t.ex. Försäljning Faktura)
\n\n" "Mallar kompileras med Jinja Templating Language. För att lära dig mer om Jinja, läs denna dokumentation.
\n" @@ -1182,8 +1182,8 @@ msgid "Add Child" msgstr "Lägg till Underval" #: public/js/frappe/views/kanban/kanban_board.html:4 -#: public/js/frappe/views/reports/query_report.js:1696 -#: public/js/frappe/views/reports/query_report.js:1699 +#: public/js/frappe/views/reports/query_report.js:1681 +#: public/js/frappe/views/reports/query_report.js:1684 #: public/js/frappe/views/reports/report_view.js:324 #: public/js/frappe/views/reports/report_view.js:349 msgid "Add Column" @@ -1292,7 +1292,7 @@ msgstr "Lägg till Mall" #. Label of the add_total_row (Check) field in DocType 'Report' #: core/doctype/report/report.json msgid "Add Total Row" -msgstr "Lägg till Totalt Rad" +msgstr "Lägg till Totalt Antal Rader" #. Label of the add_unsubscribe_link (Check) field in DocType 'Email Queue' #: email/doctype/email_queue/email_queue.json @@ -3154,7 +3154,7 @@ msgstr "Bakgrund Jobb" #. Report' #: desk/doctype/system_health_report/system_health_report.json msgid "Background Jobs Check" -msgstr "Bakgrund Jobb Koll" +msgstr "Bakgrund Jobb Status" #. Label of the background_jobs_queue (Autocomplete) field in DocType 'Webhook' #: integrations/doctype/webhook/webhook.json @@ -3407,7 +3407,7 @@ msgstr "Faktura Kontakt" #. Label of the binary_logging (Data) field in DocType 'System Health Report' #: desk/doctype/system_health_report/system_health_report.json msgid "Binary Logging" -msgstr "Fakturering Logg" +msgstr "Binär Logg" #. Label of the bio (Small Text) field in DocType 'User' #. Label of the bio (Small Text) field in DocType 'About Us Team Member' @@ -3899,6 +3899,7 @@ msgstr "Kalender Namn" #. Name of a DocType #: desk/doctype/calendar_view/calendar_view.json +#: public/js/frappe/list/base_list.js:208 msgid "Calendar View" msgstr "Kalender Vy" @@ -4075,7 +4076,7 @@ msgstr "Kan inte Hämta Värden" msgid "Cannot Remove" msgstr "Kan inte Ta Bort" -#: model/base_document.py:1072 +#: model/base_document.py:1073 msgid "Cannot Update After Submit" msgstr "Kan inte Uppdatera efter Godkännande" @@ -4163,7 +4164,7 @@ msgstr "Kan inte ta bort system skapad fält {0}. Dölj det ist msgid "Cannot delete {0}" msgstr "Kan inte radera {0}" -#: utils/nestedset.py:296 +#: utils/nestedset.py:299 msgid "Cannot delete {0} as it has child nodes" msgstr "Kan inte radera {0} eftersom det har underordnade noder" @@ -4171,7 +4172,7 @@ msgstr "Kan inte radera {0} eftersom det har underordnade noder" msgid "Cannot edit Standard Dashboards" msgstr "Kan inte redigera standard översikt panel" -#: email/doctype/notification/notification.py:121 +#: email/doctype/notification/notification.py:122 msgid "Cannot edit Standard Notification. To edit, please disable this and duplicate it" msgstr "Kan inte redigera standard avisering. Kopiera och skapa ny" @@ -4240,7 +4241,7 @@ msgstr "Kan inte ta bort ID fält" msgid "Cannot set 'Report' permission if 'Only If Creator' permission is set" msgstr "Kan inte ange \"Rapport\" behörighet om behörighet \"Endast om Ägare\" är angiven" -#: email/doctype/notification/notification.py:137 +#: email/doctype/notification/notification.py:138 msgid "Cannot set Notification on Document Type {0}" msgstr "Kan inte ange Avisering för DocType {0}" @@ -4354,7 +4355,7 @@ msgstr "Ändra" #: tests/test_translate.py:99 msgctxt "Coins" msgid "Change" -msgstr "Ändra" +msgstr "Växel" #. Label of the label (Data) field in DocType 'Customize Form' #: custom/doctype/customize_form/customize_form.json @@ -4415,6 +4416,8 @@ msgstr "Diagram Inställningar" #. Label of the chart_name (Link) field in DocType 'Workspace Chart' #: desk/doctype/dashboard_chart/dashboard_chart.json #: desk/doctype/workspace_chart/workspace_chart.json +#: public/js/frappe/views/reports/query_report.js:289 +#: public/js/frappe/widgets/widget_dialog.js:137 msgid "Chart Name" msgstr "Diagram Namn" @@ -4831,7 +4834,7 @@ msgctxt "Shrink code field." msgid "Collapse" msgstr "Fäll In" -#: public/js/frappe/views/reports/query_report.js:1979 +#: public/js/frappe/views/reports/query_report.js:1964 #: public/js/frappe/views/treeview.js:121 msgid "Collapse All" msgstr "Fäll In Alla" @@ -6362,6 +6365,10 @@ msgstr "Översikt Panel Namn" msgid "Dashboard Settings" msgstr "Översikt Panel Inställningar" +#: public/js/frappe/list/base_list.js:205 +msgid "Dashboard View" +msgstr "Översikt Panel Vy" + #. Label of the tab_break_2 (Tab Break) field in DocType 'Workspace' #: desk/doctype/workspace/workspace.json msgid "Dashboards" @@ -6943,7 +6950,8 @@ msgid "Department" msgstr "Avdelning" #. Label of the dependencies (Data) field in DocType 'Workspace Link' -#: desk/doctype/workspace_link/workspace_link.json www/attribution.html:29 +#: desk/doctype/workspace_link/workspace_link.json +#: public/js/frappe/widgets/widget_dialog.js:318 www/attribution.html:29 msgid "Dependencies" msgstr "Beroenden " @@ -7405,6 +7413,7 @@ msgstr "Status för följande tillstånd är ändrad: