diff --git a/addons/website/static/src/components/wysiwyg_adapter/wysiwyg_adapter.js b/addons/website/static/src/components/wysiwyg_adapter/wysiwyg_adapter.js index 298c6c8486e..293900b1f4b 100644 --- a/addons/website/static/src/components/wysiwyg_adapter/wysiwyg_adapter.js +++ b/addons/website/static/src/components/wysiwyg_adapter/wysiwyg_adapter.js @@ -354,9 +354,22 @@ export class WysiwygAdapterComponent extends ComponentAdapter { * @returns {Node[]} list of nodes that can be edited. */ _getContentEditableAreas() { - const savableElements = $(this.websiteService.pageDocument).find(this.savableSelector) - .not('input, [data-oe-readonly],[data-oe-type="monetary"],[data-oe-many2one-id], [data-oe-field="arch"]:empty'); - return Array.from(savableElements).filter(element => !element.closest('.o_not_editable')); + const $savableZones = $(this.websiteService.pageDocument).find(this.savableSelector); + const $editableSavableZones = $savableZones + .not('input, [data-oe-readonly], ' + + '[data-oe-type="monetary"], [data-oe-many2one-id], [data-oe-field="arch"]:empty') + .filter((_, el) => { + return !$(el).closest('.o_not_editable').length; + }); + + // TODO review in master. This stable fix restores the possibility to + // edit the company team snippet images on subsequent editions. Indeed + // this badly relies on the contenteditable="true" attribute being on + // those images but it is rightfully lost after the first save. + // grep: COMPANY_TEAM_CONTENTEDITABLE + const $extraEditableZones = $editableSavableZones.find('.s_company_team .o_not_editable img'); + + return $editableSavableZones.add($extraEditableZones).toArray(); } _getReadOnlyAreas() { return []; diff --git a/addons/website/views/snippets/s_company_team.xml b/addons/website/views/snippets/s_company_team.xml index 04cb3e56fd1..2d4ff7c8fb0 100644 --- a/addons/website/views/snippets/s_company_team.xml +++ b/addons/website/views/snippets/s_company_team.xml @@ -1,6 +1,13 @@ +