Friday, December 20, 2024
26 changes · saas-17.4
Resolved issues and error corrections
This fix prevents an error when the system tries to load an avatar for a resource that is not linked to an employee. It improves reliability in HR workflows by safely leaving the avatar empty instead of causing a crash.
Original PR description
Currently, a traceback is occurring when the `_compute_avatar_128` method triggers with resource having no employee. Error:- ``` IndexError: tuple index out of range ``` Here in resource employee_id is not a required field. So when the resource doesn't have any employee_id, it leads to the above traceback. In the if condition we already checked the presence of employee, but the issue is occurring from the else condition. https://github.com/odoo/odoo/blob/fb4d758ed78211a61ea797759e1fb3b02b51be60/addons/hr/models/resource.py#L30-L34 We can resolve this issue by making the avatar_128 field value False, if there is no employee_id. sentry-6134007941
Portal users no longer encounter an error when opening the time spent on sub-tasks from a mobile device. The change avoids showing a view that is not available in the portal experience, keeping shared project access usable without adding unnecessary complexity.
Original PR description
- saas-17.4 ### Steps to reproduce: - Install the hr_timesheet module. - Create a portal user. - Create a project, task, and sub-task (with timesheet entries). - Share the project with the portal…
- saas-17.4 ### Steps to reproduce: - Install the hr_timesheet module. - Create a portal user. - Create a project, task, and sub-task (with timesheet entries). - Share the project with the portal user. - Log in as the portal user (mobile device). - Open the shared project and navigate to the task. - Click on the Time Spent on Sub-tasks action. ### Issue: Traceback error ### Cause: On mobile, it attempts to load the grid view. Technically: The grid view exists in session.view_info, but the grid view's file is not available in project.webclient, which is used to display view to portal users. ### Solution: To display the grid view to portal users, we can include the grid view files in project.webclient. However, this would also require adding dependencies for JS classes, widgets, and providing access permissions for certain modules like resource calendar, timer, and public employee, making it a more costly solution. To maintain similar behavior, we can opt to remove the grid view from the action specifically for portal users. task-4369891
Belgian Point of Sale syncing now avoids contacting the blackbox device when an order has no line changes. This reduces needless processing during synchronization while preserving the required checks when order contents actually change.
Original PR description
We remove unnecessary blackbox call in preSyncAllOrders method. Before we were calling the blackbox every time we were syncing orders with the server, even if it was not useful when there was no line change. Now we only call the blackbox when there is at least a line change.
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Colombian database; - Configure the DIAN credentials, client, journal and product (https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/colombia.html?highlight=dian); - Create a cust
Original PR description
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be…
**Issue:** Some terms don't appear in Spanish in DIAN invoice PDF files.  **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Colombian database; - Configure the DIAN credentials, client, journal and product (https://www.odoo.com/documentation/18.0/applications/finance/fiscal_localizations/colombia.html?highlight=dian); - Create a customer invoice; - Send and print with (only) DIAN checkbox checked; - Open the PDF for the invoice. **Cause:** No translations (or erroneous ones) have been found for these keys. **Fix:** Add Spanish translations for these terms. <img width="642" alt="Capture d’écran 2024-12-09 à 11 52 44" src="https://github.com/user-attachments/assets/77f548f4-f87e-4823-9fdc-5b54d0db2a1f"> Backport of Odoo 18 fix: https://github.com/odoo/enterprise/commit/99f332e3211cf17eb7bf0a970544dd0e0e07a9f8 **Testing:** Testing needs actual credentials and complete configuration (including setting the client's language to LATAM Spanish)  opw-4343184
Miscellaneous changes
The Viva Wallet integration relies on Odoo being called by Viva Wallet via a webhook. There have been many issues of this webhook never being called, and therefore payments getting stuck in Odoo. In this commit, we add a polling fallback. Every 5 seconds we query the Viva Wallet session, and if we get a response (success/failure) then we update the payment state in the PoS. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odo
Original PR description
The Viva Wallet integration relies on Odoo being called by Viva Wallet via a webhook. There have been many issues of this webhook never being called, and therefore payments getting stuck in Odoo. In this commit, we add a polling fallback. Every 5 seconds we query the Viva Wallet session, and if we get a response (success/failure) then we update the payment state in the PoS. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191156 Forward-Port-Of: odoo/odoo#190213
When using MultiRecordSelector with domain, the domain will not automatically apply to SelectCreateDialog. See odoo/enterprise#68484 closes odoo/odoo#176850 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#191271 Forward-Port-Of: odoo/odoo#191125
Original PR description
When using MultiRecordSelector with domain, the domain will not automatically apply to SelectCreateDialog. See odoo/enterprise#68484 closes odoo/odoo#176850 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#191271 Forward-Port-Of: odoo/odoo#191125
The aim of this commit is updating the COA and the account groups for the new legislation in France. task-4040854 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191306 Forward-Port-Of: odoo/odoo#190065
Original PR description
The aim of this commit is updating the COA and the account groups for the new legislation in France. task-4040854 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191306 Forward-Port-Of: odoo/odoo#190065
When attaching an image in the account module, the `_check_and_decode_attachment` method led to the deletion of non-decodable attachments, causing subsequent access errors in `IrAttachment._post_add_create` since it was trying to use deleted record Reproduce --- - -i ,account - Create new draft invoice (without lines) -> Save - Attach some pdf with invoice - Try attaching some image to the chatter -> BUG: stuck on uploading opw-4144868 Forward-Port-Of: odoo/odoo#191040 Forward-Port-O
Original PR description
When attaching an image in the account module, the `_check_and_decode_attachment` method led to the deletion of non-decodable attachments, causing subsequent access errors in `IrAttachment._post_add_create` since it was trying to use deleted record Reproduce --- - -i ,account - Create new draft invoice (without lines) -> Save - Attach some pdf with invoice - Try attaching some image to the chatter -> BUG: stuck on uploading opw-4144868 Forward-Port-Of: odoo/odoo#191040 Forward-Port-Of: odoo/odoo#181638
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its ac
Original PR description
Issue: When the product "Service on Timesheet" is linked to company A, archiving products in any other company causes an error to occur. Steps to reproduce: - Install both Sales & Timesheets modules - Create a second company - On the product form, link the "Service on Timesheet" product to the second company - Archive a product from the first company Cause: The "Service on Timesheet" product is necessary for the Timesheets app to work. Having linked it to one company restricts its access to others. Solution: While this is expected behaviour, I suggest blocking the user from linking the product to a company to prevent similar issues. I propose doing so since archiving and deletion are already blocked. This change still allows unlinking from the company through the UI. Ticket: opw-4270086 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191157 Forward-Port-Of: odoo/odoo#188251
When we pass create = false in the action context, a new record cannot be created in the kanban and list views. However, a new record could still be created in the activity view. In this commit, we have prevented that. task-3887972 Forward-Port-Of: odoo/odoo#190566 Forward-Port-Of: odoo/odoo#188378
Original PR description
When we pass create = false in the action context, a new record cannot be created in the kanban and list views. However, a new record could still be created in the activity view. In this commit, we have prevented that. task-3887972 Forward-Port-Of: odoo/odoo#190566 Forward-Port-Of: odoo/odoo#188378
Apply sudo to avoid an access error when importing records (e.g. partners). Example use case: - Uninstall `base_install_request` - A user without the Administrator > Settings permission - Go to Contacts and click on Import records - When uploading the file the access error occurs @Tecnativa TT51841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188634
Original PR description
Apply sudo to avoid an access error when importing records (e.g. partners). Example use case: - Uninstall `base_install_request` - A user without the Administrator > Settings permission - Go to Contacts and click on Import records - When uploading the file the access error occurs @Tecnativa TT51841 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188634
Currently, when using pricelists, if you change the price of a product inside the session, it will show a discount value on the receipt. Steps to reproduce: ------------------- * Activate advanced pricelist * Modify the shop's default pricelist * Discount policy: Show public price & discounts * Add a rule: 10% discount on all products with min qty of 10 * Open shop session * Add any product qty 1 * Manually change price to a higher amount * Pay the order > Observation: On the re
Original PR description
Currently, when using pricelists, if you change the price of a product inside the session, it will show a discount value on the receipt. Steps to reproduce: ------------------- * Activate advanced pricelist * Modify the shop's default pricelist * Discount policy: Show public price & discounts * Add a rule: 10% discount on all products with min qty of 10 * Open shop session * Add any product qty 1 * Manually change price to a higher amount * Pay the order > Observation: On the receipt we can see a negative discount value. Why the fix: ------------ Changing the price of a product through the price button in the session should never be considered as a discount. Lines for which the product price was manually set should not be counted toward overall discount (positive or negative). opw-4366651 Forward-Port-Of: odoo/odoo#191272 Forward-Port-Of: odoo/odoo#190785
We have a constraint enforcing the presence of a zip code on both the sender and the receiver of the invoice but we can't trace the origin of this constraint. It seems to not exists anymore in the doc or the schematrons. We therefore remove it as it cause unnecessary frictions when invoicing. task-no (feedback from our prod + tsb) Forward-Port-Of: odoo/odoo#191129
Original PR description
We have a constraint enforcing the presence of a zip code on both the sender and the receiver of the invoice but we can't trace the origin of this constraint. It seems to not exists anymore in the doc or the schematrons. We therefore remove it as it cause unnecessary frictions when invoicing. task-no (feedback from our prod + tsb) Forward-Port-Of: odoo/odoo#191129
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191065 Forward-Port-Of: od
Original PR description
Before this PR, the `forward_operator` chat bot step was not taking the user lang into account. It uses the `livechat_visitor_id` field which is not available in im_livechat. It should instead use the lang from the context. At the same time, this PR fixes an issue when restarting the chat bot: the lang of the first message following a restart is incorrect. It occurs because the lang is not properly propagated. task-4411088 opw-4341694 Forward-Port-Of: odoo/odoo#191065 Forward-Port-Of: odoo/odoo#190832
### Steps to reproduce: - Install "l10n_ch" and switch to "CH company" - Create a new invoice with a Swiss partner and confirm - Click "Send & Print" and select "Send by Post", confirm - Go in Setting > technical > Email > Snailmail Letters and find your invoice - Download the PDF document - The QR code and several other information are missing ### Cause: The snailmail module is setting specific paper format (base.paperformat_euro) when generating the PDF. https://github.com/odoo/o
Original PR description
### Steps to reproduce: - Install "l10n_ch" and switch to "CH company" - Create a new invoice with a Swiss partner and confirm - Click "Send & Print" and select "Send by Post", confirm - Go in Setting > technical > Email > Snailmail Letters and find your invoice - Download the PDF document - The QR code and several other information are missing ### Cause: The snailmail module is setting specific paper format (base.paperformat_euro) when generating the PDF. https://github.com/odoo/odoo/blob/ce92dedea0fd3cdc73da6366c20b8052bb04f7e9/addons/snailmail/models/ir_actions_report.py#L17-L24 But the Swiss reports have their own formats to display the QR code correctly. So the generated PDF have its QR code on another page that is lost when merging the PDF for the header and the one with the QR code. ### Solution: Force the paper format for the two "IrActionReports" responsible for the page with the Qr-code. opw-4399150 Forward-Port-Of: odoo/odoo#190881
To allow compatibility between all db versions and new IoT Box images, we need to ensure that `path_file` method returns the path starting from `/home/pi` instead of the path of the service user (which is `/home/odoo` in newer images). Forward-Port-Of: odoo/odoo#191149 Forward-Port-Of: odoo/odoo#190963
Original PR description
To allow compatibility between all db versions and new IoT Box images, we need to ensure that `path_file` method returns the path starting from `/home/pi` instead of the path of the service user (which is `/home/odoo` in newer images). Forward-Port-Of: odoo/odoo#191149 Forward-Port-Of: odoo/odoo#190963
This commit will add the basic package of the bahrain localisation. - Accounts - Taxes - Fiscal positions - States - Tax reports task: 3927915 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186027
Original PR description
This commit will add the basic package of the bahrain localisation. - Accounts - Taxes - Fiscal positions - States - Tax reports task: 3927915 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#186027
[FIX] l10n_fr: add tax move lines in tax report In the l10n_fr tax report, the wrong `account_move_line` entries are used in the journal item list view of the tax report in section `TD-VAT Due`. As a result, the balance debit/credit displayed under the `TD-VAT Due` is not the same as the balance in the journal items list view. - Create a customer invoice with a price 1000 and a tax 20% Goods. - Create a vendor bill with a price 100 and a tax 20% Goods. - Open the tax report, under the TD -
Original PR description
[FIX] l10n_fr: add tax move lines in tax report In the l10n_fr tax report, the wrong `account_move_line` entries are used in the journal item list view of the tax report in section `TD-VAT Due`. As a…
[FIX] l10n_fr: add tax move lines in tax report In the l10n_fr tax report, the wrong `account_move_line` entries are used in the journal item list view of the tax report in section `TD-VAT Due`. As a result, the balance debit/credit displayed under the `TD-VAT Due` is not the same as the balance in the journal items list view. - Create a customer invoice with a price 1000 and a tax 20% Goods. - Create a vendor bill with a price 100 and a tax 20% Goods. - Open the tax report, under the TD - VAT Due, the balance is 180. - Click on the amount in TD - VAT Due, the debit is 20 but the credit is 1000 (should be 200). The formula for `TD-VAT Due` is defined as `box_16.balance - box_23.balance`. - `box_16` is the sum of box_xx.balance which are defined by `account_tag`. - The balances of these boxes were computed using the base `account_tag`, which calculates the correct amount but causes `_expand_aggregations` in `account_report_expression` to generate a list view based on base move lines instead of the corresponding tax lines. This can be seen the label field of the lines, which are not the tax label. `box_16` needs to be computed using `box_xx_taxe` instead of `box_xx_base` to ensure the correct tax lines are included. For box 08, 09, 9B, 10, 11, T1, T2, T3, T4, T5, T6, P1, P2, I1, I2, I3, I4, I5, I6 we replace balance to balance_from_tags (which uses box_xx_taxe) For box 13, 14, 15, T7, 5B we keep balance (which already uses box_xx_taxe) opw-4335396 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#188640
Currently, a connection error shows when the ReadTimeout error occurs when calling the JSON-RPC endpoint in IAP. This commit will show users a timeout error when a "ReadTimeout" error is found in the JSON response in the RPC call. sentry-6059323528 Forward-Port-Of: odoo/odoo#190841
Original PR description
Currently, a connection error shows when the ReadTimeout error occurs when calling the JSON-RPC endpoint in IAP. This commit will show users a timeout error when a "ReadTimeout" error is found in the JSON response in the RPC call. sentry-6059323528 Forward-Port-Of: odoo/odoo#190841
Steps to reproduce: - Try to add a parent to the base plan "Projects" Issue: Unclear error message Cause: This is a master data and the constraint raised an unclear message "Invalid Operation This column contains module data and cannot be removed!" https://github.com/odoo/odoo/blob/1621f12e90b5903d1132875db7b0d94fa68bc642/odoo/addons/base/models/ir_model.py#L857-L859 Solution: We specify a more user-friendly message during the onchange opw-4327913 Forward-Port-Of: odoo/odoo
Original PR description
Steps to reproduce: - Try to add a parent to the base plan "Projects" Issue: Unclear error message Cause: This is a master data and the constraint raised an unclear message "Invalid Operation This column contains module data and cannot be removed!" https://github.com/odoo/odoo/blob/1621f12e90b5903d1132875db7b0d94fa68bc642/odoo/addons/base/models/ir_model.py#L857-L859 Solution: We specify a more user-friendly message during the onchange opw-4327913 Forward-Port-Of: odoo/odoo#188778
There are new requirements for the ph check format: - No '*' allowed anymore - In amount in words: • no thousand comma separator • no 'And' between hundreds and tens https://www.metrobank.com.ph/articles/new-check-format-advisory This commit fixes also an issue with the cents format in the amount in words ('X/100' instead of 'X0/100') opw-4376550 Forward-Port-Of: odoo/enterprise#75647
Original PR description
There are new requirements for the ph check format:
- No '*' allowed anymore
- In amount in words:
• no thousand comma separator
• no 'And' between hundreds and tens
https://www.metrobank.com.ph/articles/new-check-format-advisory
This commit fixes also an issue with the cents format in the amount in
words ('X/100' instead of 'X0/100')
opw-4376550
Forward-Port-Of: odoo/enterprise#75647The aim of this commit is adapting the IMB (Soldes Intermédiaires de Gestion) to the new COA. task-4040854 Forward-Port-Of: odoo/enterprise#75952 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#75952 Forward-Port-Of: odoo/enterprise#75373
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#75587 Forward-Port-Of: odoo/enterprise#67793
In ES localization Tax Report 349 is an informative tax return report for intra-Community operations. Currently, the tax report will show amounts from credit notes in the invoices section, instead of the refunds section Steps to reproduce: - Have an ES Company setup - Create and confirm credit note with: - EU partner - Type for mod 349: A - Go to Accounting > Reporting > Tax Report - Select Report: Tax Report (Mod 349) (ES) Issue: Credit Notes appear in the invoices section inst
Original PR description
In ES localization Tax Report 349 is an informative tax return report for intra-Community operations. Currently, the tax report will show amounts from credit notes in the invoices section, instead of the refunds section Steps to reproduce: - Have an ES Company setup - Create and confirm credit note with: - EU partner - Type for mod 349: A - Go to Accounting > Reporting > Tax Report - Select Report: Tax Report (Mod 349) (ES) Issue: Credit Notes appear in the invoices section instead of the refunds section opw-4358330 Forward-Port-Of: odoo/enterprise#75808 Forward-Port-Of: odoo/enterprise#75266
`quality_iot` listens continuously for measure updates. It also provides a "take measure" button for devices that don't send automatically their measure. On caliper devices, measures are sent continuously, so methods to read value once were not implemented, resulting in a error if we tried to call them. To avoid displaying an error popup, we implemented those actions on caliper drivers. opw-4332476 Forward-Port-Of: odoo/enterprise#75847
Original PR description
`quality_iot` listens continuously for measure updates. It also provides a "take measure" button for devices that don't send automatically their measure. On caliper devices, measures are sent continuously, so methods to read value once were not implemented, resulting in a error if we tried to call them. To avoid displaying an error popup, we implemented those actions on caliper drivers. opw-4332476 Forward-Port-Of: odoo/enterprise#75847
This commit resolves an issue where users encounter a serialization error when attempting to retrieve accounts. The currency_id is now correctly passed and managed to prevent the "currency object is not serializable" error. no task id Forward-Port-Of: odoo/enterprise#75908
Original PR description
This commit resolves an issue where users encounter a serialization error when attempting to retrieve accounts. The currency_id is now correctly passed and managed to prevent the "currency object is not serializable" error. no task id Forward-Port-Of: odoo/enterprise#75908