diff --git a/addons/website/static/src/js/website.backend.js b/addons/website/static/src/js/website.backend.js index 6b6f4658ff5..5033d9a690c 100644 --- a/addons/website/static/src/js/website.backend.js +++ b/addons/website/static/src/js/website.backend.js @@ -7,11 +7,29 @@ var field_registry = require('web.field_registry'); var _t = core._t; - var WidgetWebsiteButton = AbstractField.extend({ template: 'WidgetWebsiteButton', - render: function () { + //-------------------------------------------------------------------------- + // Public + //-------------------------------------------------------------------------- + + /** + * @override + */ + isSet: function () { + return true; + }, + + //-------------------------------------------------------------------------- + // Private + //-------------------------------------------------------------------------- + + /** + * @override + * @private + */ + _render: function () { this._super.apply(this, arguments); var $value = this.$('.o_value'); @@ -26,9 +44,6 @@ var WidgetWebsiteButton = AbstractField.extend({ .addClass('text-danger'); } }, - is_set: function () { - return true; - }, }); field_registry.add('website_button', WidgetWebsiteButton); diff --git a/addons/website/static/tests/website_tests.js b/addons/website/static/tests/website_tests.js new file mode 100644 index 00000000000..868e3cc4e8f --- /dev/null +++ b/addons/website/static/tests/website_tests.js @@ -0,0 +1,79 @@ +odoo.define('website.tests', function (require) { +"use strict"; + +var FormView = require('web.FormView'); +var testUtils = require("web.test_utils"); + +var createView = testUtils.createView; + +QUnit.module('website', { + before: function () { + this.data = { + blog_post: { + fields: { + website_published: {string: "Available on the Website", type: "boolean"}, + }, + records: [{ + id: 1, + website_published: false, + }, { + id: 2, + website_published: true, + }] + } + }; + }, +}, function () { + QUnit.test("widget website button: display false value", function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'blog_post', + data: this.data, + arch: + '
', + res_id: 1, + }); + var selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text'; + assert.strictEqual(form.$(selector).length, 2, "there should be two texts displayed"); + selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text.o_value.text-danger'; + assert.strictEqual(form.$(selector).length, 1, "there should be one text in red"); + form.destroy(); + }); + QUnit.test("widget website button: display true value", function (assert) { + assert.expect(2); + + var form = createView({ + View: FormView, + model: 'blog_post', + data: this.data, + arch: + '', + res_id: 2, + }); + var selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text'; + assert.strictEqual(form.$(selector).length, 2, "should be two texts displayed"); + selector = '.oe_button_box .oe_stat_button .o_stat_info[name="website_published"] .o_stat_text.o_value.text-success'; + assert.strictEqual(form.$(selector).length, 1, "there should be one text in green"); + form.destroy(); + }); +}); + +}); diff --git a/addons/website/views/website_templates.xml b/addons/website/views/website_templates.xml index 94f8706c41d..380aa35ad51 100644 --- a/addons/website/views/website_templates.xml +++ b/addons/website/views/website_templates.xml @@ -10,6 +10,12 @@ + +