Daily updates from Odoo
Navigate
Branch
Tuesday, December 24, 2024
29 changes
6 changes
Miscellaneous changes
Steps to reproduce the bug: - Enable “Subcontracting” and “Expiration Date” in MRP settings. - Create a storable product “P1” with the following configurations: - tracked by: LOT - Expiration date: True - BoM: - BoM type: subcontracting - subcontractor: Azure interior - Create a lot “L1” with an expiration date set to 01-01-2026. - Expiration date: 01-01-2026 - Configure the operation type:: - Receipt: - use existing SN: True - Crea
Original PR description
Steps to reproduce the bug: - Enable “Subcontracting” and “Expiration Date” in MRP settings. - Create a storable product “P1” with the following configurations: - tracked by: LOT - Expiration date:…
Steps to reproduce the bug:
- Enable “Subcontracting” and “Expiration Date” in MRP settings.
- Create a storable product “P1” with the following configurations:
- tracked by: LOT
- Expiration date: True
- BoM:
- BoM type: subcontracting
- subcontractor: Azure interior
- Create a lot “L1” with an expiration date set to 01-01-2026.
- Expiration date: 01-01-2026
- Configure the operation type::
- Receipt:
- use existing SN: True
- Create a receipt:
- Receive from: Azure interior
- Product: one unit of P1
- Mark it as todo
- Open the detailed operation:
- Set the “L1”
- Record production
- Reopen the detailed operation
Problem:
The expiration date in the stock.move.line is set to today’s date instead of the lot’s expiration date.
Cause:
When marking the receipt as “To Do,” the SML is created. Since no lot_id is initially set, today’s date is assigned, thanks to the _compute_expiration_date method:
https://github.com/odoo/odoo/blob/9f1d555ac2d9b6e9d3d0d723d4f042eb44cf30b7/addons/product_expiry/models/stock_move_line.py#L37-L40
But When the lot_id is later set, the compute method is triggered again. However, since the SML already contains a date, the expiration date is not updated to match the lot’s expiration date.
opw-4394662
Forward-Port-Of: odoo/odoo#190747For an expense report paid by an employee, the bank account set on the employee form should be used to create the Journal Entry and as a default bank account in Register Payment Wizard. task-4379148 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191416 Forward-Port-Of: odoo/odoo#189967
Original PR description
For an expense report paid by an employee, the bank account set on the employee form should be used to create the Journal Entry and as a default bank account in Register Payment Wizard. task-4379148 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191416 Forward-Port-Of: odoo/odoo#189967
Tax included in price were not taken into account when using a loyalty program applying on the cheapest product. Steps to reproduce: ------------------- * Create a loyalty program that apply 10% reward on cheapest product * Create a product A that has 10% tax included in price * Open PoS and add this product to the order (make sure this is the cheapest in the order) > Observation: The discount is not taking the tax into account opw-4243827 Forward-Port-Of: odoo/odoo#189612
Original PR description
Tax included in price were not taken into account when using a loyalty program applying on the cheapest product. Steps to reproduce: ------------------- * Create a loyalty program that apply 10% reward on cheapest product * Create a product A that has 10% tax included in price * Open PoS and add this product to the order (make sure this is the cheapest in the order) > Observation: The discount is not taking the tax into account opw-4243827 Forward-Port-Of: odoo/odoo#189612
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#191594
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191594
Backport commit 454f861 by @svs-odoo. Versions affected: - 16.0 - 17.0 Before this commit, the `product.template` constrains `_check_sale_product_company` didn't work if the recordset contains products from different companies, causing a traceback. How to reproduce: - Create multiple products at once in different companies. For example, in the shell of a newly created DB: - company_b, company_a = self.env["res.company"].search([]) - products = self.env["product.product"].create([ {'n
Original PR description
Backport commit 454f861 by @svs-odoo.
Versions affected:
- 16.0
- 17.0
Before this commit, the `product.template` constrains `_check_sale_product_company` didn't work if the recordset contains products from different companies, causing a traceback.
How to reproduce:
- Create multiple products at once in different companies. For example, in the shell of a newly created DB: - company_b, company_a = self.env["res.company"].search([]) - products = self.env["product.product"].create([ {'name': "prod1", 'company_id': company_a.id}, {'name': "prod2", 'company_id': company_b.id}]) -> Traceback.
To fix this issue, this commit groups products by their company in `_check_sale_product_company`.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#191553
Forward-Port-Of: odoo/odoo#191522Issue: In the task action view of the sale order, the task ID is passed in the action domain, which results in showing only old tasks. Newly created tasks are not visible because their IDs are not included in the domain. Solution: Instead of passing task ids, we now check for project_id, sale_order_id, or sale_line_id to ensure the new tasks are properly displayed. Steps to Reproduce: - Install the sale_project module. - Create a Sale Order (SO). - Add a product con
Original PR description
Issue: In the task action view of the sale order, the task ID is passed in the action domain, which results in showing only old tasks. Newly created tasks are not visible because their IDs are not included in the domain. Solution: Instead of passing task ids, we now check for project_id, sale_order_id, or sale_line_id to ensure the new tasks are properly displayed. Steps to Reproduce: - Install the sale_project module. - Create a Sale Order (SO). - Add a product configured to create a project with tasks. - Click on the "Tasks" smart button from the SO. - Go to the Kanban view. - Create a new task and give a name. - Reload the page. - Check if the task is visible (the issue was that new tasks were not visible). Affected PR: https://github.com/odoo/odoo/pull/135771/files task-4224564 Forward-Port-Of: odoo/odoo#191586 Forward-Port-Of: odoo/odoo#184879
13 changes
Enhancements to existing features
The Malaysia reporting module has been cleaned up by removing a field that is no longer used. This reduces unnecessary code and helps keep the module easier to maintain, with no expected change for end users.
Original PR description
since [1], the field active_company_country_code, is not used anymore. [1]: https://github.com/odoo/enterprise/commit/f82ef250560957046be0590f8c2a08039bcc34ca
The Chilean electronic invoicing POS now automatically handles date and time fields correctly when preparing receipt information. This helps prevent display or processing issues on receipts that depend on accurate date values.
Original PR description
Before this commit, field of type Date or DateTime in the POS model were not automatically converted to a DateTime object. This commit fixes this issue by automatically converting the field to a DateTime object when the field is of type Date or DateTime. taskId: 4378842
Document handling is streamlined across Projects, Sign, Spreadsheets, and related apps by reducing configurable folder links and using clearer folder terminology. Projects still get dedicated document folders, but task-level document links and the task creation action from Documents are removed, while uploads can now correctly keep project-defined customer defaults.
Original PR description
In this PR we * Simplify the documents_project bridge logic and code: * Update config settings/ documents centralizing feature for documents_spreadsheet, documents_sign, documents_project * Fix an issue where the project could not define a default `partner` for the documents created inside its folder. See details in included commits. Task-4298444 Task-4294237
Company-level document folders now have no individual owner instead of being assigned to OdooBot, making shared ownership clearer for businesses. The update also adds an Administrator folder and adjusts folder pinning behavior to better reflect access and organization rules across Documents and related apps.
Original PR description
Purpose ======= Company folders now have false instead of odoobot Add "Administrator" folder Unstore and rename `is_pinned_folder` Task-4293838
Resolved issues and error corrections
Splitting a restaurant order now preserves ordered and unordered quantity details on each line. This prevents kitchen preparation displays from showing incorrect quantities, helping staff prepare the right items after an order is split.
Original PR description
pos*: pos_restaurant, pos_preparation_display Before this commit: ============== - Splitting an order caused the loss of ordered and unordered quantity information for the order lines. After this commit: ============== - Ordered and unordered quantity information is preserved for all order lines. - Preparation display quantities remain unaffected. Task - 4114041 Related - odoo/odoo#179481
The point of sale delivery button now refreshes properly when a new delivery order is received. This helps staff see incoming delivery activity immediately and reduces the risk of missed or delayed order handling.
Original PR description
Before this commit: === - The delivery button on the navbar was not updating properly when receiving a new order. After this commit: === - The delivery button now updates correctly upon receiving a new order. task-4420307
Demo text used for editing report templates was moved into a Studio-only field so it no longer appears on real reports when customer data is missing. This keeps follow-up and SEPA direct debit documents accurate and avoids confusing recipients with placeholder content.
Original PR description
account_* = account_followup, account_sepa_direct_debit During the introduction of the new studio report editor, some reports were edited to add some demo data as default content. See: https://github.com/odoo/enterprise/pull/47501 The assumption was that this would only be displayed inside the report editor and the field value outside. Turns out that if the field value is falsy, the demo content is displayed inside the actual report. This commit has been generated to move only the demo data(default content) inside the new attribute data-oe-demo. This attribute is only used inside studio to display the demo content. > Related PR * https://github.com/odoo/odoo/pull/186391 Task: 4182618
Features or functions removed from Odoo
Documents are no longer directly linked to individual projects or tasks through the previous bridge logic. Project document counts now focus on files placed in the project folder, making document organization simpler while removing some task-related document actions.
Original PR description
Simplify the bridges logic and code. See individual commits. Task-4298444
Miscellaneous changes
Purpose of this commit: Remove files that depends on legacy 'bus/../test/helpers'. Part of:3818666 Forward-Port-Of: odoo/enterprise#75948
Original PR description
Purpose of this commit: Remove files that depends on legacy 'bus/../test/helpers'. Part of:3818666 Forward-Port-Of: odoo/enterprise#75948
Since the latest changes on https://github.com/odoo/enterprise/commit/6d49119281901e51910bb71e34300e414216123b, we use the gantt view as in appointments so when trying use the "More Options" from here, we will try to load the calendar form for which we will need to add the assets to not throw an error. Steps to reproduce: 1. Get a restaurant session in pos. 2. On the top right burguer menu, select Manage Bookings. 3. Then create a new one o select an existing one to open the dialog.
Original PR description
Since the latest changes on https://github.com/odoo/enterprise/commit/6d49119281901e51910bb71e34300e414216123b, we use the gantt view as in appointments so when trying use the "More Options" from here, we will try to load the calendar form for which we will need to add the assets to not throw an error. Steps to reproduce: 1. Get a restaurant session in pos. 2. On the top right burguer menu, select Manage Bookings. 3. Then create a new one o select an existing one to open the dialog. 4. Click on "More Options". opw-4334444 Forward-Port-Of: odoo/enterprise#74030
Purpose ======= When creating a shortcut to a document we can't access, an error is raised, because of side effect. This commit make the verification explicit. Task-4409538 Forward-Port-Of: odoo/enterprise#75656
Original PR description
Purpose ======= When creating a shortcut to a document we can't access, an error is raised, because of side effect. This commit make the verification explicit. Task-4409538 Forward-Port-Of: odoo/enterprise#75656
Before this commit, the `get_server_time` is called each time a timer reactive is created in a component since the server offset is computed thanks to that method is only stored in the timer reactive object. This commit creates a timer service as before to be able to contain the data fetched by the server to avoid having to fetch it again each time the timer is running. task-4361124 Forward-Port-Of: odoo/enterprise#75782 Forward-Port-Of: odoo/enterprise#74612
Original PR description
Before this commit, the `get_server_time` is called each time a timer reactive is created in a component since the server offset is computed thanks to that method is only stored in the timer reactive object. This commit creates a timer service as before to be able to contain the data fetched by the server to avoid having to fetch it again each time the timer is running. task-4361124 Forward-Port-Of: odoo/enterprise#75782 Forward-Port-Of: odoo/enterprise#74612
Member panel is open by default in discuss app https://github.com/odoo/odoo/pull/191293 Forward-Port-Of: odoo/enterprise#75971
Original PR description
Member panel is open by default in discuss app https://github.com/odoo/odoo/pull/191293 Forward-Port-Of: odoo/enterprise#75971
8 changes
Resolved issues and error corrections
This fix ensures that certain formatted content is handled correctly when the Knowledge app is installed. It prevents display or editing issues caused by incorrectly processed self-closing elements in Knowledge articles.
Original PR description
**Problem**: Similar to the issue addressed in [this commit](https://github.com/odoo/odoo/pull/191311/commits/9b159179a8d0ad85300bf31d3e1d67d7f1324b14), the `knowledge` module patches `HtmlField` and parses its content. Without this fix, self-closing tags are improperly handled when the `knowledge` module is installed. **Solution**: Apply the same fix to convert self-closing tags into open and closed tags to ensure proper handling in the `knowledge` module. opw-4394833
A new automated check covers the full process of creating manufacturing orders linked to projects. This helps ensure project profitability reports place related manufacturing costs in the correct section, reducing the risk of misleading project financials.
Original PR description
This commit's purpose is to add a test for the full flow of the creation of a BOM/MO when they are linked to a project. This is to ensure that the aal generated are generated correctly and that the project profitability is then computing them into the correct section. community pr: https://github.com/odoo/odoo/pull/186607 task - 4184226 affetced version 18.0 - master
Creating a shortcut to a document the user cannot access now produces a clearer, intentional error instead of failing due to an indirect side effect. This improves user understanding and makes the access check more reliable in the Documents app.
Original PR description
Purpose ======= When creating a shortcut to a document we can't access, an error is raised, because of side effect. This commit make the verification explicit. Task-4409538
Shop floor production for serial-numbered products now records completed quantities only on the relevant manufacturing order. This prevents unrelated backorders from incorrectly appearing as completed, improving production accuracy and traceability.
Original PR description
With this Commit : ---------------------------------- - Previously, when processing MOs on the shopfloor for SN products, registered production appeared to be done for all backorders created for SN products. - This fix ensures that registered production is only done for the relevant MO and not incorrectly for all backorders. Task-id: 4373005
Miscellaneous changes
Since the latest changes on https://github.com/odoo/enterprise/commit/6d49119281901e51910bb71e34300e414216123b, we use the gantt view as in appointments so when trying use the "More Options" from here, we will try to load the calendar form for which we will need to add the assets to not throw an error. Steps to reproduce: 1. Get a restaurant session in pos. 2. On the top right burguer menu, select Manage Bookings. 3. Then create a new one o select an existing one to open the dialog.
Original PR description
Since the latest changes on https://github.com/odoo/enterprise/commit/6d49119281901e51910bb71e34300e414216123b, we use the gantt view as in appointments so when trying use the "More Options" from here, we will try to load the calendar form for which we will need to add the assets to not throw an error. Steps to reproduce: 1. Get a restaurant session in pos. 2. On the top right burguer menu, select Manage Bookings. 3. Then create a new one o select an existing one to open the dialog. 4. Click on "More Options". opw-4334444 Forward-Port-Of: odoo/enterprise#74030
**Problem:** l10n_co_dian_certification_process (Activate the certification process) can still be checked if l10n_co_dian_test_environment (Test environment) is left unchecked. There are two ways to cause this: 1. | | l10n_co_dian_test_environment | l10n_co_dian_certification_process | |--------|--------|--------| | Start | False | False | | End | False | True | Here, the write call will trigger l10n_co_dian_certification_process is set from False to True without triggering the “
Original PR description
**Problem:** l10n_co_dian_certification_process (Activate the certification process) can still be checked if l10n_co_dian_test_environment (Test environment) is left unchecked. There are two ways to…
**Problem:** l10n_co_dian_certification_process (Activate the certification process) can still be checked if l10n_co_dian_test_environment (Test environment) is left unchecked. There are two ways to cause this: 1. | | l10n_co_dian_test_environment | l10n_co_dian_certification_process | |--------|--------|--------| | Start | False | False | | End | False | True | Here, the write call will trigger l10n_co_dian_certification_process is set from False to True without triggering the “if” condition since l10n_co_dian_test_environment is not set. 2. | | l10n_co_dian_test_environment | l10n_co_dian_certification_process | |--------|--------|--------| | Start | True | False | | End | False | True | Here, l10n_co_dian_test_environment is set from True to False from the first write call, which will trigger the “if” condition, causing it to also set l10n_co_dian_certification_process to False. However, then the l10n_co_dian_certification_process is set from False to True by the second original write call. **Purpose:** Make the l10n_co_dian_certification_process field a computed field such that l10n_co_dian_certification_process cannot be set to True if l10n_co_dian_test_environment is False. **Steps to Reproduce on Runbot:** 1. Install l10n_co_dian Case 1: 2. Start at the state, where both l10n_co_dian_test_environment and l10n_co_dian_certification_process are False 3. Check the box for l10n_co_dian_test_environment so that the box for l10n_co_dian_certification_process will also show up. Then check the box for l10n_co_dian_certification_process and uncheck the box for l10n_co_dian_test_environment. Finally save the new configuration. Case 2: 2. Start at the state, where l10n_co_dian_test_environment is True and l10n_co_dian_certification_process is False 3. Check the box for l10n_co_dian_certification_process then uncheck the box for l10n_co_dian_test_environment. Finally save the new configuration. opw-4225471 Forward-Port-Of: odoo/enterprise#73532
Steps to reproduce ================== - Archive default "Projects" workspace - Create a new Project - Create a task and attach a file - Click on the smart button to view the document - Go back to the home menu and open the documents app => `Cannot read properties of undefined (reading 'id')` Solution ======== Prevent the archiving of the projects workspace opw-4308132 Forward-Port-Of: odoo/enterprise#75659
Original PR description
Steps to reproduce ================== - Archive default "Projects" workspace - Create a new Project - Create a task and attach a file - Click on the smart button to view the document - Go back to the home menu and open the documents app => `Cannot read properties of undefined (reading 'id')` Solution ======== Prevent the archiving of the projects workspace opw-4308132 Forward-Port-Of: odoo/enterprise#75659
To be more clear, we add the original amount from the statement we are to reconciliating on the open balance line. task-4194671 Forward-Port-Of: odoo/enterprise#75776 Forward-Port-Of: odoo/enterprise#70785
Original PR description
To be more clear, we add the original amount from the statement we are to reconciliating on the open balance line. task-4194671 Forward-Port-Of: odoo/enterprise#75776 Forward-Port-Of: odoo/enterprise#70785
2 changes
Resolved issues and error corrections
This update corrects a broken process where website menus linked to helpdesk teams were incorrectly visible to public users. The fix resolves multiple coding errors that caused unintended behavior and potential visibility issues. The team is now preventing users from adding helpdesk URLs to website menus, streamlining the process.
Original PR description
Since [1], this flow is broken: 1. Install website_helpdesk => You have a "Help" menu with an helpdesk team as url (/helpdesk/customer-care-1) which is created 2. Check: if you publish or unpublish…
Since [1], this flow is broken: 1. Install website_helpdesk => You have a "Help" menu with an helpdesk team as url (/helpdesk/customer-care-1) which is created 2. Check: if you publish or unpublish your team, that menu is visible or invisible as a public user. 3. Create a new menu for your website, with that same URL (/helpdesk/customer-care-1) 4. Check: that menu is always invisible as a public user. Even if you remove the first menu. Multiple mistakes were made with [1]: - The website menu visibility override code was added twice in two different files. - The override advertises that this is for "always showing the helpdesk team menus even if they are unpublished" but it is actually meant to be the exact opposite of that. - The implementation is based on the menu that are linked to the helpdesk teams, not on their URL **. - The implementation actually bypass the normal visibility computation for all menu URL that start with "/helpdesk", meaning a custom page "/helpdesk-hello" from the user is just broken, so as existing controllers not linked to an helpdesk team (such as /helpdesk/rating). **: actually this could mean that this feature is just not meant to be given the current state of the codebase: creating a menu with a team URL should just make it so it is forcefully linked to that team or should be prevented if it cannot (?). [1]: https://github.com/odoo/enterprise/commit/a888fb57ebd2458bc8479e187088cb2e96b811fa opw-3931376
This update removes a confusing display option for service products within the product catalog. Previously, users could see 'View Availability,' which wasn't relevant for service products. This change simplifies the user experience and ensures users only see options that apply to their needs.
Original PR description
Steps to reproduce: ------------- - Install Sales, Field Service, and Stock, - Go into Field service and open any task that has products. - Through stat button on the top access the product catalog. - Click on burger menu on any service type product. Issue: - View Availability option should not be shown for service type products Cause: - No condition to make it invisible. Solution: - Added a condition when product type is service to the option invisible. task-3801551 Forward-Port-Of: odoo/enterprise#58817