Thursday, September 4, 2025
15 changes · master
Enhancements to existing features
The messaging menu now shows a background color behind the WhatsApp icon. This small visual improvement makes the icon easier to recognize and helps users navigate messaging options more clearly.
The Helpdesk eLearning integration has been adjusted to work with the redesigned course pages after the old all-courses page was merged into the main eLearning home page. This keeps helpdesk-related training content accessible and aligned with the updated website experience.
Original PR description
Following the merge of the page /slides/all with the website_slides home page: - we adapt the code of website_helpdesk_slides that was using the template of the page /slides/all that we have removed. - we rename the method slides_channel_all_values as slides_channel_values. see odoo/odoo#221762 Task-3893028
Generated websites can now use the updated standard footers again. This simplifies website creation and helps ensure new sites include consistent footer layouts without extra selection setup.
Original PR description
With the update to footers, commit 2c5211de10aeb8df313a2ca0c8d07f41db6e44d8, we can reactivate the footers and no longer need to create the footer we-select.
Unused Sign role records were removed after the Sign app UI changes made them unnecessary. Related HR and document-signing tests and demo data were updated so signing templates continue to work with roles created dynamically when needed.
Original PR description
- Since the big UI refactor in the sign app, the sign item roles are not used anymore and rules are added on the template on the run - This commit aims to clean up the data file of these roles and update the tests not to use them task-id: 4646742
Resolved issues and error corrections
The signature dialog no longer shows the typed and drawn signatures on top of each other. This prevents visual confusion when users sign documents and makes the signing experience clearer and more reliable.
Original PR description
Fixed an issue where both the auto-generated and drawn signatures overlapped in the signature dialog. This was caused by the system automatically setting the user's default signature to the drawn one when opening the dialog. Now, the dialog no longer defaults to the drawn signature, preventing visual overlap and ensuring a cleaner user experience. Forward-Port-Of: odoo/enterprise#93750
Code cleanup and technical improvements
Rental stock planning has been updated to use the shared forecast horizon setting, keeping availability calculations aligned with the rest of inventory planning. Related planning tests were adjusted to keep manufacturing planning checks reliable after this internal change.
Original PR description
task 4779169
The project budget display now shows the correct warning color when an expense budget is exceeded. This helps users quickly spot overspending risks instead of seeing a misleading green status.
Original PR description
**Step to reproduce:** - install "project_account_budget" - go to accounting > accounting > Analytic Budget - create a budget of type expense,say test budget - select analytic account `Asustek - Wood…
**Step to reproduce:**
- install "project_account_budget"
- go to accounting > accounting > Analytic Budget
- create a budget of type expense,say test budget
- select analytic account `Asustek - Wood Corner`
- set budget amount => 500. open the budget
- create a new project 'test project"> open setting > Analytic Page
- add `Asustek - Wood Corner` analytic account in project field
- create a PO with amount > 500
- in analytic distribution column, add `Asustek - Wood Corner` in project column
- confirm PO and create Bill
- Go to `test project` settings > Dashboard smart button
**Observation:**
- For exceeding expense budget, we have green color in budget section
- It should be red
**Cause:**
The conditional class for budget progress was incorrectly evaluated due to missing parentheses around the `and` condition.
In expressions like:
`(true and (1 == 1 ? 'a' : 'c')) or (1 == 1 ? 'b' : 'd') → 'a'` ✅
`true and 1 == 1 ? 'a' : 'c' or 1 == 1 ? 'b' : 'd' → 'b'` ❌
Without parenthesis, the `or` clause is evaluated unexpectedly, even when the `and` branch is intended to take precedence.
This commit wraps the `and` condition in parentheses to ensure the correct evaluation order and consistent class assignment.
Budget:
<img width="1203" height="291" alt="budget 4968162" src="https://github.com/user-attachments/assets/2d8223d5-0344-4ad0-b33c-2598ea167f2d" />
Before fix:
<img width="623" height="195" alt="before fix 4968162" src="https://github.com/user-attachments/assets/4ac749bf-fa93-4835-963a-5dfbdd05559d" />
After fix:
<img width="643" height="225" alt="after fix 4968162 " src="https://github.com/user-attachments/assets/4fd228f9-e32f-48d9-b6ef-55251b21d601" />
opw-4968162
Forward-Port-Of: odoo/enterprise#93243
Forward-Port-Of: odoo/enterprise#91617A missing web address is now included when sending Aadhaar signing requests. This helps the testing service receive the information it needs, making Aadhaar signing easier to validate before use.
Original PR description
Before this change, the request didn’t include the URL, so during testing the IAP was missing it. Now the URL is added to the request, which makes it easier to test Aadhaar sign.
This update adjusts an automated appointment test to match a recent change in how editable selections behave. It helps keep quality checks accurate and reduces the risk of false test failures during future updates.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/224818 task-4585835
This change updates an internal appointment test so it matches the latest behavior when editing selections. It helps keep automated quality checks reliable without changing the customer-facing appointment experience.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/213300 task-4585835
The PLM dashboard now counts only engineering change orders that are actually waiting for the current user's approval. This prevents inflated or misleading personal approval counts when another approver still needs to act or when the user already approved earlier.
Original PR description
The dashboard of PLM displays for each ECO type the number of validations pending in general, and the validations waiting for me specifically. The latter has been incorrectly computed for quite some time, as it computes how many ECOs exists where I am an approver and an approval is waiting - but there is no guarantee that the waiting approval is one of mine; it might be that I am a past approver of the ECO and that another approval (waiting for somebody else than me) exists, or that two approval are required on the same stage (one by me, one by somebody else) and I already approved. This commit switches the computation around by looking for pending approvals waiting for me, and then get the number of (non-archived) ECOs bound to them. Forward-Port-Of: odoo/enterprise#93728 Forward-Port-Of: odoo/enterprise#92348
Users can no longer trigger an error when trying to link a document to a vehicle if no vehicles have been created yet. The system now blocks that unsupported action gracefully, avoiding a confusing crash in the Documents app.
Original PR description
*= documents_fleet Currently, when user tries to link a document with a vehicle and if there is no vehicle exists an error is raised. **Steps to Reproduce:** 1) Install `documents_fleet`…
*= documents_fleet Currently, when user tries to link a document with a vehicle and if there is no vehicle exists an error is raised. **Steps to Reproduce:** 1) Install `documents_fleet` module(without Demo Data). 2) Open Documents App. 3) Upload a file in `Fleet` folder. 4) Select the uploaded file and click on `'Link to a vehicle'` button. Error: `ValueError: invalid literal for int() with base 10: 'False'` Root Cause: The `link_to_record` method attempts to find the first record of the target model to use as a default value when opening the linking wizard. If no records exist, the search returns an empty recordset, and accessing `.id` at [1], on it results in the value `False`. The code then incorrectly constructs a default reference string like `fleet.vehicle,False`. The wizard crashes when it tries to parse this string and convert the `False` part to an integer. Solution: This commit prevents error by ensuring that the user cannot link a document to a model without existing records. [1]- https://github.com/odoo/enterprise/blob/83640d21b2c31ed9d572c48e02a9aeea9eb1607b/documents/models/documents_workflow_rule.py#L113 sentry-6792079496 Forward-Port-Of: odoo/enterprise#93843 Forward-Port-Of: odoo/enterprise#91888
The payslip list now shows the correct action buttons depending on the payroll context, fixing a confusing “New/Off-Cycle” button display. This helps payroll users choose the right action and reduces mistakes when creating or managing payslips.
Original PR description
Fix the "NewOff-Cycle" Add test to be sure that depending on the context, good control panel buttons are shown.
This update fixes how the eMsigner signing service retrieves the system URL. It helps prevent connection or redirection issues when users access e-signature features through the controller.
Original PR description
in this commit, get the url from request.env['iap.account'] instead of self as in controller we don't have access to get_base_url.
The ESG employee commuting report now keeps its internal report entries in a stable order. This prevents records from appearing to change between views or refreshes, improving consistency for users reviewing commuting data.
Original PR description
The esg commuting report uses ROW_NUMBER to generate record ids, which is apparently reevaluated in each query, which can lead to unstable ids. This PR adds an ORDER BY clause to ensure a deterministic behavior.