Friday, February 14, 2025
52 changes · saas-18.1
Enhancements to existing features
Self-ordering setup can now download table QR codes as both PNG and SVG files in the same zip. The SVG format makes the codes easier to use for high-quality printing, engraving, or custom physical materials such as coasters.
Original PR description
In the config page of the self order there is an option to download a zip containing all of the table qr codes in png format. In this commit we include also svg variants for each qrcode in the zip file. This is helpful for certain applications, for ex engraving the qr codes on coasters, using laser engraving machines. Task: 4575936 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
The French financial reports now include newly required accounts in the profit and loss statement. This helps businesses using French localization produce more complete and accurate reporting.
Original PR description
(cherry picked from commit bd247dde7dd0d6080ac70ea5bbd99f9a59061976) parent https://github.com/odoo/enterprise/pull/79361 FYI @FlorianGilbert
Miscellaneous changes
Steps to reproduce ================== - Install account - Open an invoice - Click on the cog - Click on "Generate a Payment Link" - Open the browser devtools and add a delay in the network tab to simulate a slow network - Edit the amount - Click on the Copy button => The copied URL is not up to date and contains the previous amount Cause of the issue ================== The copy button is actually a field named `link` Changing the `amount` causes an onchange that updates the
Original PR description
Steps to reproduce ================== - Install account - Open an invoice - Click on the cog - Click on "Generate a Payment Link" - Open the browser devtools and add a delay in the network tab to simulate a slow network - Edit the amount - Click on the Copy button => The copied URL is not up to date and contains the previous amount Cause of the issue ================== The copy button is actually a field named `link` Changing the `amount` causes an onchange that updates the `link` value. When the button is clicked, the amount field is blurred, and this starts the onchange. The link is then immediately copied without waiting for the new value. Solution ======== There is no mechanism in the framework made for this purpose, but what we can do, is wait for the model mutex to be unlocked. The lock is held during the onchange, so it is guaranteed that the up to date link is copied. opw-4358629 Forward-Port-Of: odoo/odoo#197700 Forward-Port-Of: odoo/odoo#197008
Subscription orders now update the assigned sales team when the salesperson is changed. This keeps ownership and reporting accurate for long-running ecommerce subscriptions without triggering unnecessary earlier notifications.
Original PR description
Since odoo/odoo@27bf2e55810b200563ed6b93b1e22dfda65cf4ea, salesman and salesteam are not assigned on ecommerce orders until the order is confirmed, to avoid useless notifications. Nevertheless, this disabled the salesteam recomputation on confirmed ecommerce orders when the salesman is modified. This became an issue for long-lived orders like subscription orders, where the salesman can change, and the team should be updated accordingly. This commit makes sure the salesteam is correctly recomputed when the salesman is modified on a subscription order.
Before this commit, the response from the request that obtains the TURN servers from twilio would fail silently. This commit fixes this issue by logging the status code and te content of the response in case of failure. Forward-Port-Of: odoo/odoo#197723 Forward-Port-Of: odoo/odoo#197628
Original PR description
Before this commit, the response from the request that obtains the TURN servers from twilio would fail silently. This commit fixes this issue by logging the status code and te content of the response in case of failure. Forward-Port-Of: odoo/odoo#197723 Forward-Port-Of: odoo/odoo#197628
This commit fix this UI problem: When you are on an account_move view, create a line and input multiple analytic distributions, the line height stay fixed, and it crop the distributions, making the line unreadable. This commit add a variable height on the analytic_distribution field. task-4213064 Forward-Port-Of: odoo/odoo#194489
Original PR description
This commit fix this UI problem: When you are on an account_move view, create a line and input multiple analytic distributions, the line height stay fixed, and it crop the distributions, making the line unreadable. This commit add a variable height on the analytic_distribution field. task-4213064 Forward-Port-Of: odoo/odoo#194489
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the increase in delay (delivery lead time in the 'Purchase' tab on Product form). **Expected behavior:** The `qty_forecast` and `qty_to_order` fields update to reflect moves which should be captured according to JiT forecasting. **Steps to reproduce:** 1. Create some productA with a vendor
Original PR description
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the…
**Current behavior:** Changing the `delay` field on a `product.supplierinfo` then looking at the replenishment report will not have updated the qty fields of the orderpoint which were affected by the increase in delay (delivery lead time in the 'Purchase' tab on Product form). **Expected behavior:** The `qty_forecast` and `qty_to_order` fields update to reflect moves which should be captured according to JiT forecasting. **Steps to reproduce:** 1. Create some productA with a vendor that has some lead time 2. Create a sale order for that product, edit the sale order `commitment_date` field (Sale Order -> Other Info -> Delivery Date) to some future date such that the delay would not necessitate any replenishment at the current date (i.e., today + delay + 1 day) 3. Create an orderpoint for the productA, see that the `qty_to_order` is 0 -> this makes sense 4. Increase the delay for the vendor on productA enough that a purchase order would be required to fulfill the sale order on time 5. Go back to the replenishment report -> qty to order still 0 **Cause of the issue:** `qty_to_order` is stored and computed, in this sequence none of its dependencies are modified and so it remains 0 after `delay` on the supplier info record is changed. **Fix:** Add `product_id.seller_ids.delay` to the dependency list of `_compute_qty` and `_compute_qty_to_order`. opw-4333016 Forward-Port-Of: odoo/odoo#196895 Forward-Port-Of: odoo/odoo#189427
- Now when paying an order we want to remove empty order lines (lines with qty=0). - In order to keep the deleted quantity of the order line in the order chatter, we add the deleted quantity in the message (Previously we would get the message `{product_name}: Ordered quantity: {qty}->0` when paying and order with a line quantity set to 0). task-id: 4485551 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --
Original PR description
- Now when paying an order we want to remove empty order lines (lines with qty=0).
- In order to keep the deleted quantity of the order line in the order chatter, we add the deleted quantity in the message (Previously we would get the message `{product_name}: Ordered quantity: {qty}->0` when paying and order with a line quantity set to 0).
task-id: 4485551
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#194201`s_dynamic_snippet_blog_posts` in the horizontal layout is displaying a border on the last entry while it should not. This is due to the `record_last` instead of `data_last` introduced in https://github.com/odoo/odoo/commit/dbb72d1f68cf7f462e1d6bdf8998f29627ccc2f0 Steps to reproduce: - Add a blog post snippet `s_blog_posts` in the page - Change the template option to "Horizontal" in the editor - Scroll to the last entry, it shouldn't have a border task-4182265 --- I confirm I h
Original PR description
`s_dynamic_snippet_blog_posts` in the horizontal layout is displaying a border on the last entry while it should not. This is due to the `record_last` instead of `data_last` introduced in https://github.com/odoo/odoo/commit/dbb72d1f68cf7f462e1d6bdf8998f29627ccc2f0 Steps to reproduce: - Add a blog post snippet `s_blog_posts` in the page - Change the template option to "Horizontal" in the editor - Scroll to the last entry, it shouldn't have a border task-4182265 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186657
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Enterprise PR: https://github.com/odoo/enterprise/pull/78429 Forward-Port-Of: odoo/odoo#195626
Original PR description
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Enterprise PR: https://github.com/odoo/enterprise/pull/78429 Forward-Port-Of: odoo/odoo#195626
Currently, if the products included in a combo don't have a pos category included in the pos config, they will not load. Selecting the combo product could result in crashing the page or just no selection showing. Steps to reproduce: ------------------- * Change restaurant to **QR menu + Ordering** * Go to products, select the Burger combo * Delete Drinks choice * For the burger choice, delete one of the product and modify the other by removing the pos category. * Open mobile menu * Sel
Original PR description
Currently, if the products included in a combo don't have a pos category included in the pos config, they will not load. Selecting the combo product could result in crashing the page or just no…
Currently, if the products included in a combo don't have a pos category included in the pos config, they will not load. Selecting the combo product could result in crashing the page or just no selection showing. Steps to reproduce: ------------------- * Change restaurant to **QR menu + Ordering** * Go to products, select the Burger combo * Delete Drinks choice * For the burger choice, delete one of the product and modify the other by removing the pos category. * Open mobile menu * Select the burger combo > Observation: Page crashes Why the fix: ------------ https://github.com/odoo/odoo/blob/2ab0b63b7042293f8229b29bcea478d37d4c3df5/addons/pos_self_order/static/src/app/pages/combo_page/combo_page.js#L141-L148 The page would crash because `c.product_id` is undefined so you cannot access `attribute_line_ids`. `product_id` is undefined because the products were not loaded. Currently only the products that have a pos category defined in `iface_available_categ_ids` are loaded. We now load all the products included in the loaded combo. Similarly as done in the shop: https://github.com/odoo/odoo/blob/2ab0b63b7042293f8229b29bcea478d37d4c3df5/addons/point_of_sale/models/pos_config.py#L797-L798 opw-4516061 Forward-Port-Of: odoo/odoo#196829
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function. 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: odo
Original PR description
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function. 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#197331
Since odoo/odoo#128570, there was a typo in `sortPartnerSuggestions` (`searchTerms` instead of `searchTerm`) which caused searchTerm to have no effect. This PR fixes that typo and adds a test to make sure the searchTerm is included in the returned suggestions. Forward-Port-Of: odoo/odoo#197609 Forward-Port-Of: odoo/odoo#197379
Original PR description
Since odoo/odoo#128570, there was a typo in `sortPartnerSuggestions` (`searchTerms` instead of `searchTerm`) which caused searchTerm to have no effect. This PR fixes that typo and adds a test to make sure the searchTerm is included in the returned suggestions. Forward-Port-Of: odoo/odoo#197609 Forward-Port-Of: odoo/odoo#197379
With this Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the componen
Original PR description
With this Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components' consumption process and enhances production tracking's reliability, ensuring that manual components are managed according to their intended usage. Task id: 4096514 Enterprise PR: odoo/enterprise#77831 Forward-Port-Of: odoo/odoo#197317 Forward-Port-Of: odoo/odoo#175816
When we ask for a reimbursement for the VAT that is due from the state, we close the period, then we send the declarations, with the amount that is asked as reimbursement. The issue is that we need this amount to be registered in the report of this period. But it is closed, so we can't post moves with the tag in it. Let's transform it into an external value. task-4328721 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: od
Original PR description
When we ask for a reimbursement for the VAT that is due from the state, we close the period, then we send the declarations, with the amount that is asked as reimbursement. The issue is that we need this amount to be registered in the report of this period. But it is closed, so we can't post moves with the tag in it. Let's transform it into an external value. task-4328721 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193529
The 'Assign' button of the field many2many_tags_avatar is always invisible in the kanban views with the class o_kanban_project_tasks. This happens because the condition that make it appear when the line of the field is hovered is never met: the class oe_kanban_content no longer exists since the refactoring of the kanban archs (see task: 3992107). Here we modify a bit the css rule so that the 'Assign' button can become visible when appropriate. Forward-Port-Of: odoo/odoo#197312
Original PR description
The 'Assign' button of the field many2many_tags_avatar is always invisible in the kanban views with the class o_kanban_project_tasks. This happens because the condition that make it appear when the line of the field is hovered is never met: the class oe_kanban_content no longer exists since the refactoring of the kanban archs (see task: 3992107). Here we modify a bit the css rule so that the 'Assign' button can become visible when appropriate. Forward-Port-Of: odoo/odoo#197312
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a
Original PR description
Steps to reproduce ================== - Install web_studio,mrp - Go to Manufacturing > Operations > Manufacturing Orders - Open studio - Add a related field - Select Product > Image - Change the widget to the ImageField - Exit studio - Open any record - Go to the product - Edit the image - Go back to the list view => The old image is still displayed Cause of the issue ================== We add a unique parameter in the image url with the last record update. In the case of a related field, the record has not been updated even if the image has changed. Solution ======== We still need to pass a unique value in the URL because browser will not fetch twice the same URL in the same session. In that case, we can simply pass a random value opw-4378605 Forward-Port-Of: odoo/odoo#197532 Forward-Port-Of: odoo/odoo#192036
**Current behavior:** After commit https://github.com/odoo/odoo/commit/7c808beaf36853b4d9171ef0981d1ec9c4b73a44 all writes on `date_start` would silently alter the written date value (totally unintuiative for a user & undesired behavior regardless). **Expected behavior:** Only when handling indirect writes on `date_start` from a linked-via-subcontract purchase order should we modify `date_start` to account for the manufacture delay. opw-4489485 Forward-Port-Of: odoo/odoo#197194 Forw
Original PR description
**Current behavior:** After commit https://github.com/odoo/odoo/commit/7c808beaf36853b4d9171ef0981d1ec9c4b73a44 all writes on `date_start` would silently alter the written date value (totally unintuiative for a user & undesired behavior regardless). **Expected behavior:** Only when handling indirect writes on `date_start` from a linked-via-subcontract purchase order should we modify `date_start` to account for the manufacture delay. opw-4489485 Forward-Port-Of: odoo/odoo#197194 Forward-Port-Of: odoo/odoo#195742
### Steps to reproduce: - Create a user with 'Interviewer' group - Assign that user as interviewer to few applications - Log in as this user - Go to All applications list view in Recruitment module - Search on 'Applicant' ### Cause: In https://github.com/odoo-dev/odoo/commit/de79f671150ba29737ffc92d22687463b561524d#diff-3a7fc7935e58656320cc3e13fe8311415c847ae6a4273d87ef606ed520f83754 after introducing the hr_candidate we added an access rule for interviewer group to access this cla
Original PR description
### Steps to reproduce: - Create a user with 'Interviewer' group - Assign that user as interviewer to few applications - Log in as this user - Go to All applications list view in Recruitment module - Search on 'Applicant' ### Cause: In https://github.com/odoo-dev/odoo/commit/de79f671150ba29737ffc92d22687463b561524d#diff-3a7fc7935e58656320cc3e13fe8311415c847ae6a4273d87ef606ed520f83754 after introducing the hr_candidate we added an access rule for interviewer group to access this class but he can only write on it and can't search on it. ### Fix: We updated the access rule of the interviewer group so hec an be able to search on Applicant name. opw-4501932 Forward-Port-Of: odoo/odoo#196967
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more eye-catching. I also refactor the labels on search views for own and third party checks to make them consistent with "Issue state" field. Lastly, I refactored account.payment tree view to make decoration-muted work well when "state" is "Canceled". Current behavior before PR: - l10n_latam_check
Original PR description
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more…
Description of the issue/feature this PR addresses: This PR aims to add better visibility to own checks. Made voided and debited checks appear gray on tree view in order to make handed checks more eye-catching. I also refactor the labels on search views for own and third party checks to make them consistent with "Issue state" field. Lastly, I refactored account.payment tree view to make decoration-muted work well when "state" is "Canceled". Current behavior before PR: - l10n_latam_check Debited checks records appear black on tree view, and "Issue state" tag on green. Voided checks records appear gray on tree view as well as "Issue state" tag.  - account "Canceled" payments records appear black on tree view. Desired behavior after PR is merged: - l10n_latam_check Voided or debited checks records will appear with gray color on tree view, as well as "Issue state" tag. Handed checks records will appear blue on tree view, as well as "Issue state" tag.  - account "Canceled" payments records appear gray on tree view. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#195595
__Current behavior before commit:__ Since [this pr][1], a 403 error appears on the product page if the "Pick up in store" delivery method is set. __Description of the fix:__ Add a missing sudo on the `product_or_template` like it is done 2 lines above. __Steps to reproduce the issue on runbot:__ 1. Configure and publish the delivery method "Pick up in store" 2. Go to a product page in the e-shop as a Public User opw-4574924 [1]: https://github.com/odoo/odoo/pull/195033 Forward-P
Original PR description
__Current behavior before commit:__ Since [this pr][1], a 403 error appears on the product page if the "Pick up in store" delivery method is set. __Description of the fix:__ Add a missing sudo on the `product_or_template` like it is done 2 lines above. __Steps to reproduce the issue on runbot:__ 1. Configure and publish the delivery method "Pick up in store" 2. Go to a product page in the e-shop as a Public User opw-4574924 [1]: https://github.com/odoo/odoo/pull/195033 Forward-Port-Of: odoo/odoo#197586
This commit will do multiple thing: - Override the unlink to archive instead - Addings archived filter - Adding a button in the form view to archive it and reload - Adding the active field to the list view - Change some optional show and hide task-4507042 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194862
Original PR description
This commit will do multiple thing: - Override the unlink to archive instead - Addings archived filter - Adding a button in the form view to archive it and reload - Adding the active field to the list view - Change some optional show and hide task-4507042 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#194862
### Steps to reproduce: - Open the To-do app. - Paste the link into the editor (e.g., https://drive.google.com/file/d/1oNZsDWEUjxpwbB8tkv1CRCfp-pcKHhGG/edit). - Click on the link to open the preview. - Notice that accents are displayed incorrectly. ### Solution: - Retrieved encoding from the response or detected it using `chardet`. - Decoded the content using the detected encoding or fell back to UTF-8 if decoding failed. - Processed the decoded content to parse the HTML tree. #
Original PR description
### Steps to reproduce: - Open the To-do app. - Paste the link into the editor (e.g., https://drive.google.com/file/d/1oNZsDWEUjxpwbB8tkv1CRCfp-pcKHhGG/edit). - Click on the link to open the preview. - Notice that accents are displayed incorrectly. ### Solution: - Retrieved encoding from the response or detected it using `chardet`. - Decoded the content using the detected encoding or fell back to UTF-8 if decoding failed. - Processed the decoded content to parse the HTML tree. ### Description of the issue/feature this PR addresses: Accents were not displayed correctly on the preview due to encoding mismatches. ### Desired behavior after PR is merged: Accents in the preview are displayed correctly as the content is decoded using the appropriate encoding, with a fallback to UTF-8 if needed. task-4435229 Forward-Port-Of: odoo/odoo#192436
In this commit, we remove the pointer from the tour_automatic. Indeed, it has no useful use in this part of the code. There is no point in having the pointer in the tour_automatic. If we want to see the targeted element (trigger), just open the console. Each element found is logged in the console in debug mode (tour_automatic.js:65) As the pointer is never used and has no use in the tour automatic, we remove it. Description of the issue/feature this PR addresses: Current behavior before
Original PR description
In this commit, we remove the pointer from the tour_automatic. Indeed, it has no useful use in this part of the code. There is no point in having the pointer in the tour_automatic. If we want to see the targeted element (trigger), just open the console. Each element found is logged in the console in debug mode (tour_automatic.js:65) As the pointer is never used and has no use in the tour automatic, we remove it. 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#197602
Steps to Reproduce: - Create a batch transfer. - Print the batch transfer report. Problem: The unit of measure is not displayed next to the quantity. Solution: Access the unit of measure from group_uom in uom instead of move_operation. OPW-4476534 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197382 Forward-Port-Of: odoo/odoo#196497
Original PR description
Steps to Reproduce: - Create a batch transfer. - Print the batch transfer report. Problem: The unit of measure is not displayed next to the quantity. Solution: Access the unit of measure from group_uom in uom instead of move_operation. OPW-4476534 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197382 Forward-Port-Of: odoo/odoo#196497
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197443 Forward-Port-Of: odoo/odoo#194791
Original PR description
As of January 2025, E-Faktur submission is on a new system called Coretax, which requires different file format and content. This commit backports the refactor we did for `l10n_id_efaktur` on 18.0. 4416314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197443 Forward-Port-Of: odoo/odoo#194791
In c57f2ba594d2e1d081e6521b06d63a7d2a260921 we refactored the table transfer mechanism. This introduced a bug, namely the fact that table transfer to a different floor no longer works. This is because with the new logic, a click anywhere on the screen other than on a table would cancel the transfer. This makes sense when clicking on the burger menu for ex, but it removes the possibility of transferring an order to a different floor, because that requires clicking on the floor selector button.
Original PR description
In c57f2ba594d2e1d081e6521b06d63a7d2a260921 we refactored the table transfer mechanism. This introduced a bug, namely the fact that table transfer to a different floor no longer works. This is because with the new logic, a click anywhere on the screen other than on a table would cancel the transfer. This makes sense when clicking on the burger menu for ex, but it removes the possibility of transferring an order to a different floor, because that requires clicking on the floor selector button. In this commit we fix the issue by ignoring clicks on the floor selector in the transfer cancellation logic. Task: 4285748 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185690
**Issue** When converting an invoice into a credit note, the fiscal position is lost while other fields are retained. Steps to Reproduce: 1. Go to Customer Invoices and create a new invoice. 2. Fill in all the necessary details, including the Fiscal Position. 3. Click on Switch into Invoice/Credit Note to convert the invoice into a credit note. 4. Observe that all data is transferred except for the Fiscal Position, which is missing. Expected behavior: The Fiscal Position should be r
Original PR description
**Issue** When converting an invoice into a credit note, the fiscal position is lost while other fields are retained. Steps to Reproduce: 1. Go to Customer Invoices and create a new invoice. 2. Fill…
**Issue** When converting an invoice into a credit note, the fiscal position is lost while other fields are retained. Steps to Reproduce: 1. Go to Customer Invoices and create a new invoice. 2. Fill in all the necessary details, including the Fiscal Position. 3. Click on Switch into Invoice/Credit Note to convert the invoice into a credit note. 4. Observe that all data is transferred except for the Fiscal Position, which is missing. Expected behavior: The Fiscal Position should be retained when converting an invoice to a credit note. Actual behavior: all data is transferred except for the Fiscal Position, which is lost. **Root Cause** The issue occurs in the action_switch_move_type method. When switching move_type, the method does not explicitly retain fiscal_position_id. Unlike static fields such as incoterm_id, the fiscal position is often recomputed dynamically. Writing changes to move_type likely triggers onchange methods that reset the fiscal position, leading to its removal. **Fix** Explicitly preserving fiscal_position_id when updating move_type prevents Odoo’s automatic recomputation from clearing the field. This ensures that fiscal positions are consistently retained, maintaining expected accounting behavior. opw-4497662 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196673
Before this commit, due to the group place on the setting, the cash basis option was not displayed to user with only invoicing. Now, we want the user (with only invoicing) to be able to see it but not modifying the account on the settings. It will allow the users to choose the tax exigibility on the taxes, which for french user is important since depending on that the sentence "Option to pay tax on debits" will be displayed on the invoice. task: 4342603 --- I confirm I have signe
Original PR description
Before this commit, due to the group place on the setting, the cash basis option was not displayed to user with only invoicing. Now, we want the user (with only invoicing) to be able to see it but not modifying the account on the settings. It will allow the users to choose the tax exigibility on the taxes, which for french user is important since depending on that the sentence "Option to pay tax on debits" will be displayed on the invoice. task: 4342603 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#195332 Forward-Port-Of: odoo/odoo#190995
Steps to reproduce: - Run project tour. - Change the language - Proceed with the tour Isuse: - The tours fails. Problem: - It is due to the triggers using english text in :contains. Fix: - Replace all the :contains with concrete triggers. task-4479518 Forward-Port-Of: odoo/odoo#197591 Forward-Port-Of: odoo/odoo#194314
Original PR description
Steps to reproduce: - Run project tour. - Change the language - Proceed with the tour Isuse: - The tours fails. Problem: - It is due to the triggers using english text in :contains. Fix: - Replace all the :contains with concrete triggers. task-4479518 Forward-Port-Of: odoo/odoo#197591 Forward-Port-Of: odoo/odoo#194314
Fix a non-deterministic error happening during the HOOT unit Test. The cause seems to be related to the hoot mock selection which do not always return the latest focused element in the document.getSelection(). runbot-115550 Related to : #197287 & #197345 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197612
Original PR description
Fix a non-deterministic error happening during the HOOT unit Test. The cause seems to be related to the hoot mock selection which do not always return the latest focused element in the document.getSelection(). runbot-115550 Related to : #197287 & #197345 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197612
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-rece
Original PR description
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-receipt-order-data" />` outside the conditional block. - This ensures that the XPath reference is always available. task-4552477 Forward-Port-Of: odoo/odoo#197500 Forward-Port-Of: odoo/odoo#196915
This commits brings the following changes to Documents. Mostly UI improvements: Keep image preview aspect ratio ============================== Currently, images are distorted because the aspect ratio is not respected. Images must retain their original proportions, with the addition of horizontal or vertical spacing if necessary, so that each so that each preview frame has the same dimensions. Also, we want the background of the image wrapper being the same as the body. Add toolt
Original PR description
This commits brings the following changes to Documents. Mostly UI improvements: Keep image preview aspect ratio ============================== Currently, images are distorted because the aspect ratio…
This commits brings the following changes to Documents. Mostly UI improvements: Keep image preview aspect ratio ============================== Currently, images are distorted because the aspect ratio is not respected. Images must retain their original proportions, with the addition of horizontal or vertical spacing if necessary, so that each so that each preview frame has the same dimensions. Also, we want the background of the image wrapper being the same as the body. Add tooltip to toggle chatter btn ================================= Add the following tooltip to the toggle chatter button: "Info & tags". Display existing email alias in help content =========================================== When an email alias has been configured for a given folder, and a search on this folder returns 0 record, the helper content displayed should include the email alias. In case of a search on 'Home' or 'Company': no message about alias, like for 'My Drive' or 'Shared with me'. Also, in 'documents_details_panel': Change labels Email Alias for Email, and Alias Tags for Tags. Enhance Home kanban view style ============================== Enhance the style of the file / folder group titles by turning their h3 element into a h4*, and removing the border-bottom class. * actually we keep the elements as they are, to avoid conflicting with potential customizations, and reduce the police size. Avoid scrollbar on topbar Chatter ================================ Limit the display, on large devices, of the horizontal scrollbar in the Chatter topbar by adding 20px to the Chatter container width, and showing the scrollbar only when the cursor is over that area. Scroll to selected record when info panel on =========================================== When toggling the information panel on, the space available to display documents/folders is significantly reduced. Sometimes, the selected document moves further down the screen and disappears from the view. This commit makes it so the view instantly scroll to the selected document when the info panel is toggled on. Improve email aliases display ============================ We remove the 'Email Aliases' menu item from the 'Configuration' menu and add an optional column in the list view to display the email aliases (widget=email). Also we hide the Alias Name and Domain columns. We keep the fields in the view as they are needed for the details panel. Hide member invite instead of disabling it ========================================= We currently disable the member invite component in the permission panel for users with insufficient rights (not editor) or for inactive documents/folders. But the restriction is not really obvious (visually) for users. We decided to hide the invitation to members to limit their confusion. Add database creator to highest security group ============================================== Generally the user who creates the database receives the highest permissions for each application, except for specific cases. This commits follows the general logic and links 'base.user_admin' to the 'System Administrator' group. Fix spacing in control panel ============================ This commit aims to limit the vertical spacing between the control panel and the menu section. The minimum height applied to breadcrumbs to prevent vertical shift of the view when the breadcrumbs changes dimension has been modified. This height is defined in 'rem' rather than 'vh' to avoid affecting the height of the control panel, particularly on high-resolution screens. task-4444059 Forward-Port-Of: odoo/enterprise#77554
The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79305 Forward-Port-Of: odoo/enterprise#79183
Original PR description
The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79305 Forward-Port-Of: odoo/enterprise#79183
Steps to reproduce: 1. Install `delivery_ups_rest` module 2. Create a user having only the group `sales_team.group_sale_salesman` 3. Log in with that user 4. Create a sale order and attempt to save it This will lead to an access error as creation of sale order will try to update `property_ups_carrier_account` in `res.partner`. Error: `You are not allowed to modify 'Contact' (res.partner) records.` Runbot Errors: + https://runbot.odoo.com/odoo/runbot.build.error/110813 + https://r
Original PR description
Steps to reproduce: 1. Install `delivery_ups_rest` module 2. Create a user having only the group `sales_team.group_sale_salesman` 3. Log in with that user 4. Create a sale order and attempt to save it This will lead to an access error as creation of sale order will try to update `property_ups_carrier_account` in `res.partner`. Error: `You are not allowed to modify 'Contact' (res.partner) records.` Runbot Errors: + https://runbot.odoo.com/odoo/runbot.build.error/110813 + https://runbot.odoo.com/odoo/runbot.build.error/110814 Forward-Port-Of: odoo/enterprise#77999
This PR fix an issue we encountered when trying to create a credit note from an electronic journal without any token created yet (for example because any electronic invoice was created yet). At that time, an error like the following was raised: `binascii.Error: Invalid base64-encoded string: number of data characters (5) cannot be 1 more than a multiple of 4` In previous versions we already had this fix: https://github.com/odoo/enterprise/commit/01ff42bd7c5e69cca9b63b1f027f566aa589a845. So w
Original PR description
This PR fix an issue we encountered when trying to create a credit note from an electronic journal without any token created yet (for example because any electronic invoice was created yet). At that time, an error like the following was raised: `binascii.Error: Invalid base64-encoded string: number of data characters (5) cannot be 1 more than a multiple of 4` In previous versions we already had this fix: https://github.com/odoo/enterprise/commit/01ff42bd7c5e69cca9b63b1f027f566aa589a845. So we follow the same approach. After this PR, the certificate should be generated if it did not exists, and the credit note should be created as expected. **Steps to reproduce the error:** - Install l10n_ar_edi - Check that there is no connection to AFIP on "AFIP/Connections" menu. - Select an invoice, and create a credit note. - Change the journal to "Electronic Invoice" on the CN wizard. - Click on "Reverse" button. The error should appear. Forward-Port-Of: odoo/enterprise#79037
Add more info to the AR EDI XML file: new required tag CondicionIVAReceptorId where we inform the AFIP responsibility code of the partner. LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#78934
Original PR description
Add more info to the AR EDI XML file: new required tag CondicionIVAReceptorId where we inform the AFIP responsibility code of the partner. LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#78934
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Community PR: https://github.com/odoo/odoo/pull/195626 Forward-Port-Of: odoo/enterprise#78429
Original PR description
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Community PR: https://github.com/odoo/odoo/pull/195626 Forward-Port-Of: odoo/enterprise#78429
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228 Forward-Port-Of: odoo/enterprise#79265
Original PR description
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228 Forward-Port-Of: odoo/enterprise#79265
Steps to reproduce: -Make multiple sales and assign a salesman to it in order to have a commission -Go to My Commissions -Add a Group By -The Achieved Rate column is displaying the sum of the achieved rates instead but it shouldn't display anything Problem: When making a group by on the commissions view and enabling the optional column achieved rate, the result of this group by would be the sum of all the achieved rate for this group, which is not correct. As it was decided that it made
Original PR description
Steps to reproduce: -Make multiple sales and assign a salesman to it in order to have a commission -Go to My Commissions -Add a Group By -The Achieved Rate column is displaying the sum of the achieved rates instead but it shouldn't display anything Problem: When making a group by on the commissions view and enabling the optional column achieved rate, the result of this group by would be the sum of all the achieved rate for this group, which is not correct. As it was decided that it made no sense, the total would not be displayed anymore. https://github.com/odoo/enterprise/blob/a0215115c13d5e32f1ba3c821f138b188083e76b/sale_commission/report/commission_report.py#L19 Fix: The aggregator parameter was used to prevent the total to be displayed. opw-4512739 Forward-Port-Of: odoo/enterprise#78537
The project report query joins multiple tables and aggregates on some fields, everything else should be in the group by clause. The group by here is using the select alias but it is better to use the full column name including the table alias, in case one of the joined tables has a column with the same name as the alias. Forward-Port-Of: odoo/enterprise#79272
Original PR description
The project report query joins multiple tables and aggregates on some fields, everything else should be in the group by clause. The group by here is using the select alias but it is better to use the full column name including the table alias, in case one of the joined tables has a column with the same name as the alias. Forward-Port-Of: odoo/enterprise#79272
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function. Forward-Port-Of: odoo/enterprise#79068
Original PR description
isActive: ["auto"] doesn't make sense with the "run" function in a step because tour_interactive doesn't take into account steps without the "run" function. So, in this commit, we remove all isActive: ["auto"] for steps where there is no "run" function. Forward-Port-Of: odoo/enterprise#79068
With is Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components
Original PR description
With is Commit : ---------------------------------------------------------- - In the previous implementation, components marked for manual consumption were automatically consumed, like auto-consumed components, when starting production on a manufacturing order (MO). This occurred due to missing logic and conditions in the code that failed to differentiate between manual and automatic component consumption, and it only affected the shop floor operations. - This update corrects the components' consumption process and enhances production tracking's reliability, ensuring that manual components are managed according to their intended usage. Task id: 4096514 Community PR: odoo/odoo#175816 Forward-Port-Of: odoo/enterprise#79061 Forward-Port-Of: odoo/enterprise#77831
Status indicator was designed independently from the calendar indicator. Overriding its behavior leads to the situation where we show appointment status instead of the calendar indicator. This commit attempts to keep the changes minimal so we are hiding the status indicator for non-appointment events from the appointment template. Reproduce --- - Install appointment. - Schedule a meeting in the calendar. - Open the "Decline" link from the received confirmation email (as public_user)
Original PR description
Status indicator was designed independently from the calendar indicator. Overriding its behavior leads to the situation where we show appointment status instead of the calendar indicator. This commit attempts to keep the changes minimal so we are hiding the status indicator for non-appointment events from the appointment template. Reproduce --- - Install appointment. - Schedule a meeting in the calendar. - Open the "Decline" link from the received confirmation email (as public_user). - BUG: See "Appointment Reserved!" even tho we clicked "Decline" Note: The bug doesn't occur when the appointment is not installed. opw-[4295448](https://www.odoo.com/web#id=4295448&view_type=form&model=project.task) Forward-Port-Of: odoo/enterprise#76365
The declaration 3519 is also needed when we ask for a reimbursement. We currently can't group them (as the fields definition don't allow it), so we will keep them separated. It is sent the same way to AspOne. task-4328721 Forward-Port-Of: odoo/enterprise#77104
Original PR description
The declaration 3519 is also needed when we ask for a reimbursement. We currently can't group them (as the fields definition don't allow it), so we will keep them separated. It is sent the same way to AspOne. task-4328721 Forward-Port-Of: odoo/enterprise#77104
Barcode lookup is not working when activating `restrict_scan_product` Steps: - Go to 'Receipts' operations type - On the barcode tab, activate `restrict_scan_product` - Go to barcode app, receipts operation and scan a new product (eg 510002952387) -> Error: "Not the expected scan - You must scan a product" We should be able to create a new product. With this commit we make an extra check on the guilty condition in the stock_barcode_barcodelookup module opw-4429769 Forward-Port-Of: odoo/en
Original PR description
Barcode lookup is not working when activating `restrict_scan_product` Steps: - Go to 'Receipts' operations type - On the barcode tab, activate `restrict_scan_product` - Go to barcode app, receipts operation and scan a new product (eg 510002952387) -> Error: "Not the expected scan - You must scan a product" We should be able to create a new product. With this commit we make an extra check on the guilty condition in the stock_barcode_barcodelookup module opw-4429769 Forward-Port-Of: odoo/enterprise#76652
1. Insert a graph view into the spreadsheet. 2. Click the "Share" button to generate a shareable link. 3. Open the link in an incognito window. 4. A blank screen appears, with errors logged in the console. The condition for detecting live data in the spreadsheet was incorrect, causing shared links to break. This PR updates the condition to correctly check for the presence of Odoo charts. Task: 4551470 Forward-Port-Of: odoo/enterprise#79151
Original PR description
1. Insert a graph view into the spreadsheet. 2. Click the "Share" button to generate a shareable link. 3. Open the link in an incognito window. 4. A blank screen appears, with errors logged in the console. The condition for detecting live data in the spreadsheet was incorrect, causing shared links to break. This PR updates the condition to correctly check for the presence of Odoo charts. Task: 4551470 Forward-Port-Of: odoo/enterprise#79151
Before when sending request to hmrc we had a fraud prevention headers creation but only with part of the data needed, client_data was provided for one of the two request. Another problem was the ips. If we are in a private network we should still send the public IP. task-4387562 Forward-Port-Of: odoo/enterprise#79108 Forward-Port-Of: odoo/enterprise#75383
Original PR description
Before when sending request to hmrc we had a fraud prevention headers creation but only with part of the data needed, client_data was provided for one of the two request. Another problem was the ips. If we are in a private network we should still send the public IP. task-4387562 Forward-Port-Of: odoo/enterprise#79108 Forward-Port-Of: odoo/enterprise#75383
Forward-Port-Of: odoo/enterprise#79208
Original PR description
Forward-Port-Of: odoo/enterprise#79208
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This [commit](https://github.com/odoo/enterprise/commit/22878ec7e38c2a9fbf871beb239d01a42a17546a) changes `options['date']['filter']` to replace `tax_period` by the period (`'month', 'quarter', 'year'`). This causes `custom_tax_period` to be replaced by `custom_month` for example. Then in `_init_opt
Original PR description
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This…
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This [commit](https://github.com/odoo/enterprise/commit/22878ec7e38c2a9fbf871beb239d01a42a17546a) changes `options['date']['filter']` to replace `tax_period` by the period (`'month', 'quarter', 'year'`). This causes `custom_tax_period` to be replaced by `custom_month` for example. Then in `_init_options_date` which computes the date for the report `options['date']['filter']` is checked: - If any of these strings: `'month', 'quarter', 'year'` are in the filter name then it computes the period with today's date - If `tax_period` and `custom` is in the filter name then it keeps the correct date So since this commit, `_init_options_date` always return today's date with `custom_tax_period` as filter. ### Solution: The value `custom_tax_period` wasn't expected by the commit introducing the issue and values like `custom_month` doesn't make sense. So this commit checks if `custom` is in the filter before replacing `tax_period`. opw-4543231 Forward-Port-Of: odoo/enterprise#79011
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hour
Original PR description
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps…
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hours for the current user 5. Update the grid cell containing a timesheet to reduce the number of hours for instance 6. Update another cell without any timesheets linked and set a hour Current Behavior ---------------- After refreshing the page and going to the same week, the changes made in step 5 and 6 are no longer applied. The reason is because those changes have generated new timesheets for the current user instead of the employee displayed in the form view before doing the step 3. Expected behavior ----------------- The grid view should be unchanged after refreshing the page, the changes made in 5 and 6 should be applied without any issues. opw-4491850 Forward-Port-Of: odoo/enterprise#79076
Purpose ======= Fix some UI issues in the appointment type kanban view. Specification ============= - The ribbon is now wrapped around a div which is messing up the kanban display. Applying some style to make it position absolute and avoid a strange spacing. - Keep UI consistency by resizing the empty avatar card for resources to match the one used for users. - On mobile view, align the appointment title with its details. Task-4518542 Forward-Port-Of: odoo/enterprise#77884
Original PR description
Purpose ======= Fix some UI issues in the appointment type kanban view. Specification ============= - The ribbon is now wrapped around a div which is messing up the kanban display. Applying some style to make it position absolute and avoid a strange spacing. - Keep UI consistency by resizing the empty avatar card for resources to match the one used for users. - On mobile view, align the appointment title with its details. Task-4518542 Forward-Port-Of: odoo/enterprise#77884