Daily updates from Odoo
Navigate
Branch
Wednesday, April 2, 2025
27 changes
Enhancements to existing features
The subscription MRR log now makes the effective date visible with guidance while keeping it optional in the list view. Users can also filter for non-invoiced entries, making it easier to identify revenue log items that still need attention.
Original PR description
- Made the effective date field visible with a helper message - Set the effective date field as optional in the MRR log list view. - Added a filter for "Non Invoiced" entries based on the effective date. task-4633018
Field service screens now hide time-related filters and menu options when timesheets or billable time are disabled for projects. This reduces clutter and prevents users from seeing options that do not apply to their project setup.
Original PR description
### After this PR: - Previously the time related filters are visible even after the timesheet is disabled in the project. After this PR we hide the time-related fields when timesheet is disabled in the project. - And if timesheet and billable is disabled in all fsm projects..time related fields also become invisible in action menus task-4038178
The Luxembourg payroll module now includes withholding tax numbers for annual periodic income, such as 13th month payments and gratuities. This supports more accurate tax adjustment calculations for payroll processing.
Original PR description
This PR adds the withholding tax numbers for annual periodic revenues. This will be used to compute withholding tax adjustments. task-4592464
Odoo Studio now lets users edit placeholder text for many-to-many fields from the editor sidebar. The sidebar also hides a confusing placeholder option for number and monetary fields where it was not useful, making form customization clearer.
Custom filters in spreadsheets and documents now account for user avatars, making filter selections easier to recognize visually. The related automated checks and guided walkthroughs were updated so this improved display remains reliable.
Original PR description
*: documents_spreadsheet, spreadsheet_edition This commit adapts some tests and a tour to work with avatars due to https://github.com/odoo/odoo/pull/203726 task-4613150
The referral onboarding configuration list has been visually improved to make setup information easier to scan and manage. This helps HR teams configure referral onboarding steps more comfortably with a clearer interface.
Original PR description
task-4461244 
This update aligns several enterprise apps with a newer way of loading session information in the background. It helps keep accounting, IoT, knowledge, mail, and studio features consistent with the main platform while reducing maintenance risk.
Original PR description
\* = account_accountant, iot, knowledge, test_mail_enterprise Enterprise counter-part. task-4676536 https://github.com/odoo/odoo/pull/194391
Spreadsheet filter editors now present field matching grouped by model in clearer visual boxes, matching the pivot side panel style. This makes it easier for users to understand and configure filters when working with spreadsheets.
Original PR description
This commit revamps the way the field matching are displayed in the filter editors to make it more user friendly. The field matching are now displayed by model, with a box with the same design as in pivot side panel. Task: 4589701
Resolved issues and error corrections
The Payroll Advice report layout was adjusted to improve readability and presentation. Text alignment, spacing, and signature placement are now cleaner, helping businesses produce more professional payroll documents.
Original PR description
Steps: - Generate the Payroll Advice report. - Observe content alignment, spacing issues, and signature positioning. Issues: - Some text elements had inconsistent spacing and alignment affecting readability. Fix: - Improved text alignment and spacing for better readability. - Repositioned certain things as per requirement to enhance the overall layout. Task - 4642759
Code cleanup and technical improvements
Customer access to sales, purchase, and accounting documents is now based on the actual customer or commercial entity linked to the document instead of follower status. This reduces unintended sharing through followers and aligns document access with explicit customer relationships and secure sharing links.
Original PR description
Since recently [1] customers are found using default or suggested recipients for communications. Both chatter and templates proposes them by default. Followers should now be mostly be internal users that want to receive news from a record while customers should be actively displayed and chosen. In this commit we change customer ACL of move / SO / PO from being based on followers to being based on 'partner_id' field. This removes some use cases like adding followers to share the document. However sharing links with specific tokens should be the way to go. Continuation of external followers removal, already started at [2]. [1] See odoo/odoo#201514 [2] See odoo/odoo#185240
Odoo Studio now uses the standard mixed checkbox state instead of a custom visual workaround. This keeps the interface behavior easier to maintain while preserving the same user experience for configuring view rules.
Original PR description
This commit takes advantage of the "indeterminate" state of the CheckBox component (cf. `input[type=checkbox]:indeterminate`) instead of emulating it with classes.
Miscellaneous changes
The committed amount was incorrect because the budget report query is comparing a `datetime` column (purchase_order.date_order) to a `date` column (budget_line.date_to). This is wrong because `'03-31-2025 21:00:00' <= '02-31-2025' == False` This made committed amounts under-reported whenever relevant activity happened on the final day of the budget. Steps to reproduce: - It’s easier to follow by watching this [video](https://drive.google.com/file/d/1SNTUJpiQpcET5pBcu-8PpD3Aw7UHALVD/view
Original PR description
The committed amount was incorrect because the budget report query is comparing a `datetime` column (purchase_order.date_order) to a `date` column (budget_line.date_to). This is wrong because `'03-31-2025 21:00:00' <= '02-31-2025' == False` This made committed amounts under-reported whenever relevant activity happened on the final day of the budget. Steps to reproduce: - It’s easier to follow by watching this [video](https://drive.google.com/file/d/1SNTUJpiQpcET5pBcu-8PpD3Aw7UHALVD/view?usp=drive_link) - Create an analytic account - Create a new budget line with start and end dates set to today - Assign the analytic account as internal and link it to a budget - Go to Purchases > Create a new Request for Quotation - Use the analytic account in the analytical distribution - Confirm the order - Go back to the budget line: the committed amount will incorrectly show 0 OPW-4624672 Forward-Port-Of: odoo/enterprise#82010
Description of the issue this commit addresses: When paying taxes via the "Pay tax: <period>" button on the miscellaneous journal of the accounting dashboard, a traceback can be encountered. --- Steps to reproduce: 1. Install l10n_nl_reports_vat_pay_wizard. 2. Remove the company vat number. 3. Create and post a closing entry for a period with some tax amount. 4. Go to the accounting dashboard. 5. Click the "Pay tax: <period> in the miscellaneous journal's box. 6. A traceback is
Original PR description
Description of the issue this commit addresses: When paying taxes via the "Pay tax: <period>" button on the miscellaneous journal of the accounting dashboard, a traceback can be encountered. --- Steps to reproduce: 1. Install l10n_nl_reports_vat_pay_wizard. 2. Remove the company vat number. 3. Create and post a closing entry for a period with some tax amount. 4. Go to the accounting dashboard. 5. Click the "Pay tax: <period> in the miscellaneous journal's box. 6. A traceback is raised. --- Desired behavior after this commit is merged: Instead of a traceback, a UserError explains why this is not possible to the user. --- task-4677746 Forward-Port-Of: odoo/enterprise#82625
Before this commit, attempting to sell a combo product resulted in an error due to a missing tax configuration. However, combo products are not supposed to have taxes assigned, leading to an unintended issue. opw-4555159 Forward-Port-Of: odoo/enterprise#82119 Forward-Port-Of: odoo/enterprise#80571
Original PR description
Before this commit, attempting to sell a combo product resulted in an error due to a missing tax configuration. However, combo products are not supposed to have taxes assigned, leading to an unintended issue. opw-4555159 Forward-Port-Of: odoo/enterprise#82119 Forward-Port-Of: odoo/enterprise#80571
# HOW TO REPRODUCE: - Create products FNS & CMP - Set available quantity of CMP to 2 - Create MO of 1 FNS and 2 CMP -> Confirm - Open MO in barcode - Set FNS quantity to 1 - Set CMP quantity to 1 (1/2 of the demand) -> Produce MO => The CMP move has 2 lines of 1 unit, so 2 unit have been consumed instead of the 1 put on the barcode. https://github.com/user-attachments/assets/237c81bc-f342-4293-bc76-008b5c7cf876 OPW-4517284 Forward-Port-Of: odoo/enterprise#82664 Forward-Port-Of
Original PR description
# HOW TO REPRODUCE: - Create products FNS & CMP - Set available quantity of CMP to 2 - Create MO of 1 FNS and 2 CMP -> Confirm - Open MO in barcode - Set FNS quantity to 1 - Set CMP quantity to 1 (1/2 of the demand) -> Produce MO => The CMP move has 2 lines of 1 unit, so 2 unit have been consumed instead of the 1 put on the barcode. https://github.com/user-attachments/assets/237c81bc-f342-4293-bc76-008b5c7cf876 OPW-4517284 Forward-Port-Of: odoo/enterprise#82664 Forward-Port-Of: odoo/enterprise#81343
Forward-Port-Of: odoo/enterprise#82441 Forward-Port-Of: odoo/enterprise#82412
Original PR description
Forward-Port-Of: odoo/enterprise#82441 Forward-Port-Of: odoo/enterprise#82412
When automatically sending the receipt in a DE PoS, there was 2 receipt sent to the printer, one of them was empty and showing an error. Steps to reproduce: ------------------- * Setup a fiskaly PoS * Activate the automatic receipt printing * Open PoS and make an order * Pay the order > Observation: Two receipt are sent to the printer, one of them is empty and showing an error. Why the fix: ------------ We were calling the `super` method twice. This was causing the receipt to be p
Original PR description
When automatically sending the receipt in a DE PoS, there was 2 receipt sent to the printer, one of them was empty and showing an error. Steps to reproduce: ------------------- * Setup a fiskaly PoS * Activate the automatic receipt printing * Open PoS and make an order * Pay the order > Observation: Two receipt are sent to the printer, one of them is empty and showing an error. Why the fix: ------------ We were calling the `super` method twice. This was causing the receipt to be printed twice. We now call the `super` method only once. opw-4520201 Forward-Port-Of: odoo/enterprise#82127 Forward-Port-Of: odoo/enterprise#81771
Amazon SP-API is dropping support for the `POST_INVENTORY_AVAILABILITY_DATA` feed type. This was previously used in Odoo to synchronize the stock level with Amazon. This commit upgrades the feed api to use the new `JSON_LISTINGS_FEED` as a replacement. This new feed needs new informations that were not stored previously. Since this is a fix targeting stable versions of Odoo, it was decided to store this new inforamtion as a json dictionary in the `amazon.offer.amazon_feed_ref` field.
Original PR description
Amazon SP-API is dropping support for the `POST_INVENTORY_AVAILABILITY_DATA` feed type. This was previously used in Odoo to synchronize the stock level with Amazon. This commit upgrades the feed api to use the new `JSON_LISTINGS_FEED` as a replacement. This new feed needs new informations that were not stored previously. Since this is a fix targeting stable versions of Odoo, it was decided to store this new inforamtion as a json dictionary in the `amazon.offer.amazon_feed_ref` field. task-3820591 Forward-Port-Of: odoo/enterprise#82665 Forward-Port-Of: odoo/enterprise#78897
The `load templates` button was shown for portal users even though no template was accessible to them. This commit hides the button for portal users. Explanation: In the `knowledge.WysiwygArticleHelper` xml template, `isPortalUser` is used without having being instantiated in its related Component. Commit where `knowledge_article_html_field.js` was removed (previous scope for `isPortalUser` property for this feature): https://github.com/odoo/enterprise/commit/1e0f2950d613d6cd82d8889
Original PR description
The `load templates` button was shown for portal users even though no template was accessible to them. This commit hides the button for portal users. Explanation: In the `knowledge.WysiwygArticleHelper` xml template, `isPortalUser` is used without having being instantiated in its related Component. Commit where `knowledge_article_html_field.js` was removed (previous scope for `isPortalUser` property for this feature): https://github.com/odoo/enterprise/commit/1e0f2950d613d6cd82d8889fb07bc04d6c91c466 Commit where `wysiwyg_article_helper.js` was introduced without the `isPortalUser` property (oversight): https://github.com/odoo/enterprise/commit/e001efc750d25d5dfcc681e42adf7a46edc7f37b task-4687833 Forward-Port-Of: odoo/enterprise#82689
### Steps to reproduce: - Install "l10n_mx_edi" and switch to a Mexican company - In Accounting > Configuration > Taxes activate the tax "1.25 WH" - Create an invoice with one line with a price of $50 and the tax "1.25 WH" - Go to the customer of the invoice - Sale & Purchase > Fiscal information and activate "No Tax Breakdown" - Confirm the invoice and Send it to CFDI - Traceback ### Cause: This [commit](https://github.com/odoo/enterprise/pull/75381/commits/3f2e9437439fd6f987a1381647
Original PR description
### Steps to reproduce: - Install "l10n_mx_edi" and switch to a Mexican company - In Accounting > Configuration > Taxes activate the tax "1.25 WH" - Create an invoice with one line with a price of…
### Steps to reproduce: - Install "l10n_mx_edi" and switch to a Mexican company - In Accounting > Configuration > Taxes activate the tax "1.25 WH" - Create an invoice with one line with a price of $50 and the tax "1.25 WH" - Go to the customer of the invoice - Sale & Purchase > Fiscal information and activate "No Tax Breakdown" - Confirm the invoice and Send it to CFDI - Traceback ### Cause: This [commit](https://github.com/odoo/enterprise/pull/75381/commits/3f2e9437439fd6f987a13816473da2bd5a26953d) added a part in the code to prevent rounding error when specific discounts are applied which makes the base have a 5 as third digit. When having a withholding tax and selecting "No Tax Breakdown" on the partner, the base amount will be decreased by the amount of the tax. If this amount has a 5 as third digit, a difference is detected here: `delta_discount = currency.round(sum(x['importe'] for x in line_values_list)) - cfdi_values['subtotal']` because: - `x['importe']` is 49.375 which rounds up to 49.38 - `cfdi_values['subtotal']` is 49.37 because the tax was rounded up from 0.625 to 0.63 The code will then try to find lines with discounts but there are none so it raises an error at the `max()` function which is given nothing. ### Solution: Adding `default=None` to `max()` so it doesn't crash. But the rounding issue still needs to be fixed. The fix is to select a line with more than 2 digits and to remove the difference with its rounded value. This ensures that the resulting value stay in the same 2-digit range, preventing error CFDI40167, and that the sum of "importe" is rounded down. opw-4528766 Forward-Port-Of: odoo/enterprise#81563
To improve readability and performance, partners with a zero initial balance are now excluded from the partner ledger reports. task-4578612 Forward-Port-Of: odoo/enterprise#82647 Forward-Port-Of: odoo/enterprise#81642
Original PR description
To improve readability and performance, partners with a zero initial balance are now excluded from the partner ledger reports. task-4578612 Forward-Port-Of: odoo/enterprise#82647 Forward-Port-Of: odoo/enterprise#81642
https://www.awesomescreenshot.com/image/53256805?key=71bd00e266f6b08236b3b490b3383b78 How to reproduce: - In the Social app, enable DEMO mode from the configuration settings. - Now click POSTS from the menuitems available. - Click any of the post which has been posted on about 4 accounts. - Scroll down to find the POSTS section, where in you will see that the posts are aligned vertically. Issue: - By default the `<group>` tag makes renders as grid view with 2 columns. Fix: - We us
Original PR description
https://www.awesomescreenshot.com/image/53256805?key=71bd00e266f6b08236b3b490b3383b78 How to reproduce: - In the Social app, enable DEMO mode from the configuration settings. - Now click POSTS from the menuitems available. - Click any of the post which has been posted on about 4 accounts. - Scroll down to find the POSTS section, where in you will see that the posts are aligned vertically. Issue: - By default the `<group>` tag makes renders as grid view with 2 columns. Fix: - We use `colspan` to merge the columns. Task-4184968 Forward-Port-Of: odoo/enterprise#82413
It was not planned to now show this panel to portal users. Follow-up of 0d904521 / task 4318322. Task-4687497 Forward-Port-Of: odoo/enterprise#82666
Original PR description
It was not planned to now show this panel to portal users. Follow-up of 0d904521 / task 4318322. Task-4687497 Forward-Port-Of: odoo/enterprise#82666
There is a special case where users can make invoices "B" to foreign customers. However, we are not allowing to create credit or debit notes "B" to adjust those invoices. This PR adds the possibility to create "B" credit and debit notes (code "6" and "7" respectively) for foreign customers. _**Behavior before this PR:**_ An error message like the following was raised when validating the credit/debit note on AFIP: ``` Esto es lo que obtenemos: Observaciones de validación de la AFIP: *
Original PR description
There is a special case where users can make invoices "B" to foreign customers. However, we are not allowing to create credit or debit notes "B" to adjust those invoices. This PR adds the possibility…
There is a special case where users can make invoices "B" to foreign customers. However, we are not allowing to create credit or debit notes "B" to adjust those invoices. This PR adds the possibility to create "B" credit and debit notes (code "6" and "7" respectively) for foreign customers. _**Behavior before this PR:**_ An error message like the following was raised when validating the credit/debit note on AFIP: ``` Esto es lo que obtenemos: Observaciones de validación de la AFIP: * Code 10015: Para facturas B (CbteDesde igual a CbteHasta) mayor o igual a $417288, DocTipo debe ser uno de los valores devueltos por el método FEParamGetTiposDoc distinto a 99 y DocNro deberá ser mayor a 0. * Code 10015: Factura B (CbteDesde igual a CbteHasta), DocTipo: 80, DocNro 0 no se encuentra registrado en los padrones de AFIP y no corresponde a una cuit pais. ``` This happened because we have to send the "CUIT país" (vat number for the foreign country) as the customer vat so the document can be validated on AFIP. For invoices, we had the logic in the code to look for the country vat and set it in the XML we send to the organism, so I just added the related documents codes so they follow the same flow. **_Behavior after this PR:_** The credit/debit note should be validated on AFIP. **_Steps to reproduce the error:_** 1) Install l10n_ar_edi 2) Set a testing enviroment 3) Create an invoice "B" to a foreign customer. This customer won't have any VAT set. 4) Validate the invoice 5) Create a credit note from the invoice that you created before. 6) Try to validate it, and check that an error message is raised. Forward-Port-Of: odoo/enterprise#80169
In this commit, `position` has been replaced with `tooltipPosition`, as explained in the commit message. https://github.com/odoo/enterprise/commit/b7fc47fec39885ed1f9f99040ceaabefa539bc7b Forward-Port-Of: odoo/enterprise#82672
Original PR description
In this commit, `position` has been replaced with `tooltipPosition`, as explained in the commit message. https://github.com/odoo/enterprise/commit/b7fc47fec39885ed1f9f99040ceaabefa539bc7b Forward-Port-Of: odoo/enterprise#82672
In some cases, Amazon can confirm the delivery of a FBM order before the user confirm the picking. In these cases, 2 problems arise: - The synchronization of the picking will fail because Amazon will return an error, since the picking was already delivered. - If the user doesn't fill the Amazon required fields, there will be a user error, even if the carrier reference and tracking numbers are already available in Amazon's backend. To solve this, as we know when an order was successfully deliv
Original PR description
In some cases, Amazon can confirm the delivery of a FBM order before the user confirm the picking. In these cases, 2 problems arise: - The synchronization of the picking will fail because Amazon will return an error, since the picking was already delivered. - If the user doesn't fill the Amazon required fields, there will be a user error, even if the carrier reference and tracking numbers are already available in Amazon's backend. To solve this, as we know when an order was successfully delivered, we won't consider these pickings as being needed for Amazon any more. task-4524195 Forward-Port-Of: odoo/enterprise#78188
**Issue** When mergring two records with a chatter (e.g. Tasks), no log note appears in the chatter of the destination or source records. **Cause** The template changed modules when `data_cleaning` and `data_merge` were merged in 4fc497861fbefee7f4761c3341a3c2bd289edb31 opw-4513322 Forward-Port-Of: odoo/enterprise#82468 Forward-Port-Of: odoo/enterprise#81136
Original PR description
**Issue** When mergring two records with a chatter (e.g. Tasks), no log note appears in the chatter of the destination or source records. **Cause** The template changed modules when `data_cleaning` and `data_merge` were merged in 4fc497861fbefee7f4761c3341a3c2bd289edb31 opw-4513322 Forward-Port-Of: odoo/enterprise#82468 Forward-Port-Of: odoo/enterprise#81136