When a checklist is present in an html field, there is a feature that allows us to check/uncheck its boxes without going through edit mode. That feature was broken due to a dead callback in wysiwyg.js, which is hereby restored. Meanwhile, the behaviour of checklists had changed but the python code handling the readonly checking/unchecking hadn't so this brings it up to date[1]. Finally, the code managing checklist ids was unnecessarily complicated as it was trying to keep the ids consecutive for no particular reason. This refactors it to simply use unique ids based on date stamps. [1] It used to be that checking a box checked all the children of that box but it was in the meantime decided not to do that anymore. Part-of: odoo/odoo#81920
Odoo editor
A fast wysiwyg editor targeting documents and website structures.
Key features
Unbreakable nodes
When editing some sections of a website, there is a possibility for a selection to start or end within a node that is contained in an unbreakable.
If the user deletes the content of the selection, the unbreakable node should not be merged with another one.
Demo
To open the demo page:
http://<host:port>/web_editor/static/lib/odoo-editor/demo/index.html
Tests
To open the test page, go to
http://<host:port>/web_editor/static/lib/odoo-editor/test/editor-test.html
Prettify
# install prettier
npm install -g prettier
# prettify
prettier --config '<odoo-path>/addons/web_editor/static/lib/odoo-editor/_prettierrc.js' --ignore-path='<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/_prettierignore' '<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/**/*.js' --write
Prettify with vscode
Install vscode extention esbenp.prettier-vscode.
Add the following configuration in your vscode user config or workspace config:
"prettier.requireConfig": true,
"prettier.configPath": "<odoo-path>/odoo/addons/web_editor/static/lib/odoo-editor/.prettierrc.js",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
Then you can use the command Format Document or use ctrl+h to format a file.