diff --git a/addons/sale_management/views/sale_order_template_views.xml b/addons/sale_management/views/sale_order_template_views.xml index 2c8fdb65966..30bed879670 100644 --- a/addons/sale_management/views/sale_order_template_views.xml +++ b/addons/sale_management/views/sale_order_template_views.xml @@ -91,7 +91,7 @@ - + + + + - - - diff --git a/addons/web/static/tests/views/fields/text_field_tests.js b/addons/web/static/tests/views/fields/text_field_tests.js index 76459e2772e..f261bdf1c0e 100644 --- a/addons/web/static/tests/views/fields/text_field_tests.js +++ b/addons/web/static/tests/views/fields/text_field_tests.js @@ -436,6 +436,60 @@ QUnit.module("Fields", (hooks) => { ); }); + QUnit.test("text field translatable on notebook page", async function (assert) { + serverData.models.partner.fields.txt.translate = true; + serviceRegistry.add("localization", makeFakeLocalizationService({ multiLang: true }), { + force: true, + }); + + await makeView({ + type: "form", + resModel: "partner", + serverData, + arch: ` +
+ + + + + + + +
`, + resId: 1, + mockRPC(route, { args, method }) { + if (route === "/web/dataset/call_kw/res.lang/get_installed") { + return Promise.resolve([ + ["en_US", "English"], + ["fr_BE", "French (Belgium)"], + ]); + } + if (route === "/web/dataset/call_kw/partner/get_field_translations") { + return Promise.resolve([ + [ + { lang: "en_US", source: "yop", value: "yop" }, + { lang: "fr_BE", source: "yop", value: "valeur français" }, + ], + { translation_type: "text", translation_show_source: false }, + ]); + } + }, + }); + + assert.hasClass(target.querySelectorAll(".o_notebook .nav .nav-link")[0], "active"); + + assert.hasClass(target.querySelector("[name=txt] textarea"), "o_field_translate"); + + assert.strictEqual( + target.querySelector("[name=txt] textarea").nextElementSibling.textContent, + "EN", + "The input should be preceded by a translate button" + ); + await click(target, ".o_field_text .btn.o_field_translate"); + + assert.containsOnce(target, ".modal", "there should be a translation modal"); + }); + QUnit.test( "go to next line (and not the next row) when pressing enter", async function (assert) {