Daily updates from Odoo
Monday, December 23, 2024
16 changes · master
Enhancements to existing features
This update cleans up how notification data is passed through mail-related features, reducing edge-case errors and avoiding unnecessary database lookups. It also refreshes naming, documentation comments, and performance test expectations across related apps as preparation for future email-like recipient improvements.
Original PR description
Consider 'msg_vals' propagated through layers of notification is False by default, not sometimes None or False. Add fallback to avoid trying to access keys of False/None. Correctly update some old writing. Be sure to use a writing that allows to skip message access in simple cases, as it was build to avoid useless queries. Update overrides docstrings: use comments to avoid overriding the base docstring. Rename / remove outdated code. Update some left query counters. Prepares Task-4273479: [mail] Email-like recipients
Payroll users can now reset payslips to draft directly from the payslip list, making corrections faster without opening each record. The available list actions were also reordered to make common payroll tasks easier to find.
Original PR description
Add set to draft action to payslip list and fiddle with the order of existing actions task-4320181
The sales-related automated tests were simplified to match recent updates in the core Odoo platform. This is an internal quality improvement that helps keep sales, subscriptions, field service, and timesheet features easier to maintain without changing day-to-day user workflows.
Original PR description
`sale` test commons have been cleaned up and simplified a bit. See also odoo/odoo#191482
The update stops sending an unused company identifier in some background request data. This simplifies request handling without changing visible behavior for users.
Original PR description
* = account_accountant, web_studio The current_company_id key is not used on the server, so it does not need to be sent in the context. Note also that, only the web_search_read function sends this key. part-of task-id 4250356
Code cleanup and technical improvements
This change updates several Odoo apps to use the newer controls for editing and deleting records after an older read-only setting was removed. It helps keep screens such as accounting, appointments, documents, field service, knowledge, marketing, barcode, planning views, and Studio working consistently with the latest platform behavior.
Original PR description
This commit replaces usage of kanban record's read_only_mode in the rendering context by widget.editable and widget.deletable since the read_only_mode attribute is removed in https://github.com/odoo/odoo/pull/188613 It also removes usage of mode for the form view because it was replaced by readonly. task-4344188
Miscellaneous changes
**Issue:** When the currency symbol display position is set to `After Amount`, the currency sign of a negative amount (credit) in a bank journal entry overlaps with the amount.  **Expected:** The `Amount` field should consistently display the currency symbol after the amount when configured as such, even for negative values. **Steps to reproduce:** 1. Activate the
Original PR description
**Issue:** When the currency symbol display position is set to `After Amount`, the currency sign of a negative amount (credit) in a bank journal entry overlaps with the amount.  **Expected:** The `Amount` field should consistently display the currency symbol after the amount when configured as such, even for negative values. **Steps to reproduce:** 1. Activate the Accounting app. 2. Go to `Accounting / Configuration / Accounting / Currencies`. 3. Select the company's currency and enable debug mode. 4. Set the `Display` `Symbol Position` to `After Amount` and save.  5. Navigate to `Accounting / Dashboard` and open the `Bank` journal. 6. Locate an entry with a credit (negative) value. **Cause:** The negative sign (`-`) is correctly displayed before the input field, but it is not added to the "ghost field" used for layout alignment, causing the currency symbol to overlap with the amount. **Fix:** Ensure the negative sign is included before the ghost field as well, aligning the visual layout with the actual value.  opw-4348298 Forward-Port-Of: odoo/enterprise#75567
### Before The 'Invalid Statements' filter only considered the case of the Ending Balance not matching the Starting Balance + the sum of its transactions. We were not considering the case of the Starting Balance of the statement not matching the previous statement's Ending Balance. ### Now Fixed the condition of the filter to account for the second case. task-4397412 Forward-Port-Of: odoo/enterprise#75710
Original PR description
### Before The 'Invalid Statements' filter only considered the case of the Ending Balance not matching the Starting Balance + the sum of its transactions. We were not considering the case of the Starting Balance of the statement not matching the previous statement's Ending Balance. ### Now Fixed the condition of the filter to account for the second case. task-4397412 Forward-Port-Of: odoo/enterprise#75710
The aim of this commit is adapting the IMB (Soldes Intermédiaires de Gestion) to the new COA. task-4040854 Forward-Port-Of: odoo/enterprise#76028 Forward-Port-Of: odoo/enterprise#75373
Original PR description
The aim of this commit is adapting the IMB (Soldes Intermédiaires de Gestion) to the new COA. task-4040854 Forward-Port-Of: odoo/enterprise#76028 Forward-Port-Of: odoo/enterprise#75373
Changes from the PR(ENT)https://github.com/odoo/enterprise/pull/73443 break some tours in documents_spreadsheet (create empty sheet, clone xlsx, create template and save multipage). They all fail to find the Test folder's Kanban record in the Kanban view. PR#73443 limits the number of records per page. Tours open 'Documents' on 'Home' and 'Test folder' belongs to 'COMPANY'. When there is a large number of records, 'Test folder' is not displayed in the Kanban view. So one adds a prior ste
Original PR description
Changes from the PR(ENT)https://github.com/odoo/enterprise/pull/73443 break some tours in documents_spreadsheet (create empty sheet, clone xlsx, create template and save multipage). They all fail to find the Test folder's Kanban record in the Kanban view. PR#73443 limits the number of records per page. Tours open 'Documents' on 'Home' and 'Test folder' belongs to 'COMPANY'. When there is a large number of records, 'Test folder' is not displayed in the Kanban view. So one adds a prior step to select COMPANY before checking for the Test folder's Kanban record. task-4394473 see https://github.com/odoo/enterprise/pull/73443 see runbot error 109604 Forward-Port-Of: odoo/enterprise#75410
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token set up. This happens when, for example: if you have 3 tasks where 2 of them have the customer field filled and one doesn't. The function _fetchRoute tried to filter out the records that don't have the latitude/longitude. But, here, since one of the records doesn't have a partner, when it's tryi
Original PR description
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token…
When fetching the Routing in project->task, the map view shows the error "To get routing on your map, you first need to set up your Mapbox token. -> Set up token" even if they already have the token set up. This happens when, for example: if you have 3 tasks where 2 of them have the customer field filled and one doesn't. The function _fetchRoute tried to filter out the records that don't have the latitude/longitude. But, here, since one of the records doesn't have a partner, when it's trying to look into partner.partner_latitude, it throws an error. After the error, mapBoxToken is set to '' in _partnerFetching, and called _openStreetMapAPI() resulting in displaying the error, "to get routing on your map, you first need to set up your Mapbox token." So, adding record.partner in the filter will help filter out the records that don't have partner. To Reproduce on Runbot: 1. Set up Mapbox token 2. Go to Project->Task 3. Create 3 Tasks ( 2 with customer and 1 without customer ) 4. Go to the map view and it'll display the error. opw-3682829 Forward-Port-Of: odoo/enterprise#73960 Forward-Port-Of: odoo/enterprise#55580
The error in question was caused by the MX localization MexicanAccountReportCustomHandler DIOT report model neither including tax_periodicity in it's own _custom_options_initializer() which overrides the version inherited from account_generic_tax_report.py, therefore account_reports/static/src/components/account_report/filters/filters.js -> hideTaxPeriodFilter() showed an error when trying to get it. task: 4402723 Forward-Port-Of: odoo/enterprise#75544
Original PR description
The error in question was caused by the MX localization MexicanAccountReportCustomHandler DIOT report model neither including tax_periodicity in it's own _custom_options_initializer() which overrides the version inherited from account_generic_tax_report.py, therefore account_reports/static/src/components/account_report/filters/filters.js -> hideTaxPeriodFilter() showed an error when trying to get it. task: 4402723 Forward-Port-Of: odoo/enterprise#75544
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The client should be able to access the payslips regardless on the working schedule value, even blank. **Steps to reproduce:** - Activate Payroll app and presence based on attendances in employees' settings; - Open or create a contract through an employee's file; - Set "Work Entry Source" to "A
Original PR description
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The…
**Issue:** The client gets an error while accessing an employee's payslips if that employee has a contract based on attendances with a null allowed value for its working schedule. **Expected:** The client should be able to access the payslips regardless on the working schedule value, even blank. **Steps to reproduce:** - Activate Payroll app and presence based on attendances in employees' settings; - Open or create a contract through an employee's file; - Set "Work Entry Source" to "Attendances" and leave "Working Schedule" empty; - Try to access the employee's payslips through the action button. **Cause:** No timezone found on a contract's calendar because the calendar is null. [https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141](https://github.com/odoo/enterprise/blob/18.0/hr_payroll/models/hr_payslip.py#L1141 ) **Fix:** Add a default value on `'UTC'` if no calendar has been found. **Linked:** Community PR : https://github.com/odoo/odoo/pull/186222 opw-4268672 Forward-Port-Of: odoo/enterprise#73274
Versions: ---------- - 17.0 Steps to Reproduce ------------ - Create a product and add the template of the field service project. - Create a sale order. - Open the project updates. - We do not see the SO and SOL buttons. Issue ------------ - SO and SOL smart button was removed on project updates in this commit https://github.com/odoo/enterprise/commit/7a82c52fb007ad0f827dd5d124f80d6195bff919 Fix ---------- - We are adding the SO and SOL buttons back. - So the user can at
Original PR description
Versions: ---------- - 17.0 Steps to Reproduce ------------ - Create a product and add the template of the field service project. - Create a sale order. - Open the project updates. - We do not see the SO and SOL buttons. Issue ------------ - SO and SOL smart button was removed on project updates in this commit https://github.com/odoo/enterprise/commit/7a82c52fb007ad0f827dd5d124f80d6195bff919 Fix ---------- - We are adding the SO and SOL buttons back. - So the user can at least see the linked data. task-3887972 Forward-Port-Of: odoo/enterprise#75946 Forward-Port-Of: odoo/enterprise#67793
When the pos_urban_piper module is installed but not configured in the PoS settings, the orders were being filtered out incorrectly. opw-4423378 Forward-Port-Of: odoo/enterprise#75973
Original PR description
When the pos_urban_piper module is installed but not configured in the PoS settings, the orders were being filtered out incorrectly. opw-4423378 Forward-Port-Of: odoo/enterprise#75973
If Starshipit is configured with TNT service (Australia), the API does not return a pdf field for `orders/manifest` endpoint. This causes the transfer validation process to fail in Odoo. This fix does not resolve the core problem, but it will allow the stock picking to be marked as "Done", with tracking number and link available to the user. The downside is that the manifest PDF will not be available Task: 4195503 Forward-Port-Of: odoo/enterprise#75829 Forward-Port-Of: odoo/enterprise#74190
Original PR description
If Starshipit is configured with TNT service (Australia), the API does not return a pdf field for `orders/manifest` endpoint. This causes the transfer validation process to fail in Odoo. This fix does not resolve the core problem, but it will allow the stock picking to be marked as "Done", with tracking number and link available to the user. The downside is that the manifest PDF will not be available Task: 4195503 Forward-Port-Of: odoo/enterprise#75829 Forward-Port-Of: odoo/enterprise#74190
Some were out of date See community PR for details about email template changes Forward-Port-Of: odoo/enterprise#75887
Original PR description
Some were out of date See community PR for details about email template changes Forward-Port-Of: odoo/enterprise#75887