Monday, January 29, 2024
43 changes · master
Enhancements to existing features
This update strengthens the internal typing used by Odoo's Spreadsheet app, especially around spreadsheet commands, getters, pivots, charts, filters, lists, and related plugins. It helps developers catch mistakes earlier and maintain spreadsheet features more safely, with little direct change for end users.
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update strengthens internal checks in the Spreadsheet app so type-related issues can be caught earlier during development. It helps reduce the risk of future spreadsheet regressions without changing day-to-day user workflows.
Original PR description
Add `// @ts-check` to a few files and fix all typing issues in those files. (requires the latest o-spreadsheet release to include https://github.com/odoo/o-spreadsheet/pull/3538) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This fix restores the intended behavior so live chat startup data includes only active chat conversations. It prevents inactive or unnecessary chats from being loaded, keeping the live chat experience cleaner and more efficient for users.
Original PR description
Since [1], only active live chat channels are returned by the `init_messaging` rpc since the inactive ones are not required. This is done by passing the `is_for_livechat` key in the context. Since [2], the context is not propagated anymore thus inactive channels are returned as well. This PR ensures the context is correctly propagated to keep the previous behavior. [1]: https://github.com/odoo/odoo/pull/146098 [2]: https://github.com/odoo/odoo/pull/150367
Code cleanup and technical improvements
This change reorganizes how user settings and related data are loaded for messaging, documents, VoIP, and live chat features. It reduces unnecessary background calls while ensuring features such as live chat still receive the information they need, improving reliability and responsiveness without changing user workflows.
Original PR description
See individual commits. Part of task-3605717 https://github.com/odoo/odoo/pull/150625
Miscellaneous changes
Implemented 'Codice Fiscale' field in checkout address form, addressing a key need for our Italian customers. This enhancement: - Adds an optional 'Codice Fiscale' field, available for both individuals and companies. - Ensures compliance with Italian e-invoice requirements. This update is a step towards better adapting our system to specific localization requirements, enhancing user experience in italy. task-3623622 --- I confirm I have signed the CLA and read the PR guideline
Original PR description
Implemented 'Codice Fiscale' field in checkout address form, addressing a key need for our Italian customers. This enhancement: - Adds an optional 'Codice Fiscale' field, available for both individuals and companies. - Ensures compliance with Italian e-invoice requirements. This update is a step towards better adapting our system to specific localization requirements, enhancing user experience in italy. task-3623622 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151472 Forward-Port-Of: odoo/odoo#147828
The Social app now opens the Add Stream dialog correctly when debugger mode is enabled. This prevents an error that blocked users from adding new social streams, making stream setup work as expected.
Original PR description
Steps to reproduce =================== 1. Enable debugger mode. 2. Click on the Add Stream button. Error occurred Technical ========== The commit https://github.com/odoo/enterprise/commit/47434fba1acd9b7bcc0a4eb74f6b2dc4454f0068 adds static props to all components. The 'AddSocialStreamDialog' component is missing a few props. After this commit ================== Work perfectly fine.
This commit solves a crash which can happen when a popover points to an element inside an iframe that has been removed from the DOM. In those cases, the element's ownerDocument does not have a defaultView. Forward-Port-Of: odoo/odoo#151246 Forward-Port-Of: odoo/odoo#149174
Original PR description
This commit solves a crash which can happen when a popover points to an element inside an iframe that has been removed from the DOM. In those cases, the element's ownerDocument does not have a defaultView. Forward-Port-Of: odoo/odoo#151246 Forward-Port-Of: odoo/odoo#149174
**[FIX] mail: stop the bubbling of various click events** Technical Reason: - The events bound to the specific elements inside the `FileViewer` are propagating/bubbling up and are triggering the [`onGlobalClick`](https://github.com/odoo/enterprise/blob/eaf40edbbacfc6a8eb9e0137c20e7f94b1f5d723/documents/static/src/views/kanban/documents_kanban_renderer.js#L36-L42) event bound on the [`DocumentsKanbanRenderer`](https://github.com/odoo/enterprise/blob/71dbc617d6fe533c4d0153361f9711bd4c9e48
Original PR description
**[FIX] mail: stop the bubbling of various click events** Technical Reason: - The events bound to the specific elements inside the `FileViewer` are propagating/bubbling up and are triggering the…
**[FIX] mail: stop the bubbling of various click events** Technical Reason: - The events bound to the specific elements inside the `FileViewer` are propagating/bubbling up and are triggering the [`onGlobalClick`](https://github.com/odoo/enterprise/blob/eaf40edbbacfc6a8eb9e0137c20e7f94b1f5d723/documents/static/src/views/kanban/documents_kanban_renderer.js#L36-L42) event bound on the [`DocumentsKanbanRenderer`](https://github.com/odoo/enterprise/blob/71dbc617d6fe533c4d0153361f9711bd4c9e4885/documents/static/src/views/kanban/documents_kanban_renderer.xml#L6) After this commit: - Only the events bound to the specific HTMLElements are now triggered. - We successfully prevent the unnecessary call of the `onGlobalClick` method mentioned above. link to the related enterprise PR (contains the test case for this fix)- https://github.com/odoo/enterprise/pull/55150 Task-3489455 Forward-Port-Of: odoo/odoo#150754 Forward-Port-Of: odoo/odoo#142807 --- The issue of the `DocumentsInspector` losing focus on the selected document is not observed in versions saas-16.4 and above because - **Previously (i.e. in versions 16.3 and below),** - The document we click to preview used to get selected, it was then passed to the `DocumentsInspector` as the `selection` prop. - The inspector relied on the [`nbPreviews`](https://github.com/odoo/enterprise/pull/40441/files#diff-2d135414449d55788e2e9449cab08f4d30f006fa009824bb1d17afa00c63d810R19) i.e. `props.selection.length` to evaluate which template to render for the `DocumnetsInspector`. - It is this line --> `this.props.list.selection.forEach(el => el.toggleSelection(false));` inside [`onGlobalClick`](https://github.com/odoo/enterprise/blob/saas-16.3/documents/static/src/views/kanban/documents_kanban_renderer.js#L36-L42) method, which toggles the selection to `false` and now when the inspector appears to lose focus and paints itself with the template when no document is selected. **Now (saas-16.4 and above)** - We use the [`documents`](https://github.com/odoo/enterprise/pull/40441/files#diff-2d135414449d55788e2e9449cab08f4d30f006fa009824bb1d17afa00c63d810R7) prop as a condition to render the inspector. [`documents` prop initiallisation](https://github.com/odoo/enterprise/pull/40441/files#diff-0011f60b4981cbcd7e4c5f6fbee6c682ce7187f8f85d3beb3fac0bb4f07a6c01R101). - The inspector no longer relies on the actual selection of the documents for deciding on which template to render. And hence it doesn't lose focus even if the `onGlobalClick` deselect the selected documents. - Also, the props passed to the inspector are only reset when we close the FileViewer. ref - https://github.com/odoo/enterprise/blob/saas-16.4/documents/static/src/views/hooks.js#L317 PR that introduced the above changes - https://github.com/odoo/enterprise/pull/40441
Steps to reproduce the bug: - Create a storable product “P1” with BoM: - Component: C1, Qty: 1 - Create a Mo to produce 5 units of P1 - Confirm and mark as done the MO - Unlock the MO - Change the qty produced to 20 - Try to unbuild the MO Problem: Bug 1: The wizard triggered is set with the product_qty(5) instead of the qty_produced (20) Bug 2: Set the product_qty to 5 and validate the unbuild, in result the stock moves in the unbuild order are 20 units instead of 5 units
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1” with BoM:
- Component: C1, Qty: 1
- Create a Mo to produce 5 units of P1
- Confirm and mark as done the MO
- Unlock the MO
- Change the qty produced to 20
- Try to unbuild the MO
Problem:
Bug 1: The wizard triggered is set with the product_qty(5) instead of the qty_produced (20)
Bug 2: Set the product_qty to 5 and validate the unbuild, in result
the stock moves in the unbuild order are 20 units instead of 5 units
opw-3630001
Forward-Port-Of: odoo/odoo#149866
Forward-Port-Of: odoo/odoo#146211Since 17.0 , calls to _get_combination_info on the /shop/cart page were removed to avoid recomputing values already stored on the cart, speeding up the page loading. See 824fc94bbcc6ea63b5416a2be59b860ef65714eb Nevertheless, this highlighted the difference in pricelist discount computation between sale and website_sale. In sale, the discount is computed while considering the base price of the pricelist, whereas for `website_sale`, the base price was always the sales price. To make s
Original PR description
Since 17.0 , calls to _get_combination_info on the /shop/cart page were removed to avoid recomputing values already stored on the cart, speeding up the page loading. See 824fc94bbcc6ea63b5416a2be59b860ef65714eb Nevertheless, this highlighted the difference in pricelist discount computation between sale and website_sale. In sale, the discount is computed while considering the base price of the pricelist, whereas for `website_sale`, the base price was always the sales price. To make sure the crossed price displayed is the sales price as before on /shop/cart, we override the default sale behavior to force the sales price to be considered as price before the pricelist discount. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151321
Before this commit the button to add documents from an URL is labeled "Add Document" which is confusing given it is displayed besides an "Upload Document" button. This commit renames the "Add Document" button into "Add URL" to make its purpose more obvious. task-3493618 Forward-Port-Of: odoo/odoo#149406 Forward-Port-Of: odoo/odoo#136512
Original PR description
Before this commit the button to add documents from an URL is labeled "Add Document" which is confusing given it is displayed besides an "Upload Document" button. This commit renames the "Add Document" button into "Add URL" to make its purpose more obvious. task-3493618 Forward-Port-Of: odoo/odoo#149406 Forward-Port-Of: odoo/odoo#136512
Steps: - In mobile open project - Project.project form view - Share project - Invite people, the 'email' is displayed twice in the kanban view Issue: - In mobile when project share invite people, the 'email' is displayed twice in the kanban view Cause: - This will be coming because of the context for show_email Fix: - By removing of context show_email it will be working fine. task-3550702 Forward-Port-Of: odoo/odoo#150528 Forward-Port-Of: odoo/odoo#140920
Original PR description
Steps: - In mobile open project - Project.project form view - Share project - Invite people, the 'email' is displayed twice in the kanban view Issue: - In mobile when project share invite people, the 'email' is displayed twice in the kanban view Cause: - This will be coming because of the context for show_email Fix: - By removing of context show_email it will be working fine. task-3550702 Forward-Port-Of: odoo/odoo#150528 Forward-Port-Of: odoo/odoo#140920
Dependencies and other manifest attributes are not set for data modules. Note: it's easier to reproduce issue in 17 since we have data module available on runbot. **steps to reproduce (in 17.0):** - install an industry (ex: bar_and_lounge) - uninstall a dependency of that module (ex: mrp) **before this commit:** - bar_and_lounge is not uninstalled if you uninstall mrp **after this commit:** - data model dependencies are handled the same way as 'regular' modules opw-3660052
Original PR description
Dependencies and other manifest attributes are not set for data modules. Note: it's easier to reproduce issue in 17 since we have data module available on runbot. **steps to reproduce (in 17.0):** - install an industry (ex: bar_and_lounge) - uninstall a dependency of that module (ex: mrp) **before this commit:** - bar_and_lounge is not uninstalled if you uninstall mrp **after this commit:** - data model dependencies are handled the same way as 'regular' modules opw-3660052 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151261 Forward-Port-Of: odoo/odoo#149574
Steps to reproduce the bug (starting from saas-16.4 only!): - Go to the website app - Enter edit mode => Bug: the editor toolbar appears for a few ms, then disappears. This bug occurs since [1], whose original commit was actually merged in 16.0 with [2]. The reason the bug only appears in saas-16.4 and not 16.0 is because of [3]. Commits [1] and [2] change the elements that are considered "tab-able" and thus the elements that can be auto-focused by the `useActiveElement` hook. That hook
Original PR description
Steps to reproduce the bug (starting from saas-16.4 only!): - Go to the website app - Enter edit mode => Bug: the editor toolbar appears for a few ms, then disappears. This bug occurs since [1],…
Steps to reproduce the bug (starting from saas-16.4 only!): - Go to the website app - Enter edit mode => Bug: the editor toolbar appears for a few ms, then disappears. This bug occurs since [1], whose original commit was actually merged in 16.0 with [2]. The reason the bug only appears in saas-16.4 and not 16.0 is because of [3]. Commits [1] and [2] change the elements that are considered "tab-able" and thus the elements that can be auto-focused by the `useActiveElement` hook. That hook is actually used when we enter edit mode since [4], as a way to declare the editor as the active element so that keyboard shortcuts work (as indicated by the related commit). What actually happens thanks to the hook is that once we enter edit mode the "Block" button of the right panel is focused. This is because it is considered to be the first "tab-able" element (with or without [1]/[2]). Then keyboard shortcuts work as expected as the right panel is focused. However, since [3], the `useActiveElement` hook is called "too soon". Indeed the right panel is not actually inside the "auto-focused" editor container yet**. The result is that what is now "auto-focused" is the editor toolbar***. Before [1], the element in the toolbar that was focused was an invisible one, so no bug appeared. Since [1], we only auto-focus visible elements... so we now focus a visible element in the editor toolbar, making it visible during editor instantiation. This commit fixes the issue independently of [3] (which is why this targets 16.0: to consolidate the codebases). Actually, the use of the `useActiveElement` hook added by [4] is useless. It was fixing the issue at the time, but the real solution was to do what was done since at [5]. Indeed, the keyboard shortcuts were not working because the backend navbar was still visible (even if outside of the viewport) so it was its keyboard shortcuts that took precedence. Since [5], the use of `useActiveElement` actually has not benefit anymore. The editor is part of the backend UI, the backend UI is still focused after entering edit mode, shortcuts targeting the editor panel are thus working naturally. Removing the use of the `activeElement` hook only has one side effect: the "Block" button of the right panel is not auto-focused anymore... which is not needed. Notes: - The `useActiveElement` hook also has another purpose: allowing cycling using tab and shift-tab, it should work naturally as with the backend UI anyway but mainly: tab and shift-tab do not seem to be working with the editor UI anyway. - Another hint that [4] was not right way to go is that this is the only use of the `useActiveElement` hook in the whole codebase, except for the framework use for dialogs. - ** That should maybe be solved on its own, although maybe it is not important and risky at best. - *** The editor toolbar should not even be instantiated that way in the first place since it will be attached to the right panel later... but that is another issue. [1]: https://github.com/odoo/odoo/commit/c631bf09b927003edc4c2b85e8790e8e2e8c044a [2]: https://github.com/odoo/odoo/commit/57452ee59c3e33eaa219d8d7b8d82239fd33b722 [3]: https://github.com/odoo/odoo/commit/76d4f9811b756f0e57b0a33dbba534c900c7fe15 [4]: https://github.com/odoo/odoo/commit/b0108e1876a27e83231e176cdca3e2d67d6a2a9c [5]: https://github.com/odoo/odoo/commit/cdc8d4c889b316664323afad0d848403960150d5 task-3686730 Forward-Port-Of: odoo/odoo#151373 Forward-Port-Of: odoo/odoo#151209
Steps to reproduce: - Create a product and set it tracked by lot and expirable - Create a lot for this product that is already expired - Create a MO using this product as component and confirm it - Go the Shop floor and force the use of the expired lot for this component - Click on 'Close Production', a traceback will appear Issue: Since the action is defined directly in the python code, we don't have some extra fields that are usually computed on a `ir.actions.act_window` record, such
Original PR description
Steps to reproduce: - Create a product and set it tracked by lot and expirable - Create a lot for this product that is already expired - Create a MO using this product as component and confirm it - Go the Shop floor and force the use of the expired lot for this component - Click on 'Close Production', a traceback will appear Issue: Since the action is defined directly in the python code, we don't have some extra fields that are usually computed on a `ir.actions.act_window` record, such as the `views` field. Yet, on the js side, the action service requires that field to properly work [1], so we add it in the action definition. [1] https://github.com/odoo/odoo/blob/294a37b0a31ec88165da596c3f3e2dd6f6cb735d/addons/web/static/src/webclient/actions/action_service.js#L261 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151084
**[FIX] sale_product_configurator: allow type False for customValue** Steps to reproduce(locally): 1) Create SO with the product that has a custom value attribute 2) Leave the custom field empty 3) Save SO and open product configurator again 4) Observe TypeError traceback Reason: customValue is supposed to be string but if value is not set, it remains False which cause a type error. After this commit: allow customValue be false **[FIX] sale_product_configurator: set value for no
Original PR description
**[FIX] sale_product_configurator: allow type False for customValue** Steps to reproduce(locally): 1) Create SO with the product that has a custom value attribute 2) Leave the custom field empty 3)…
**[FIX] sale_product_configurator: allow type False for customValue** Steps to reproduce(locally): 1) Create SO with the product that has a custom value attribute 2) Leave the custom field empty 3) Save SO and open product configurator again 4) Observe TypeError traceback Reason: customValue is supposed to be string but if value is not set, it remains False which cause a type error. After this commit: allow customValue be false **[FIX] sale_product_configurator: set value for no_variant attribute** Steps to reproduce: 1) Create product with an attribute that has several values and with an attribute with 'create_mode = 'no_variant' and one value. 2) Create SO with this product, save 3) Open product configurator again and see the traceback Reason: selected_attribute_value_id is not set. After this commit: the attribure value is defined in get_values of product configurator. opw-3513685 **[FIX] sale_product_configurator,product: show archived combination** Steps to reproduce: 1) Create SO with customizable product (example “Customizable Desk”) 2) Let default values in product configurator 3) Save SO 4) Go to product template, and in the Attribute remove all value options, only leaving the custom value 5) Try to open the product in configurator in the saved SO Reason: archived combination is not loaded After this commit: When requested combination is archived, load it opw-3513685 Forward-Port-Of: odoo/odoo#150653 Forward-Port-Of: odoo/odoo#146454
Description of the issue/feature this PR addresses: The module `l10n_ch` after this commit https://github.com/odoo/odoo/commit/7a06ed07814ab8d9192d3a7ec15aba7f90f7294d will have deprecated `account_report_expression` with dependent external values, which causes ForeignKey Violation during the upgrade. Upgrade tries to remove that `expression` because it is deprecated but it has dependent external values. Current behavior before PR: Upgrade tries to remove that `expression` because it is d
Original PR description
Description of the issue/feature this PR addresses: The module `l10n_ch` after this commit https://github.com/odoo/odoo/commit/7a06ed07814ab8d9192d3a7ec15aba7f90f7294d will have deprecated…
Description of the issue/feature this PR addresses: The module `l10n_ch` after this commit https://github.com/odoo/odoo/commit/7a06ed07814ab8d9192d3a7ec15aba7f90f7294d will have deprecated `account_report_expression` with dependent external values, which causes ForeignKey Violation during the upgrade. Upgrade tries to remove that `expression` because it is deprecated but it has dependent external values. Current behavior before PR: Upgrade tries to remove that `expression` because it is deprecated but it has dependent external values. It will happen to all db's which were on at least `16.0` version before that commit https://github.com/odoo/odoo/commit/7a06ed07814ab8d9192d3a7ec15aba7f90f7294d Desired behavior after PR is merged: That deprecated external values will be deleted in upgrade. In here I delete that external values in migration file and increased the version of module from `11.1`-->`11.2` UPG-1203672 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150650
When updating contracts, work entries are recomputed automatically for the employee linked to that contract. However some contracts might not have an employee, which raises an error. Added a check to recompute work entries only if the contract has an employee. Task: 3614495 Forward-Port-Of: odoo/odoo#150932 Forward-Port-Of: odoo/odoo#148419
Original PR description
When updating contracts, work entries are recomputed automatically for the employee linked to that contract. However some contracts might not have an employee, which raises an error. Added a check to recompute work entries only if the contract has an employee. Task: 3614495 Forward-Port-Of: odoo/odoo#150932 Forward-Port-Of: odoo/odoo#148419
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150923 Forward-Port-Of: odoo/odoo#150857
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150923 Forward-Port-Of: odoo/odoo#150857
With this change, we can set other conditions easily. Also, it allows us to check if it can be payed without actually executing the pay function, because sometimes we don't want to change the screen but we want to check if the order can be processed for payment. For example, we could disable the Pay Button from the Product Screen --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150914
Original PR description
With this change, we can set other conditions easily. Also, it allows us to check if it can be payed without actually executing the pay function, because sometimes we don't want to change the screen but we want to check if the order can be processed for payment. For example, we could disable the Pay Button from the Product Screen --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150914
Do not use demo data in test. Runbot error: 55596 Forward-Port-Of: odoo/odoo#151068 Forward-Port-Of: odoo/odoo#150421
Original PR description
Do not use demo data in test. Runbot error: 55596 Forward-Port-Of: odoo/odoo#151068 Forward-Port-Of: odoo/odoo#150421
When flagging a post, moderators should see the flagged moderation queue counter appear/increment. We renamed the span in 21531bd9 and forgot to update this reference. Task-3349373 Forward-Port-Of: odoo/odoo#149645
Original PR description
When flagging a post, moderators should see the flagged moderation queue counter appear/increment. We renamed the span in 21531bd9 and forgot to update this reference. Task-3349373 Forward-Port-Of: odoo/odoo#149645
Steps: - Install subscription and razorpay app. - Configure razorpay provider with tokenizable razorpay account. - Enable allow tokenize field. - create subscription with more then 100k and less then 500k amount. - Try to pay that subscription with razorpay. Issue: - Throwing limit exceed warning even though amount is less then 500k which can create token and paid normally. Cause: - We forgot to check minimum of method max amount and amount * 5 to send proper mandate max amount whi
Original PR description
Steps: - Install subscription and razorpay app. - Configure razorpay provider with tokenizable razorpay account. - Enable allow tokenize field. - create subscription with more then 100k and less then 500k amount. - Try to pay that subscription with razorpay. Issue: - Throwing limit exceed warning even though amount is less then 500k which can create token and paid normally. Cause: - We forgot to check minimum of method max amount and amount * 5 to send proper mandate max amount while creating token and because of that paying more then 100k via subscription raise error even to it should processed normally. Fix: - Check minimum of `method max amount` and `amount * 5` to send proper mandate max amount so it'll not raise error while paying amount in between 100k to 500k. See also: - https://github.com/odoo/enterprise/pull/55009 Forward-Port-Of: odoo/odoo#151335 Forward-Port-Of: odoo/odoo#150410
The aim of this commit is to make the duplicate bill warning works in edit mode. This is a backport of some fixes that were done in the following commit: cb694599583f5df1667984fee01bbcc4c8b2d409 Before the commit: The warning couldn't be triggered in edit mode. After the commit: The warning is triggered as soon as the field is unfocused. task-id: None Forward-Port-Of: odoo/odoo#151454 Forward-Port-Of: odoo/odoo#149416
Original PR description
The aim of this commit is to make the duplicate bill warning works in edit mode. This is a backport of some fixes that were done in the following commit: cb694599583f5df1667984fee01bbcc4c8b2d409 Before the commit: The warning couldn't be triggered in edit mode. After the commit: The warning is triggered as soon as the field is unfocused. task-id: None Forward-Port-Of: odoo/odoo#151454 Forward-Port-Of: odoo/odoo#149416
The tax with xmlid vat_0_import was missing its repartition lines which caused validation errors. This PR adds empty repartition lines to fix this problem. Forward-Port-Of: odoo/odoo#151052 Forward-Port-Of: odoo/odoo#150874
Original PR description
The tax with xmlid vat_0_import was missing its repartition lines which caused validation errors. This PR adds empty repartition lines to fix this problem. Forward-Port-Of: odoo/odoo#151052 Forward-Port-Of: odoo/odoo#150874
Current behaviour before commit: In a saved pad, putting cursor inside a link without making any other changes makes editor dirty. This happens because `sanitize` method fails to sanitize the clone node of root editable element. As result discard button appears on top. Desired behaviour after commit: Now, `sanitize` method sanitizes the clone node of root editable element. Due to this, putting cursor inside a link without editing doesn't make editor dirty and discard button doesn't
Original PR description
Current behaviour before commit: In a saved pad, putting cursor inside a link without making any other changes makes editor dirty. This happens because `sanitize` method fails to sanitize the clone node of root editable element. As result discard button appears on top. Desired behaviour after commit: Now, `sanitize` method sanitizes the clone node of root editable element. Due to this, putting cursor inside a link without editing doesn't make editor dirty and discard button doesn't appear on top. task-3607361 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151094 Forward-Port-Of: odoo/odoo#143737
Steps to reproduces: - Create two products one with UoM units and the other grams - Create and confirm an SO with these two products - Set quantities and validate the transfer - Click "Print labels" Bug: only products with UoM units are printed because "quantity_by_product" is overwritten with only those products moved qty Fix: print a single label for the other UoMs opw-3676642 Forward-Port-Of: odoo/odoo#151236 Forward-Port-Of: odoo/odoo#150407
Original PR description
Steps to reproduces: - Create two products one with UoM units and the other grams - Create and confirm an SO with these two products - Set quantities and validate the transfer - Click "Print labels" Bug: only products with UoM units are printed because "quantity_by_product" is overwritten with only those products moved qty Fix: print a single label for the other UoMs opw-3676642 Forward-Port-Of: odoo/odoo#151236 Forward-Port-Of: odoo/odoo#150407
Prior to this commit, when adding a product to an order, navigating back to the floor screen, and subsequently reopening the table, clicking on "Order" would send the order to the preparation display again. The issue stemmed from the fact that "this" was being added to "ordersToUpdateSet" in posStore, whereas "order" should be added to that set. opw-3687977 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150674
Original PR description
Prior to this commit, when adding a product to an order, navigating back to the floor screen, and subsequently reopening the table, clicking on "Order" would send the order to the preparation display again. The issue stemmed from the fact that "this" was being added to "ordersToUpdateSet" in posStore, whereas "order" should be added to that set. opw-3687977 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150674
Before this commit, since [1], the "small" class behavior of Bootstrap was changed to use a fixed value instead of being dependent on the context (using `em` units). This was a bad choice, given the fact that the "small" class could be used in the past with its previous behavior in custo but also in default Odoo layouts, where it could be use in more legit cases that the one Odoo currently offers: instead of applying the class to a whole paragraph, applying it to part of a title. In that cas
Original PR description
Before this commit, since [1], the "small" class behavior of Bootstrap was changed to use a fixed value instead of being dependent on the context (using `em` units). This was a bad choice, given the…
Before this commit, since [1], the "small" class behavior of Bootstrap was changed to use a fixed value instead of being dependent on the context (using `em` units).
This was a bad choice, given the fact that the "small" class could be used in the past with its previous behavior in custo but also in default Odoo layouts, where it could be use in more legit cases that the one Odoo currently offers: instead of applying the class to a whole paragraph, applying it to part of a title.
In that case, since [1], we can have a big title ... with a very small text next to it, which may be strange. Of course, the proper way to achieve a big title with a smaller text next to it would be to not use "small" but another hx font-size, but the legit bootstrap behavior which is to use their "small" class is thus broken.
This commit keeps the current possibilities (big title with very small text next to it) but does it by using new custom Odoo classes instead of changing the Bootstrap "small" one. That way, legit custo in previous versions (or trying to use default Bootstrap in this version) will be supported.
Note that this commit will impact existing 17.0 users though: if they actually configured a big title with small inner text... those will become big title with slightly smaller inner text (the default Bootstrap behavior). Worse: a big title whose size was reduced using the font-size selector and choosing "small" will now become a big title. We think this is worth the risk (see PR description for more visual details).
However, notice that "legit" use case of the "small" font-size in 17.0 will be kept untouched: e.g. adding a small text on its own or next to a paragraph: the "smaller" Bootstrap behavior is now computed based on the ratio of the configured base and small font-sizes.
Note that some additional "bugs" were found investigating this:
- Form descriptions use the "small" class for no reason and should probably not be possible to customize ("font style"-wise) anyway.
- The use of the "small" *tag* should probably be reviewed in all Odoo layouts and/or its interaction with the editor be fixed.
[1]: https://github.com/odoo/odoo/commit/194f73a9bbad8c3c3fb5c378e7bdfa704aaacdc0
| Before this PR | After this PR |
| -------- | -------- |
|  |  |
|  |  |
=> Legit use cases untouched, weird use cases impacted (should be rare, especially see also the weird margin-top in the second one), custo use case (@JKE-be 's case) solved.
Forward-Port-Of: odoo/odoo#149590Currently the version of the cryptography module installed with the version of pyOpenssl 22.0.0 does not allow the execution of the Odoo server on the iot for versions 15, 16 and 17. With this change we explicitly give the version of the cryptography module 36.0.2 which corrects this problem. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at w
Original PR description
Currently the version of the cryptography module installed with the version of pyOpenssl 22.0.0 does not allow the execution of the Odoo server on the iot for versions 15, 16 and 17. With this change we explicitly give the version of the cryptography module 36.0.2 which corrects this problem. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151504
The import feature of matching numbers was done manually in all imports, but the generic import was missing. For instance, with this file: ```csv name,line_ids/account_id,line_ids/debit,line_ids/credit,line_ids/matching_number test 2,400000,,121,1 ,500000,121 test 1,400000,121,,1 ,451000,,21 ,700000,,100 ``` The system wouldn't understand that this is an imported number. Forward-Port-Of: odoo/odoo#151337 Forward-Port-Of: odoo/odoo#150848
Original PR description
The import feature of matching numbers was done manually in all imports, but the generic import was missing. For instance, with this file: ```csv name,line_ids/account_id,line_ids/debit,line_ids/credit,line_ids/matching_number test 2,400000,,121,1 ,500000,121 test 1,400000,121,,1 ,451000,,21 ,700000,,100 ``` The system wouldn't understand that this is an imported number. Forward-Port-Of: odoo/odoo#151337 Forward-Port-Of: odoo/odoo#150848
In iot, when we send a request to the route '/hw_posbox_homepage/password' we pass a variable which is unused. And which therefore causes a warning in the iot logs. This commit removes the query parameter. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151505
Original PR description
In iot, when we send a request to the route '/hw_posbox_homepage/password' we pass a variable which is unused. And which therefore causes a warning in the iot logs. This commit removes the query parameter. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#151505
In this PR we improve the usability of a production payroll app where dashboard warnings might take a long time to load by loading them asynchronously using rpc calls. task-3597092 Forward-Port-Of: odoo/enterprise#55298 Forward-Port-Of: odoo/enterprise#55210
Original PR description
In this PR we improve the usability of a production payroll app where dashboard warnings might take a long time to load by loading them asynchronously using rpc calls. task-3597092 Forward-Port-Of: odoo/enterprise#55298 Forward-Port-Of: odoo/enterprise#55210
Before this commit: When a user attempts to upload a file other than pdf in the PDF split page, it gives a traceback. After this commit: Now, user can only upload pdf files. Task-3613032 Forward-Port-Of: odoo/enterprise#55266 Forward-Port-Of: odoo/enterprise#52225
Original PR description
Before this commit: When a user attempts to upload a file other than pdf in the PDF split page, it gives a traceback. After this commit: Now, user can only upload pdf files. Task-3613032 Forward-Port-Of: odoo/enterprise#55266 Forward-Port-Of: odoo/enterprise#52225
This commit add MRR in `_get_mandate_values` return dict to use it in at time of token creation to set max amount according to MRR of subscription. See also: - https://github.com/odoo/odoo/pull/150410 Forward-Port-Of: odoo/enterprise#55230 Forward-Port-Of: odoo/enterprise#55009
Original PR description
This commit add MRR in `_get_mandate_values` return dict to use it in at time of token creation to set max amount according to MRR of subscription. See also: - https://github.com/odoo/odoo/pull/150410 Forward-Port-Of: odoo/enterprise#55230 Forward-Port-Of: odoo/enterprise#55009
…rder.log.report taskid: 3702648 Forward-Port-Of: odoo/enterprise#55102
Original PR description
…rder.log.report taskid: 3702648 Forward-Port-Of: odoo/enterprise#55102
Steps: - Install subscription app and razorpay provider. - Configure and publish razorpay provider. - Create a subscription and pay via razorpay. - Now change system date to next recurring date. Issue: - Subscription is in `Payment Failure` state even though payment is successfully captured. Cause: - Because of concurrent update in database while creating transaction from token for recurring charges - When razorpay make tokenize request via `_send_payment_request` method then
Original PR description
Steps: - Install subscription app and razorpay provider. - Configure and publish razorpay provider. - Create a subscription and pay via razorpay. - Now change system date to next recurring date.…
Steps: - Install subscription app and razorpay provider. - Configure and publish razorpay provider. - Create a subscription and pay via razorpay. - Now change system date to next recurring date. Issue: - Subscription is in `Payment Failure` state even though payment is successfully captured. Cause: - Because of concurrent update in database while creating transaction from token for recurring charges - When razorpay make tokenize request via `_send_payment_request` method then transaction process data via `_handle_notification_data` and from web-hook so it tries to write on transaction with same data multiple times and at same time subscription also tries to write so because of concurrent update it skips to write on subscription and subscription stays in `Payment Failure` state. Fix: - Handle writing on subscription in there state changing method instead of trying to write in between when transaction processing so it does not skip writing on subscription and properly set/remove subscription state. task-3652228 Forward-Port-Of: odoo/enterprise#53792
In large database when you unlink an attachment (during assets generate for exemple or unlink record with attachments) can be take 1 second. Forward-Port-Of: odoo/enterprise#54261 Forward-Port-Of: odoo/enterprise#54213
Original PR description
In large database when you unlink an attachment (during assets generate for exemple or unlink record with attachments) can be take 1 second. Forward-Port-Of: odoo/enterprise#54261 Forward-Port-Of: odoo/enterprise#54213
Since 1st January 2024 the tax scale V has been added source: https://www.estv.admin.ch/estv/fr/accueil/impot-federal-direct/impot-a-la-source/baremes-is-salaires.html Forward-Port-Of: odoo/enterprise#55237
Original PR description
Since 1st January 2024 the tax scale V has been added source: https://www.estv.admin.ch/estv/fr/accueil/impot-federal-direct/impot-a-la-source/baremes-is-salaires.html Forward-Port-Of: odoo/enterprise#55237
The assignation of the "active" field to False should be done in a noupdate block. Otherwise, a report manually enabled by a user will disable itself at module update (hence, also at upgrade). Forward-Port-Of: odoo/enterprise#55118 Forward-Port-Of: odoo/enterprise#54684
Original PR description
The assignation of the "active" field to False should be done in a noupdate block. Otherwise, a report manually enabled by a user will disable itself at module update (hence, also at upgrade). Forward-Port-Of: odoo/enterprise#55118 Forward-Port-Of: odoo/enterprise#54684
Forward-Port-Of: odoo/enterprise#55166
Original PR description
Forward-Port-Of: odoo/enterprise#55166
The exchange difference on the bank reconciliation widget is wrongly computed when the statement line has a foreign currency but not the counterpart aml mounted on the widget. opw: 3376318 Forward-Port-Of: odoo/enterprise#55051 Forward-Port-Of: odoo/enterprise#53606
Original PR description
The exchange difference on the bank reconciliation widget is wrongly computed when the statement line has a foreign currency but not the counterpart aml mounted on the widget. opw: 3376318 Forward-Port-Of: odoo/enterprise#55051 Forward-Port-Of: odoo/enterprise#53606
**[FIX] documents: validate document existence using `datapoint_id`** Issue: - The existing condition inside the `insert()` method incorrectly identifies the incoming new record (data) as an already existing record inside `this.store.Document.records` Reason: - It uses `id` to check for a new document, but the `id` remains the same in the following cases. - In case of replacing a document with a new document. - Replacing the requested document with the new document. - As a
Original PR description
**[FIX] documents: validate document existence using `datapoint_id`** Issue: - The existing condition inside the `insert()` method incorrectly identifies the incoming new record (data) as an already…
**[FIX] documents: validate document existence using `datapoint_id`** Issue: - The existing condition inside the `insert()` method incorrectly identifies the incoming new record (data) as an already existing record inside `this.store.Document.records` Reason: - It uses `id` to check for a new document, but the `id` remains the same in the following cases. - In case of replacing a document with a new document. - Replacing the requested document with the new document. - As a result, the records inside the `this.store.Document` remains inconsistent with the records present in the database. After this commit: - We use the `id` of the record (ex- `datapoint_32`) to check for the presence of a new document. link to the issue being tested by the test case in this commit (also the related community PR - https://github.com/odoo/odoo/pull/151144) Task-3489455 Forward-Port-Of: odoo/enterprise#54969 Forward-Port-Of: odoo/enterprise#50098 --- - The test case in this forward port PR is different from its predecessor in the [v16.3 PR](https://github.com/odoo/enterprise/pull/50098) because - It was based on checking the resultant UI changes caused by the call of the `onGlobalClick` method (inside the `DocumentsKanbanRenderer`). - But, the test case here directly checks if the method is called, and does not rely on the UI changes. - Reason to change the test case - - **The functional issue of the inspector losing the focus (as mentioned in https://github.com/odoo/odoo/pull/142807) is not observed for versions 16.4 and above.** - Please take a look at the related community PR for more information.