summaryrefslogtreecommitdiff
path: root/addons/web/static/tests/fields/basic_fields_tests.js
diff options
context:
space:
mode:
authorVincent Schippefilt <vsc@odoo.com>2019-08-20 07:46:52 +0000
committerVincent Schippefilt <vsc@odoo.com>2019-09-09 13:09:53 +0000
commit029dd1a214f727e25b479610df96b7ee94dd8127 (patch)
tree5b33cb401962523f20c768043def21a7b0349cfc /addons/web/static/tests/fields/basic_fields_tests.js
parent263849c3365af3d62fa5b9ceaff65b2f7b84c092 (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.js70
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;