6941af612ac78995aad7a6499bff0a573cb720cd
*: web_editor Next commits will extend the main new test to make sure the flows they are fixing are not wrongfully marking the pages as dirty. This commit introduces it on its own as it deserved some more detailed explanations. In 15.0, where this commit is being merged, the final version of the test was failing for no apparent reason on staging only. This is because the staging builds are made with more apps... which fill the website menu with more items in such a way the "+" auto-fold menu feature comes in play. That feature is marking the page as dirty by mistake in this version, 3 different ways for 3 different configurations: - the menu is not folded outside of edit mode and when entering edit mode, the "+" appears and some menu are folded - the menu is folded outside of edit mode and when entering edit mode the resize actually makes it so a different set of menu is folded - the menu is folded outside of edit mode and when entering edit mode it stays the same (known to have been broken because edit mode tweaks the dropdown behavior) The first problem with this is actually the way we check the page is dirty in case of discard: we check the whole DOM and compare it to the way it was when entering edit mode... the whole DOM, including the non editable parts. This is wrong by definition but it is also weird that it does not match what is done when we *save*: where we only consider sections that are explicitly marked as dirty (.o_dirty) and other exceptions. This can't be changed in stable though, some save / discard override may rely on this (not marking with the o_dirty class etc). In 15.0, the original commit of this forward-ported version fixed the 3rd case described above, which was less risky than fixing the 2 others. The cause for the DOM diff in that case was the `data-toggle="dropdown"` which mysteriously reappeared between the moment we check the "initial DOM" and the "DOM when we try to discard". This was because of [1], which makes the dropdowns behave differently in edit mode, combined with the fact that the "+" menu is re-rendered after each resize (and one is triggered when entering edit mode since [2], originally for that actually). That behavior is however apparently not needed for the "+" dropdown, so we simply disable it. Some lower level fix is still needed but will be done in master, as the real problem falls in the dirty page detection system. A test was added for this specific third case. In 16.0, this is different: all 3 cases seem fixed, probably indirectly thanks to the website-in-iframe refactoring at [3] and the bootstrap 5 migration at [4]. Not sure. This forward-port commit thus only adds tests and a bunch of comments. Note that what was said about the 15.0 version was actually not entirely true: "That behavior is however apparently not needed for the "+" dropdown, so we simply disable it." is actually wrong. Indeed, it changed the behavior when clicking *outside* of the extra items menu (which is less important). A patch in 15.0 will be backported anyway to explain that. To make the final test pass, it ensures most menus are removed so that the "+" feature is basically disabled always during the test. Behaviors will of course be fixed in further versions. Note that in this 16.0 forward-ported version, a test kinda already existed for this... although it was badly written and the code that was merged with it actually worsened the dirty check behavior. See [5]. This commit adds comments around some more problematic parts. [1]: https://github.com/odoo/odoo/commit/fe67b34f1a03d838df82a1307cf6467f994a8f3b [2]: https://github.com/odoo/odoo/commit/392c91cda3133b921e9aca9a7b1c511231027438 [3]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b [4]: https://github.com/odoo/odoo/commit/971e5a91aab96d36129a823e03f1f9f1b1293968 [5]: https://github.com/odoo/odoo/commit/650a97d1bd59254cc2115d54d58940b6112a8d70 Related to runbot-18747 X-original-commit: a0b741a53fef6a2a15d9283397dd7ec22d624382 Part-of: odoo/odoo#148728
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%