diff options
| author | Vincent Schippefilt <vsc@odoo.com> | 2019-08-20 07:46:52 +0000 |
|---|---|---|
| committer | Vincent Schippefilt <vsc@odoo.com> | 2019-09-09 13:09:53 +0000 |
| commit | 029dd1a214f727e25b479610df96b7ee94dd8127 (patch) | |
| tree | 5b33cb401962523f20c768043def21a7b0349cfc /addons/web/static/tests/fields/basic_fields_tests.js | |
| parent | 263849c3365af3d62fa5b9ceaff65b2f7b84c092 (diff) | |
[IMP] web: edit translations in new dialog
Before this commit, translations were edited in a list view with a filter
on the field that needed to be translated.
After this commit, the translations for each fields are translated in a
dedicated dialog. The changes done to the current language are taken
into account immediately, both ways, from the dialog to the form and
from the form to the dialog.
Translating terms is also available in create mode, the user will be
prompted to save before editing a translation
Task ID: 2028152
closes odoo/odoo#36185
Signed-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>
Diffstat (limited to 'addons/web/static/tests/fields/basic_fields_tests.js')
| -rw-r--r-- | addons/web/static/tests/fields/basic_fields_tests.js | 70 |
1 files changed, 61 insertions, 9 deletions
diff --git a/addons/web/static/tests/fields/basic_fields_tests.js b/addons/web/static/tests/fields/basic_fields_tests.js index a5620212500..e8060e23e58 100644 --- a/addons/web/static/tests/fields/basic_fields_tests.js +++ b/addons/web/static/tests/fields/basic_fields_tests.js @@ -124,6 +124,19 @@ QUnit.module('basic_fields', { position: "after", }] }, + "ir.translation": { + fields: { + lang_code: {type: "char"}, + value: {type: "char"}, + res_id: {type: "integer"} + }, + records: [{ + id: 99, + res_id: 37, + value: '', + lang_code: 'en_US' + }] + }, }; } }, function () { @@ -1059,7 +1072,7 @@ QUnit.module('basic_fields', { }); QUnit.test('char field translatable', async function (assert) { - assert.expect(3); + assert.expect(4); this.data.partner.fields.foo.translate = true; @@ -1081,7 +1094,13 @@ QUnit.module('basic_fields', { mockRPC: function (route, args) { if (route === "/web/dataset/call_button" && args.method === 'translate_fields') { assert.deepEqual(args.args, ["partner",1,"foo"], 'should call "call_button" route'); - return Promise.resolve(); + return Promise.resolve({ + domain: [], + context: {search_default_name: 'partnes,foo'}, + }); + } + if (route === "/web/dataset/call_kw/res.lang/get_installed") { + return Promise.resolve([["en_US"], ["fr_BE"]]); } return this._super.apply(this, arguments); }, @@ -1089,10 +1108,27 @@ QUnit.module('basic_fields', { await testUtils.form.clickEdit(form); var $button = form.$('input[type="text"].o_field_char + .o_field_translate'); assert.strictEqual($button.length, 1, "should have a translate button"); + assert.strictEqual($button.text(), 'EN', 'the button should have as test the current language'); await testUtils.dom.click($button); + await testUtils.nextTick(); + + assert.containsOnce($(document), '.modal', 'a translate modal should be visible'); + form.destroy(); - form = await createView({ + _t.database.multi_lang = multiLang; + }); + + QUnit.test('char field translatable in create mode', async function (assert) { + assert.expect(1); + + this.data.partner.fields.foo.translate = true; + + var multiLang = _t.database.multi_lang; + _t.database.multi_lang = true; + + + var form = await createView({ View: FormView, model: 'partner', data: this.data, @@ -1104,8 +1140,8 @@ QUnit.module('basic_fields', { '</sheet>' + '</form>', }); - $button = form.$('input[type="text"].o_field_char + .o_field_translate'); - assert.strictEqual($button.length, 0, "should not have a translate button in create mode"); + var $button = form.$('input[type="text"].o_field_char + .o_field_translate'); + assert.strictEqual($button.length, 1, "should have a translate button in create mode"); form.destroy(); _t.database.multi_lang = multiLang; @@ -1716,7 +1752,13 @@ QUnit.module('basic_fields', { mockRPC: function (route, args) { if (route === "/web/dataset/call_button" && args.method === 'translate_fields') { assert.deepEqual(args.args, ["partner",1,"txt"], 'should call "call_button" route'); - return Promise.resolve(); + return Promise.resolve({ + domain: [], + context: {search_default_name: 'partnes,foo'}, + }); + } + if (route === "/web/dataset/call_kw/res.lang/get_installed") { + return Promise.resolve([["en_US"], ["fr_BE"]]); } return this._super.apply(this, arguments); }, @@ -1725,9 +1767,19 @@ QUnit.module('basic_fields', { var $button = form.$('textarea + .o_field_translate'); assert.strictEqual($button.length, 1, "should have a translate button"); await testUtils.dom.click($button); + assert.containsOnce($(document), '.modal', 'there should be a translation modal'); form.destroy(); + _t.database.multi_lang = multiLang; + }); + + QUnit.test('text field translatable in create mode', async function (assert) { + assert.expect(1); + + this.data.partner.fields.txt.translate = true; - form = await createView({ + var multiLang = _t.database.multi_lang; + _t.database.multi_lang = true; + var form = await createView({ View: FormView, model: 'partner', data: this.data, @@ -1739,8 +1791,8 @@ QUnit.module('basic_fields', { '</sheet>' + '</form>', }); - $button = form.$('textarea + .o_field_translate'); - assert.strictEqual($button.length, 0, "should not have a translate button in create mode"); + var $button = form.$('textarea + .o_field_translate'); + assert.strictEqual($button.length, 1, "should have a translate button in create mode"); form.destroy(); _t.database.multi_lang = multiLang; |
