Wednesday, October 1, 2025
5 changes · 17.0
New functionality added to Odoo
Adds test coverage to ensure extra landed costs are included when valuing products that use FIFO costing. This helps prevent products from showing understated costs after manufacturing and related charges are applied.
Original PR description
# Leaving test out of original commit [IMP] stock_landed_costs: test landed costs are added to fifo products This Adding test that ensures that landed costs are correctly applied to FIFO products,…
# Leaving test out of original commit [IMP] stock_landed_costs: test landed costs are added to fifo products This Adding test that ensures that landed costs are correctly applied to FIFO products, updating their cost appropriately, based on (ref.1) (ref.1) [IMP] stock_account: Set the AVCO value as standard price on product form 9cd316f038dc95051814ede9474f8f15f7d165df Stems from a bug in the previous versions: Reproduce --- - Create a PRODUCT_CATEGORY with First In First Out (FIFO) and Automated Inventory Valuation - Create a storable PRODUCT in the PRODUCT_CATEGORY - Create storable COMPONENT with a vendor (ex. cost set to $5) - Create a MO, manufacture the PRODUCT consuming the COMPONENT - (Open the PRODUCT, observe: the cost is set to COMPONENT's cost OK (ex. $5)) - Add LANDED_COST (ex. $2 equally split) to the MO BUG: In PRODUCT, cost isn't updated with LANDED_COST (ex. still $5 instead of $7) opw-4370005 # legacy commit Landed costs weren't being added to products using FIFO costing method, unlike products using average cost (AVCO). This fix ensures that landed costs are correctly applied to FIFO products, updating their cost appropriately, based on (ref.1). Reproduce --- - Create a PRODUCT_CATEGORY with First In First Out (FIFO) and Automated Inventory Valuation - Create a storable PRODUCT in the PRODUCT_CATEGORY - Create storable COMPONENT with a vendor (ex. cost set to $5) - Create a MO, manufacture the PRODUCT consuming the COMPONENT - (Open the PRODUCT, observe: the cost is set to COMPONENT's cost OK (ex. $5)) - Add LANDED_COST (ex. $2 equally split) to the MO BUG: In PRODUCT, cost isn't updated with LANDED_COST (ex. still $5 instead of $7) References --- (ref.1) [IMP] stock_account: Set the AVCO value as standard price on product form https://github.com/odoo/odoo/commit/9cd316f038dc95051814ede9474f8f15f7d165df opw-4370005
Resolved issues and error corrections
The favorite star in Documents spreadsheets now immediately shows the correct selected or unselected state on mobile devices. This avoids confusion when users mark or unmark a spreadsheet as a favorite and keeps the behavior consistent with the rest of Odoo.
Original PR description
The star icon on mobile would have a strange behaviour. After clicking it, the star would not change between filled/not filled until clicking elsewhere. It turns out that on mobile, after a click the hover rule is applied. And our hover rule would modify the icon to be the opposite of what it should be. This commit changes the CSS to use the same css as `BooleanFavoriteField` to stay consistent with the rest of Odoo. Task: [5092945](https://www.odoo.com/odoo/2328/tasks/5092945)
Removes a redundant database rule in the Mail app that could conflict with newer PostgreSQL versions. This helps newly created databases remain compatible with PostgreSQL 18 and reduces the risk of restore or upgrade failures.
Original PR description
The field is `required=True`, which automatically sets it `NOT NULL` (if possible). The constraint does not do anything useful. Furthermore, pg18 promoted `NOT NULL` to "real" named constraints[1],…
The field is `required=True`, which automatically sets it `NOT NULL` (if possible). The constraint does not do anything useful.
Furthermore, pg18 promoted `NOT NULL` to "real" named constraints[1], and the constraint was created following the pattern pg uses, so trying to migrate a database to pg18 (either upgrading a cluster from 17 to 18 or restoring a db on a pg18) the restoration fails with
duplicate key value violates unique constraint "pg_constraint_conrelid_contypid_conname_index"
The easiest fix is to delete the constraint in the upstream DB if possible (I didn't find a way to filter out constraints from pg_dump or pg_restore, though it should be possible to filter it out from a "plain" dump by hand).
AFAIK Odoo does not generally drop constraints so I don't think this will fix existing databases, but it at least makes future databases compatible with pg18.
[1]: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commitdiff;h=a379061a22a8fdf421e1a457cc6af8503def6252
Forward-Port-Of: odoo/odoo#229274This fixes an upgrade failure for Estonian accounting data in Odoo 17. The migration now uses the correct call supported by this version, helping affected databases upgrade successfully without this error.
Original PR description
- In version 18, the force_create parameter was introduced in the try_loading method. https://github.com/odoo/odoo/pull/198030/commits/8153a957746d7ad11db5df743a948c471d828f15 Therefore, the upgrade…
- In version 18, the force_create parameter was introduced in the try_loading method. https://github.com/odoo/odoo/pull/198030/commits/8153a957746d7ad11db5df743a948c471d828f15
Therefore, the upgrade fails when try_loading with the force_create parameter
is used in version 17.
https://github.com/odoo/odoo/pull/223405/files#diff-25bc11e6653e875717f3a1c96d0773f08c59c68d0290011f217c7e877fb06d0b
In version 17, this parameter is not available for the try_loading method.
https://github.com/odoo/odoo/blob/17.0/addons/account/models/chart_template.py#L131
```python3
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1369, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/17.0/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 110, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 519, in load_modules
migrations.migrate_module(package, 'end')
File "/home/odoo/src/odoo/17.0/odoo/modules/migration.py", line 221, in migrate_module
exec_script(self.cr, installed_version, pyfile, pkg.name, stage, stageformat[stage] % version)
File "/home/odoo/src/odoo/17.0/odoo/modules/migration.py", line 239, in exec_script
migrate(cr, installed_version)
File "/home/odoo/src/odoo/17.0/addons/l10n_ee/migrations/1.3/end-migrate_update_data.py", line 7, in migrate
env['account.chart.template'].try_loading('ee', company, force_create=False)
TypeError: AccountChartTemplate.try_loading() got an unexpected keyword argument 'force_create'
```
upg-3164417
tbg-2185
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-prMobile users can now scroll horizontally in the appraisal skills list, making the justification field and add/remove buttons visible again. This restores access to key appraisal skill actions on smaller screens and removes unused styling.
Original PR description
Horizontal scrolling has been disabled on the appraisal skills list. An unwanted side effect of that is that the justification field along with the add and remove buttons are not visible on mobile. This PR re-enables the scrolling and removes some dead css. task-5001344 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr