Monday, October 13, 2025
9 changes · 17.0
New functionality added to Odoo
Odoo now includes the latest unit of measure codes introduced by the Egyptian Tax Authority. This helps Egyptian electronic invoicing users select compliant default unit mappings and keep invoices aligned with current ETA requirements.
Original PR description
The Egyption Tax authority (ETA) introduced new uom unit types The unit types can be viewed at https://sdk.invoicing.eta.gov.eg/codes/unit-types/ This commit updates odoo's standard offering to match ETA and adds additional default mapped values for l10n_eg_unit_code_id field 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
Enhancements to existing features
This update lets Odoo resize image files before they are uploaded. It helps reduce database storage growth and can make image uploads more efficient for users working with customizations or file inputs.
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
Resolved issues and error corrections
The HR organization chart now avoids an error that could occur when loading employees with many levels of subordinates. This makes the org chart more reliable for companies with deep management structures.
Original PR description
This commit fixes a recursion error that occurs in `_get_subordinates`. An iterative approach is used instead of the current recursive implementation. task-5118697 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Subscriptions MRR Breakdown report now ignores archived companies when preparing report data. This prevents access errors for users working in databases where the original company was archived and another active company is in use.
Original PR description
Step to reproduce: - Start database without demo data and install Subscriptions - Create a new Company and archive the first Company in the Database - Set a currency rate on a currency (i.e. Euro),…
Step to reproduce: - Start database without demo data and install Subscriptions - Create a new Company and archive the first Company in the Database - Set a currency rate on a currency (i.e. Euro), then set that currency as the Main Currency of the new Company. - Then, set a currency rate on the previous Main Currency i.e USD. - Create a Subscription Sales Order and confirm it. - Open the MRR Breakdown report. - Click into the data of the report. Observation: An error message will occur appear (Access Error) Issue: - when building the query, it also fetches the archived company, due to `active_test` context applied from [fetch()](https://github.com/odoo/odoo/blob/754599a7720ee179fc5304b9613df9c177e4b231/odoo/models.py#L3858), and hence wrong query is build which fetches no data, leading to sort of access error as this [condition](https://github.com/odoo/odoo/blob/754599a7720ee179fc5304b9613df9c177e4b231/odoo/models.py#L3876) matches. Fix: - we explicitly search for active companies opw-5090463
Swiss payroll users can now access all required backend configuration fields directly from the salary rule screen. This helps payroll teams configure wage types more completely and reduces the need for technical backend access.
Original PR description
task-4954650
Restricted website editors can now update pages even after an administrator adds an embedded video. The change keeps videos visible to visitors while storing them in a way that remains compatible with content safety rules, reducing editing interruptions for business teams.
Original PR description
Steps to reproduce the current behaviour: - Update the DEMO user to be a website "restricted editor" and sales "admin" who cannot bypass HTML field sanitization. - As ADMIN, add a YouTube video to a…
Steps to reproduce the current behaviour: - Update the DEMO user to be a website "restricted editor" and sales "admin" who cannot bypass HTML field sanitization. - As ADMIN, add a YouTube video to a product page > Save. - As DEMO, try to update the content on the product page > You cannot (a dialog informs you that you cannot edit the content because an admin edited it previously). Explanation: Starting from [1], an HTML field can be flagged as `sanitize_overridable` which allowed users with the `base.group_sanitize_override` group to skip the HTML field sanitize process. If such users added some content that is not considered "sanitize friendly" (e.g. YouTube iframe), a restricted user won't be allowed to add content in the fields, since the sanitizer will remove the original content from the DOM. For this case, the code from [2] added an implementation to consider the field as none editable and warn the user once he tries to update it. Implementation: The goal of this commit it to fix the current limitation for video upload that currently prevents non admin users to edit a website record once an admin adds a video on it... The idea of the fix is the following: - We already have a technical fallback when uploading a video to save the iframe `src` to an attribute: `data-oe-expression`. - The public widget is now destroying the video iframes so they are never saved in the DOM. - A non-lazy code will build the iframes immediately on page load. - The public widget can always create the iframes if they are not already created (for compatibility). [1]: https://github.com/odoo/odoo/commit/cf844e34dd0ce4830eb99fd0fa5b6b9cb58c867c [2]: https://github.com/odoo/odoo/commit/cb80c15d3db49ede3c93171abcaa9064b88822c6 task-3757205
Project profitability now reflects only the portion of an expense assigned to a project through analytic distribution. This prevents expenses that are partially allocated to a project from being counted in full, giving managers more accurate profitability figures.
Original PR description
…nse profitability #### Issue: While looking at project profitability, expenses analytic distribution are treated as being set to 100%. #### Step to reproduce: - With modules: project_{hr,…
…nse profitability
#### Issue:
While looking at project profitability, expenses analytic distribution are treated as being set to 100%.
#### Step to reproduce:
- With modules: project_{hr, sale}_expense, accountant
- enable "Analytic accounting"
- enable project > Timesheet
- Create a project "A"
- Set it as billable
- Create a Meal expense for an amount of 115$
- Set an analytic account of 50% for the project "A"
- Validate
- Approve
- Post journal entries
- Go to the project "A" > settings > Set Status
#### Current behavior:
- profitability display '-100'. It took the whole expense.
#### Expected behavior:
- profitability should display '-50'. Only 50% of the untaxed amount.
#### Cause of the issue:
- While querying `hr_expense`, the full untaxed amount of all expenses having the right `analytic_account` in their `analytic_distribution` were added together with no regard to the percent they were set to.
#### Solution:
- weight the expenses depending of their analytical distribution
opw-4949634
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prSpanish Facturae e-invoices now use the invoice’s recorded accounting lines to calculate tax totals, preventing small rounding differences in the XML when global tax rounding is enabled. This helps ensure the electronic invoice matches the tax amounts shown in Odoo and reduces validation or reconciliation issues.
Original PR description
If the tax rounding is set to round_globally, the XML generated for an invoice might have a different TotalTaxOutputs than the tax computation shown in the invoice. This is due to an extra rounding occuring during the XML generation. In this commit, we base the computed values of the InvoiceTotals segment of the facturae document on the move's line_ids, avoiding unnecessary and error-prone re-computation. task-4650439 As the file changed in 18.0, another PR is necessary from 18 on : https://github.com/odoo/odoo/pull/229236
Dashboard charts on mobile now behave like desktop charts: tapping a chart opens the linked Odoo menu. This makes mobile dashboards more useful and consistent for users who rely on charts to navigate to related business information.
Original PR description
Current behavior before PR: - Clicking on a chart in mobile did nothing, unlike on desktop where it redirects to the linked Odoo menu. Desired behavior after PR is merged: - Clicking on a chart in mobile also redirects to the corresponding Odoo menu. - The test has been refactored to remove duplication and improve readability. Task: [4884509](https://www.odoo.com/odoo/2328/tasks/4884509)