Daily updates from Odoo
Navigate
Branch
Sunday, September 14, 2025
12 changes
2 changes
Resolved issues and error corrections
Users with All Timesheets rights can now see timesheets for tasks they follow, even when those tasks belong to private projects. This ensures approvers who already have task access can review related time entries consistently in task views and reports.
Original PR description
**Issue:** Users with "All Timesheets" rights can't see other users’ timesheets on tasks they followed within private projects, even though they had access to the task itself. **Cause:** The security…
**Issue:** Users with "All Timesheets" rights can't see other users’ timesheets on tasks they followed within private projects, even though they had access to the task itself. **Cause:** The security rules for approvers (`timesheet_line_rule_approver` and `timesheet_analysis_report_approver`) only check project-level follower access and ignore task-level access. https://github.com/odoo/odoo/blob/48cfd650053c794a838c130605c4280351b4f5d9/addons/hr_timesheet/security/hr_timesheet_security.xml#L66-L76 https://github.com/odoo/odoo/blob/48cfd650053c794a838c130605c4280351b4f5d9/addons/hr_timesheet/security/hr_timesheet_security.xml#L108-L117 **Steps to reproduce:** 1. Create a private project (`privacy_visibility == 'followers'`) 2. Give another user (e.g., Marc Demo) "All Timesheets" rights and only "User" project access 3. Add Marc Demo as a follower of a task in that private project 4. Have another user log time on that task 5. Log in as Marc Demo Marc cannot see the other user's timesheets, neither on the task form nor in reporting. opw-5022877 Forward-Port-Of: odoo/odoo#224025
This fix ensures date, datetime, and date range fields can correctly apply a value set by the system, even when it matches the original value. Users will see the intended date after automated updates instead of an outdated typed input, reducing confusion in forms.
Original PR description
This commit allows date (i.e. date, datetime & daterange) fields to apply a value from the props (e.g. coming from an `onchange`), even if that value is the same as the initial one. Before this commit, it was not possible due to the fact that the date service responsible for the reactivity of the field was updating the input in an incorrect order, causing the field to display the 'input' value, and not the one enforced by the props. Task 4978896 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#225841
9 changes
Enhancements to existing features
Italian fiscal position tax mapping now includes service-specific taxes, preventing one base tax from being mapped to both goods and services EU zero-rate taxes. This improves invoice tax accuracy for domestic and intra-EU scenarios and reduces manual correction risk.
Original PR description
Due to service taxes missing from the domestic fiscal position, when using the base tax on a product and the intracom fiscal position, it is mapped to both the 0% EU G and 0% EU S taxes. This happens with multiple taxes. By adding service taxes and splitting the mapping from default to goods and from services to services, the fiscal position only ever applies one tax per origin. task-none Forward-Port-Of: odoo/odoo#226529
The website configuration wizard now makes it easier to find the right industry by tolerating typos and using synonyms more effectively. It also updates wording and dropdown behavior to make setup clearer and faster for users creating a website.
Original PR description
Improved the search algorithm for the industry search bar in the website configurator. Typos are now checked to an extend: the autocomplete engine will look for the nearest word from a dictionnary made with all the words used in the industry list (labels and synonyms). For the improvement of the autocorrect, the Levenshtein fuzzy matching algorithm was used. Results returned from a synonym match are now inserted at the end of the match list. Some text changes: - In the first dropdown, "a business website" -> "a website" - The placeholder of the second dropdown became "Restaurant, Hair Salon, Clothing Store,..." linked to https://github.com/odoo/iap-apps/pull/1136 task-4642966 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This update corrects the styling of the website sales upsell popup so customers see it as intended. It also adjusts HR attendance and skills settings so attendance is not enabled by default and certification activities apply only to employees.
Original PR description
[IMP] hr_attendance: backend attendance unactivated by default [FIX] hr_skills: Certifications activity type are for employees only --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update makes the email campaign editor load faster by using only the assets needed for mailings instead of the full website frontend bundle. It also improves the empty-email experience, fixes snippet editing issues, and makes email previews and design options more reliable for users creating campaigns.
Original PR description
This is a cleaning pass after the `mass_mailing` [refactoring]. ### Stop using `web.assets_frontend` for mailings For multiple reasons: - loading this bundle implied that all frontend JS and SCSS…
This is a cleaning pass after the `mass_mailing` [refactoring]. ### Stop using `web.assets_frontend` for mailings For multiple reasons: - loading this bundle implied that all frontend JS and SCSS were loaded for a mailing, while the mailing actually only uses css, and only a fraction of it. - this bundle is crowded with assets from all modules that are totally irrelevant to `mass_mailing`. i.e. not loading it prevents issues where `website` (or any other module) style assets modified `mass_mailing` assets in a way that was not desirable. This will drastically improve loading time when starting a new mailing for the first time, and will also speed up the `convert_inline` process since a lot less style rules need to be parsed. This implies that the `snippets preview dialog` can no longer load `web.assets_frontend` by default. Instead a resource was introduced for each module to introduce their own previewing assets through a plugin. ### Improve UX for an empty mailing Ensure that a user typing directly in the `o_editable` element will not result in a corrupted content, and that the UX for an empty email hints at the user what to do. This results in a better experience when a user uses the `empty theme` for a new mailing. ### Fix snippets - clean snippets options (remove duplicates, redundant, ineffective options). - ensure that no editable phrasing content sits next to flow content (which is not well supported in the editor). - ensure that style assets for snippets correctly use the `mass_mailing` bundle. - ensure that snippets use the proper technical classes. - ensure that when `col-x` is specified, `col-md-y` is specified too, to avoid bumps in the interface when the user tries to redimension columns. [refactoring]: https://github.com/odoo/odoo/commit/82969dc5c6c36a7a91194cf15b33c9abb560a8e7 task-5078825 Co-authored-by: Damien Abeloos <abd@odoo.com> Co-authored-by: Thomas Josse <thjo@odoo.com>
Changing an expense product's policy no longer recalculates and overwrites the analytic distribution on existing expenses. This preserves previously entered expense analytics while still applying distribution rules correctly for new expenses.
Original PR description
When changing the expense policy of an expense product, the compute of analytic distribution of all expenses linked to the product is triggered. Steps: - Have an expense product X with expense policy…
When changing the expense policy of an expense product, the compute of analytic distribution of all expenses linked to the product is triggered. Steps: - Have an expense product X with expense policy 'at_sales' - Create several expenses with an expense product X and any analytic account - Create an analytic distribution model that link the expense account of X with a specific analytic account AA - Create a new expense for product X, the analytic account AA should be set from the distribution model - Go to the form view of product x and change the expense policy to 'cost' - Go back to the expense list view -> All expenses having the product X have the AA account Cause: `sale_order_id` has been added to the `depends` of `hr_expense._compute_analytic_distribution` by 2b3bf5e0fe31d4b4ef6b487da493657f695b14e1 but this wrong since we have the `sale_expense._onchange_sale_order_id` that add the `analytic_dostribution` field to the fields to be computed. The compute is triggered since we change `product_id.expense_policy`, which triggers the `_compute_can_be_reinvoiced` which triggers the `_compute_sale_order_id` Fix: With this commit, we emove the depends on the compute and we also adapt `test_compute_analytic_distribution_expense` in a way that it triggers the onchange as we do in the original flow. opw-4998899 Forward-Port-Of: odoo/odoo#226864 Forward-Port-Of: odoo/odoo#224226
This update corrects several interface elements that were using the secondary color inappropriately across login, portal, website, recruitment, profile, and eCommerce pages. It improves visual consistency and helps important actions and page elements appear with the intended emphasis.
Original PR description
*: auth_signup, auth_totp_portal, portal, website, website_hr_recruitment, website_profile, website_sale This commit revises UI elements that misuse the secondary. task-5079680 Requires: -…
*: auth_signup, auth_totp_portal, portal, website, website_hr_recruitment, website_profile, website_sale This commit revises UI elements that misuse the secondary. task-5079680 Requires: - https://github.com/odoo/enterprise/pull/94570 | Before | After | |--------|--------| | <img width="436" height="389" alt="Capture d’écran 2025-09-12 à 13 12 55" src="https://github.com/user-attachments/assets/45a24608-474d-496c-a1fc-f3153c8782f2" /> | <img width="440" height="391" alt="Capture d’écran 2025-09-12 à 13 13 14" src="https://github.com/user-attachments/assets/77b5c5fa-119d-4045-828c-550f2bf543e9" /> | | <img width="766" height="216" alt="image" src="https://github.com/user-attachments/assets/e6c91f17-e2f5-4ca9-a46d-b9e55b5f4c7f" /> | <img width="370" height="101" alt="image" src="https://github.com/user-attachments/assets/a758f416-676a-4095-af79-58728f62cc3c" /> | | <img width="1003" height="517" alt="Capture d’écran 2025-09-12 à 13 15 50" src="https://github.com/user-attachments/assets/3e495ef8-667a-46b3-ad27-4b094fc9561c" /> | <img width="985" height="520" alt="Capture d’écran 2025-09-12 à 13 16 00" src="https://github.com/user-attachments/assets/2e73de05-6480-49a4-89ae-11115e4db868" /> | | <img width="1332" height="421" alt="Capture d’écran 2025-09-12 à 13 16 51" src="https://github.com/user-attachments/assets/1f7370e3-7def-45f2-8682-f64c83e9ccca" /> | <img width="1330" height="450" alt="Capture d’écran 2025-09-12 à 13 17 05" src="https://github.com/user-attachments/assets/e01513e7-bc75-4de0-8efe-64a72066441d" /> | | <img width="808" height="225" alt="Capture d’écran 2025-09-12 à 13 17 35" src="https://github.com/user-attachments/assets/3e0b7388-c88c-48b6-b22a-596fb3e4bbb3" /> | <img width="814" height="215" alt="Capture d’écran 2025-09-12 à 13 20 06" src="https://github.com/user-attachments/assets/0c03f86b-daae-40fd-99c8-d56bb315c0a8" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The website intro pill snippet has been adjusted so its text no longer overlaps nearby images. This helps users clearly access and edit the images in the website builder without confusion.
Original PR description
This PR prevents the `s_intro_pill` text block from overflowing the images, which would lead the user to think the image cannot be reached and edited. To prevent this, we reduce the size of the text block and the copy so it does not get too long. task-4943061 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Several website and email marketing page snippets were adjusted so their text and design colors display correctly when the default secondary color is light instead of dark. This keeps website sections visually consistent and readable across updated themes and palettes.
Original PR description
This commit adapts multiple snippets after the change of the default palette. Several snippets assumed the secondary color was dark. Since this is not always true (e.g., the default palette now defines it as light), those snippets were updated to work in both cases. Design-themes: https://github.com/odoo/design-themes/pull/1143 task-5072830 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The appointment page loading indicator now uses a more appropriate color instead of incorrectly relying on the secondary color. This keeps the interface visually consistent and improves the perceived quality of the appointment booking experience.
Original PR description
*: website_helpdesk This commit revises the loading element that misuse the secondary color. task-5079680 Requires: - https://github.com/odoo/odoo/pull/226847 | Before | After | |--------|--------| | <img width="1920" height="1080" alt="Capture d’écran 2025-09-12 à 11 24 24 (3)" src="https://github.com/user-attachments/assets/b0d671e4-5538-4c63-9a3a-20bbe835b459" /> | <img width="1920" height="1080" alt="Capture d’écran 2025-09-12 à 13 22 59 (3)" src="https://github.com/user-attachments/assets/3b2d4452-84f2-446a-bb2b-bb4a8e0e9abc" /> |
1 change
Resolved issues and error corrections
The accounting KPI summary now counts posted journal entries that still need accountant review, in addition to draft entries. This gives teams a more complete view of outstanding accounting work by journal category.
Original PR description
The `kpi.provider:get_account_kpi_summary` method should count draft moves by category, but also include posted moves that still are to be checked by the accountant. Task-id: 5062431 Forward-Port-Of: odoo/odoo#226411