Daily updates from Odoo
Friday, February 14, 2025
44 changes · 18.0
Enhancements to existing features
The Documents app now presents previews, folder guidance, permissions, and control panels more clearly. These updates reduce confusion, make email-based document submission easier to discover, and improve day-to-day navigation in document workspaces.
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
Resolved issues and error corrections
This update improves the self-service invoicing experience in Point of Sale by refining the Request Invoice button and clarifying related QR code settings text. It also helps avoid an invoicing error linked to Peppol, making the customer invoice request flow more reliable.
Original PR description
- Adjusting the 'Request Invoice' button UI. - Adjusting the tooltip description text for point_of_sale_use_ticket_qr_code. - Traceback was resolved in https://github.com/odoo/odoo/commit/ca19b340af49fea845275d737124d5fca79d23a3 task: 4276541 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where selecting a banner from the editor command menu could cause an error. The editor now targets the correct banner content structure, making banner insertion work reliably for users.
Original PR description
**Problem**: After introducing `baseContainer`, the default `baseContainer` is `div`. To correctly update the selection to the banner, we need to update the selector to use the default baseContainer instead of hardcoding `p`. **Solution**: Modify the selector to use the default baseContainer for banner selection updates instead of `.o_editor_banner > div > p` **Steps to Reproduce**: 1. Type `/banner`. 2. Press Enter on any banner. 3. Traceback occurs. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Store pickup orders now use the pickup location to determine the correct tax rules when that location is in a different country from the delivery address. This helps ensure customers are charged the right taxes and reduces pricing errors during checkout.
Original PR description
Before this commit the taxes were calculated based only on delivery address even if a pickup location's country was different from delivery's one. After this commit, the correct fiscal position is set on selecting pickup point. opw-4485282
This fix ensures the required IBAN support module is installed automatically when payroll and accounting are used together. It helps payroll accounting setup work as expected without manual intervention.
Original PR description
Description of the issue/feature this PR addresses: Currently, if `hr_payroll` and accounting is installed, the `hr_payroll_account` is not installed automatically. Which should be the case since its marked as `auto_install`. Current behavior before PR: Desired behavior after PR is merged: The module is required for `hr_payroll_account` to auto_install. This should fix that issue. Auto-install for Payroll localisation with accounting should work as long as the user has accounting and payroll installed. Enterprise PR: https://github.com/odoo/enterprise/pull/75695 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Task# 4201469
This update refreshes the spreadsheet component with fixes that make chart creation, collaborative editing, undo actions, and sheet handling more reliable. Users should see fewer disruptions when working together in spreadsheets and improved behavior in common editing controls.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/39979ab1f [REL] 18.0.16 Task: 0 https://github.com/odoo/o-spreadsheet/commit/3e18487a2 [FIX] FontSizeEditor: prevent…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/39979ab1f [REL] 18.0.16 Task: 0 https://github.com/odoo/o-spreadsheet/commit/3e18487a2 [FIX] FontSizeEditor: prevent wheel adjustments & improve focus outline Task: 4357023 https://github.com/odoo/o-spreadsheet/commit/34a995eeb [FIX] chart: label header prevents creating linear/time charts Task: 4543496 https://github.com/odoo/o-spreadsheet/commit/088a9b346 [FIX] chart: fix test clicking on wrong checkbox Task: 4543496 https://github.com/odoo/o-spreadsheet/commit/9f5457b47 [FIX] UUID: Reduce uuid size everywhere except revisions Task: 4532659 https://github.com/odoo/o-spreadsheet/commit/58e1e90e4 [FIX] formulas: SORTN is not exported anymore Task: 4564445 https://github.com/odoo/o-spreadsheet/commit/22efea3b4 [FIX] collaborative: recompute selection after concurrent sheet modifications Task: 4559104 https://github.com/odoo/o-spreadsheet/commit/fda13fe64 [sheet] prevent deletion of the last visible sheet Task: 4555893 https://github.com/odoo/o-spreadsheet/commit/82e85210a [FIX] collaborative: fix undo concurrence issues Task: 4558024 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Fixes an issue where purchase receipts could be valued too low when separate landed cost bills were used. The change ensures landed costs with their own bill line are included in invoice value calculations, improving inventory cost accuracy without double-counting manually included costs.
Original PR description
Steps to reproduce 1. Create a product invoiced on ordered quantities 2. Create a PO and a bill for it, post the bill 3. Receipt half the quantity 4. Add a landed cost product on the PO, create a…
Steps to reproduce 1. Create a product invoiced on ordered quantities 2. Create a PO and a bill for it, post the bill 3. Receipt half the quantity 4. Add a landed cost product on the PO, create a second bill for this landed cost product. Create and validate the landed cost 5. Receipt the second half quantity. Issue The valuation of the second transfer is too low Explanation To get the price unit for "on ordered qty" policy, We compute the ratio of already receipt value on already invoiced value https://github.com/odoo/odoo/blob/4f6353ec8a7306fbf63e95e8e02248d72f413aa3/addons/purchase_stock/models/stock_move.py#L84 The issue is the receipt value is increase by the landed costs value because the receipt valuation layer is linked to the landed cost valuation layer. But the product invoice line is not linked to the landed costs invoice line. Resulting in a invoice value under valuated. This commit will increase the `total_invoice_value` by the same value of the landed costs value *if* the landed cost has it's own invoice line. In case the landed cost is created manually and it's value is already added into the Purchase order line price unit, we don't want to artificially increase the invoice value. Task : 4354498 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 change restores previous tax calculation behavior for reverse charge taxes when prices already include tax. It helps invoices, sales documents, and tax summaries show more accurate amounts, reducing confusing totals for users.
Original PR description
The current behavior gives annoying results and we don't remember why we did it exactly at the first place. This reverts commit 1fd90ac27fadb1639dc15d645792ec7a71859808. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an automated recruitment website test so it works even when sample demo data is not installed. It helps keep quality checks reliable across different setup configurations without changing customer-facing behavior.
Original PR description
The issue is introduced in this PR: odoo/odoo#197115 Reason: When the test tour website_hr_recruitment_tour_edit_form is launched without demo data, the test failed because mitchell admin doesn't exist. Without demo data, the name of the administrator is administrator; so it's why instead of looking to mitchell admin this check will look to admin. task-4571866 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 fixes an invoice display issue where product names could appear twice in the backend when the user and customer used different languages. Invoice users now see cleaner product labels while customer-facing PDFs continue to show the appropriate translated text.
Original PR description
When an invoice is created, the system will automatically translate the strings into the customer language. In the printed pdf the customer will see just the translated terms. However, in the backend the user will see the original product name and the translated name + description. Steps to reproduce: - Have a user using a language [LANG1] - Have a customer using a language [LANG2] - Make an invoice to the customer, add a product with both name and description with translation available Issue: The name of the product is duplicated, it appears in user language and customer language opw-4444773 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 fixes an issue where job applications submitted through the website could attach the same resume more than once. Recruitment teams will now see a cleaner applicant record with each uploaded document appearing only once.
Original PR description
steps: - install `website_hr_recruitment` - go to `/jobs` - apply to any job, with a resume attachment - open recruitment (find newly added applicant. with duplicate attachments) description: - while sending attachments through website, the attachments are being duplicated cause: - currently, the form data (including the attachments) are being processed and the attachments are being processed again, separately. fix: - processed normal fields and attachment fields separately. task-4570060
This update stabilizes several automated walkthroughs used to verify key Odoo flows such as manufacturing work orders, barcode operations, restaurant preparation displays, website rentals, helpdesk knowledge, and Studio exports. The changes reduce false failures in testing by waiting for screens and actions to be ready before proceeding, helping teams maintain confidence in releases without changing end-user functionality.
Original PR description
clipboard_macros.js : use hoot action instead of action implemented in
web/core/macro.js (The goal is to definitly remove this actions
from macro.js)
tour_shopfloor.js : Ensure body has not visible modal (and not just
modal)
preparation_display_tour.js : WaitRequest after clickOrderButton. tour_shopfloor.js : additional step to ensure state of DOM. tour_test_mrp_barcode_flows.js : additional step to ensure state of DOM.
No need to click on the input when use edit() action. edit() already
click in input to focus it.
export_tours.js : additional step to ensure state of DOM. helpdesk_knowledge_template_bloc_tour.js : No need to click when the
step is just a DOM check.
website_sale_change_rental_duration.js : additional step to ensure
state of DOM.This update fixes an issue that could cause the point of sale preparation display to show a blank white screen. It helps restaurant and kitchen staff keep order preparation workflows visible and reliable.
Original PR description
backport of this commit : https://github.com/odoo/enterprise/pull/79249 opw-4546398
The French profit and loss report now includes newly required accounts. This helps businesses using French accounting get more complete and accurate financial statements.
Original PR description
(cherry picked from commit bd247dde7dd0d6080ac70ea5bbd99f9a59061976) Parent https://github.com/odoo/enterprise/pull/79361 FYI @FlorianGilbert
The product page now hides the subscription pricing table when there is only one recurring plan available. This avoids showing an unnecessary one-option comparison table, making the buying experience cleaner for customers.
Original PR description
### Steps to reproduce: - Create a recurring product with only one recurring plan - Go to the product's page in the website - Notice the pricing table is shown with only one plan ### Cause: In the pricing view in the website we are showing the pricing table just after checking if we have pricings or not. ### Fix: We are now checking if the pricings we have is more than one we will show the table otherwise will not show it. opw-4559071
Sales users can now create and save sales orders when UPS delivery integration is installed without being blocked by a contact permission error. This prevents order entry disruptions for teams using UPS shipping accounts while keeping contact access controls intact.
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
This fixes an error that could block creating an Argentinian electronic credit note when no tax authority connection token existed yet. The system now generates the needed certificate automatically, allowing the credit note process to continue as expected.
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.
The purchase and vendor dashboards now calculate scoreboard totals using the same purchase order criteria as the linked detail views. This prevents users from seeing inflated or mismatched totals when they click through from logistics dashboard scorecards.
Original PR description
* = stock * PROBLEM: when viewing purchase or vendor dashboard (under logistic section) , viewing the scoreboard for purchased or order it calculate all record from purchase.report but when clicking on it, redirect to view of 'purchase order' only which is wrong compare to the number display on the scoreboard * SOLUTION: This commit fix by edit the domain of related pivot which the scoreboard use to display data to the domain having state in either Purchase or Done closes odoo/odoo#193640 X-original-commit: https://github.com/odoo/odoo/commit/f062138
Miscellaneous changes
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
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
**Issue 1:** All taxes of the Malta localization don't have a tag for the base repartition line for the invoice type, but have one for the refund type. **Issue 2:** The tags for the refund type are all positive. They should be negative. opw-4557777 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197736
Original PR description
**Issue 1:** All taxes of the Malta localization don't have a tag for the base repartition line for the invoice type, but have one for the refund type. **Issue 2:** The tags for the refund type are all positive. They should be negative. opw-4557777 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197736
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
Since 1 January 2025, the VAT rates in Slovakia have increased from 20% to 23% and from 10% to 19%. This commit adds the new taxes and updates the fiscal position accordingly. task-4502344 Forward-Port-Of: odoo/odoo#197035 Forward-Port-Of: odoo/odoo#194686
Original PR description
Since 1 January 2025, the VAT rates in Slovakia have increased from 20% to 23% and from 10% to 19%. This commit adds the new taxes and updates the fiscal position accordingly. task-4502344 Forward-Port-Of: odoo/odoo#197035 Forward-Port-Of: odoo/odoo#194686
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
This pull request includes an update to the `doc/cla/corporate/labiso.md` file. The change adds a new corporate contributor license agreement for LABISO GmbH, including the list of contributors. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197373
Original PR description
This pull request includes an update to the `doc/cla/corporate/labiso.md` file. The change adds a new corporate contributor license agreement for LABISO GmbH, including the list of contributors. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197373
Currently, when searching for products using the searchBar, the results can be different depending on the way you write the same word ('desk', 'DESK', 'Desk') Steps to reproduce: ------------------- * Create 2 products * Product 1: name: "Blue DESK" * Product 2: name: "Work table", reference: 'DESK_01' * Open pos shop * Search "desk" > Observation: "Blue DESK" product is found, not "Work table" * Search "DESK" > Observation: "Work table" product is found, not "Blue DESK" Why t
Original PR description
Currently, when searching for products using the searchBar, the results can be different depending on the way you write the same word ('desk', 'DESK', 'Desk') Steps to reproduce: -------------------…
Currently, when searching for products using the searchBar, the results can be different depending on the way you write the same word ('desk', 'DESK', 'Desk')
Steps to reproduce:
-------------------
* Create 2 products
* Product 1: name: "Blue DESK"
* Product 2: name: "Work table", reference: 'DESK_01'
* Open pos shop
* Search "desk"
> Observation: "Blue DESK" product is found, not "Work table"
* Search "DESK"
> Observation: "Work table" product is found, not "Blue DESK"
Why the fix:
------------
The behavior originates from https://github.com/odoo/odoo/commit/e9a27425a0c0b9da982aeaaec2accfa968ed1816
When doing a search, it looks for exact matches with the fields `barcode` and `default_code` and returns them, without looking for the matches in name. This is what happens when we search for "DESK" (simple example, the searchword should be greater than 5).
When we search for 'desk', no exact match is found as the function `exactMatches` is case sensitive. We then find the product thanks to `fuzzyLookup`.
This fix includes the name of the product in the exact match search and does not make it upper/lower case sensitive.
opw-4532712
Forward-Port-Of: odoo/odoo#197183Fixed inconsistent rounding of quantities displayed on the order button and table diff counters in the floor plan. **Steps to reproduce the issue:** 1. Add an orderline by clicking on a product. 2. Set the quantity to "2". 3. Click "Order". 4. Click "." and then "2" to adjust the quantity. 5. We can observe really long quantity (not rounded like `0.20000000000000018` instead of `0.2`) **Changes:** - Added `roundQuantity` utility to ensure consistent rounding to 2 decimals. - Applied
Original PR description
Fixed inconsistent rounding of quantities displayed on the order button and table diff counters in the floor plan. **Steps to reproduce the issue:** 1. Add an orderline by clicking on a product. 2. Set the quantity to "2". 3. Click "Order". 4. Click "." and then "2" to adjust the quantity. 5. We can observe really long quantity (not rounded like `0.20000000000000018` instead of `0.2`) **Changes:** - Added `roundQuantity` utility to ensure consistent rounding to 2 decimals. - Applied `roundQuantity` to table diff counters (on floorplan) and order category counters (on the order button inside ProductScreen) . task-id: 4488523 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#197291 Forward-Port-Of: odoo/odoo#194422
When doing an export, a lot of information are computed depending on the partner, the company and the transaction. This commit will modify the field Invoice Type Transaction which is defined in a structure of 7-digit code: Standard Invoice must have 01 as the first 2 digits and 02 for simplified tax invoice. Other 5 digits depend on nature of the transaction. Before this commit we used to send for Individual contacts, 0200000 for all invoices, where the country of the Customer is not Sa
Original PR description
When doing an export, a lot of information are computed depending on the partner, the company and the transaction. This commit will modify the field Invoice Type Transaction which is defined in a structure of 7-digit code: Standard Invoice must have 01 as the first 2 digits and 02 for simplified tax invoice. Other 5 digits depend on nature of the transaction. Before this commit we used to send for Individual contacts, 0200000 for all invoices, where the country of the Customer is not Saudi Arabia. But it's actually wrong and we should send 0100100 which is a simple export invoice. To fix that issues we added a condition for an invoice to be simplified that the partner need to be an individual from Saudi Arabia. task-4504987 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196976 Forward-Port-Of: odoo/odoo#195216
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: - 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
**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
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
When there was an error of bad formatted data on submitting card form, it was not clear for the user what was wrong. After this commit the details of the error message from Xendit (if any) will be displayed. Forward-Port-Of: odoo/odoo#187386
Original PR description
When there was an error of bad formatted data on submitting card form, it was not clear for the user what was wrong. After this commit the details of the error message from Xendit (if any) will be displayed. Forward-Port-Of: odoo/odoo#187386
… on company parts Forward-Port-Of: odoo/enterprise#79363
Original PR description
… on company parts Forward-Port-Of: odoo/enterprise#79363
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
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 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
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
There might be little value in re-creating a template that a user has deleted. This can also trigger the model constraint, specially in smaller databases with only one Whatsapp account and one language installed when a standard template is deleted and a new one with the same name is created. To reproduce: - Install `whatsapp_account` - Delete the `Invoice` template - Create a Whatsapp account - Create a new template, call it `Invoice` and link to the account. - Upgrade the module T
Original PR description
There might be little value in re-creating a template that a user has deleted. This can also trigger the model constraint, specially in smaller databases with only one Whatsapp account and one language installed when a standard template is deleted and a new one with the same name is created. To reproduce: - Install `whatsapp_account` - Delete the `Invoice` template - Create a Whatsapp account - Create a new template, call it `Invoice` and link to the account. - Upgrade the module This will trigger the constraint: ``` psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "whatsapp_template_unique_name_account_template" DETAIL: Key (template_name, lang_code, wa_account_id)=(invoice, en, 1) already exists. ``` Forward-Port-Of: odoo/enterprise#78501
Steps to reproduce ============= 1. Allow edit access to portal user. 2. Try to publish an article from the portal user. The portal user has no right to publish/unpublish articles. After this commit ============== This commit prevents access error when portal users try to publish an article. Task-4414401 Forward-Port-Of: odoo/enterprise#76350
Original PR description
Steps to reproduce ============= 1. Allow edit access to portal user. 2. Try to publish an article from the portal user. The portal user has no right to publish/unpublish articles. After this commit ============== This commit prevents access error when portal users try to publish an article. Task-4414401 Forward-Port-Of: odoo/enterprise#76350
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#79235 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#79235 Forward-Port-Of: odoo/enterprise#79183
Forward-Port-Of: odoo/enterprise#79208
Original PR description
Forward-Port-Of: odoo/enterprise#79208
## What was done? This pull request includes a change to the `payment_sepa_direct_debit/models/payment_transaction.py` file to correctly extract the last 4 digits of the IBAN number associated with a SEPA direct debit mandate. Key change: - Modified the `_sdd_notify_debit` method to compute the `iban_last_4` by replacing spaces in the account number and extracting the last 4 digits, instead of using the first 4 digits of `payment_details`.Switched to using the last 4 digits of the account
Original PR description
## What was done? This pull request includes a change to the `payment_sepa_direct_debit/models/payment_transaction.py` file to correctly extract the last 4 digits of the IBAN number associated with a…
## What was done? This pull request includes a change to the `payment_sepa_direct_debit/models/payment_transaction.py` file to correctly extract the last 4 digits of the IBAN number associated with a SEPA direct debit mandate. Key change: - Modified the `_sdd_notify_debit` method to compute the `iban_last_4` by replacing spaces in the account number and extracting the last 4 digits, instead of using the first 4 digits of `payment_details`.Switched to using the last 4 digits of the account number from the mandate instead of just the first 4 characters from payment details. This improves accuracy in displaying IBAN info. ## Why this change? The existing implementation is incorrect and fails to adhere to EU regulations regarding SEPA Direct Debit (SDD). According to these laws, the payment notification must display the **last** four digits of the account number from which the payment is collected. However, the current system erroneously shows the first four digits, and in some instances, it even displays an incorrect number. This revision guarantees that the account number displayed is derived from the authorized mandate, which is the sole permissible source. Forward-Port-Of: odoo/enterprise#78792