Daily updates from Odoo
Friday, October 27, 2023
28 changes
14 changes
Resolved issues and error corrections
The 360 feedback resend action no longer relies on private employee email information that some users cannot access. This prevents access errors and helps managers or authorized users resend appraisal feedback requests smoothly.
Original PR description
This commit fixes the feedback resend feature as it was trying to access the private email of the employee, causing access errors for non hr-users.
Swiss HR users without payroll permissions can now access employee records again. The children information field is only shown to payroll-authorized users, preventing access errors while keeping sensitive payroll-related data restricted.
Original PR description
Before this commit, a user for a swiss company having hr rights but no payroll rights wouldn't be able to access employees because of the `l10n_ch_children` o2m field on `l10n.ch.hr.employee.children` which is supposed to be only accessed by payroll officers. This commit adds a group to the field so that only the users with the correct access rights can see it.
This update improves dark mode colors, contrast, and form styling across several Odoo Enterprise apps so screens remain readable and consistent with the newer design. It fixes cases where buttons, backgrounds, labels, badges, and menus could become hard to see when users work in dark mode.
This update removes unnecessary logging and unused attributes from the marketing automation area. It is a small cleanup that helps keep the system tidier and reduces irrelevant technical noise without changing business workflows.
Original PR description
Remove unnecessary logs and attributes
This fix prevents an error when validating deliveries for inter-company sales and purchase flows that copy lot information. Businesses using synchronized sales and purchase orders can now complete delivery validation without being blocked by the popup error.
Original PR description
https://drive.google.com/file/d/1PPKX7S-FSb7NxF6XhWl-MxM7ZqnCEJMQ/view Steps to reproduce: * enable inter-company transactions * enable "Synchronize Sales and Purchase Order" in company B * enable "Copy Lots on Delivery Validation" in company B * create an SO from company A to company B with a single product, confirm * go to Delivery, click Validate Odoo will show an error popup: "AttributeError: 'stock.move' object has no attribute 'quantity_done'" The issue is caused by a recent refactoring in https://github.com/odoo/odoo/pull/137864
Fixes an issue that could cause the salary contract page to fail while loading. This helps HR users access contract salary information reliably without interruption.
The comparison filter in deferred accounting reports now keeps the styling needed to align the Apply button correctly. This restores a consistent layout with other reports and avoids a confusing visual issue for users.
Original PR description
Following 37798579dd5755f0e7f03e4f54782b0f632a3aaa, the class `filter_comparison` was missing because the div was replaced. Therefore some CSS was missing and the Apply button was misaligned. This is fixed by replacing the `<t>` element instead of the whole `<div>` **Before:**  **After (similar to other reports)** 
Several subscription sales issues were corrected, including portal payments, plan changes, and visibility of upsell or sales template options. These fixes make subscription management more reliable and reduce confusion for customers and sales teams.
Point of Sale session calculations now properly include canceled orders where required. This prevents incorrect Belgian fiscal and employee-related POS reports, improving reliability for compliance and operations.
Original PR description
pos*: pos_blackbox_be, pos_hr_l10n_be In this commit, we adapt the use of self.order_ids in pos_session overrides. Those overrides were not taken into account the canceled orders in this recordset leading to wrong computation for reports,... Community PR: odoo/odoo#139714
The automated rental product configuration checks were updated to match recent design changes. This helps keep quality checks reliable and prevents false failures during development, with no direct change for end users.
This update corrects issues in the rental sales stock flow so rental orders and warehouse movements behave more reliably. It helps reduce operational errors when managing rented products and validates the fixes with rental tests.
The Vendors menu has been updated to match the split of the Amounts to settle action into separate options. This prevents users from being sent to an overly broad reconciliation view and keeps the accounting reports aligned with the intended workflow.
Original PR description
Current behavior before PR: Currently, the "Amounts to settle" button in the "Vendors" drop-down menu opens a view showing all the account.move.line that are to be reconciled. Desired behavior after PR is merged: This commit is linked to a commit in community which splits the action responsible for this into two and therefore, the action should be renamed everywhere. Community:https://github.com/odoo/odoo/pull/139921 task-3572482
This fix ensures paid point-of-sale orders created while offline are sent to preparation displays once the system reconnects. It helps kitchen or preparation teams receive all relevant orders reliably, reducing missed orders and operational disruption.
Original PR description
Previously, when PoS was in offline mode, paid orders were not sent to preparation display due to poor error handling. Now, when the PoS is offline and reconnects, paid orders are sent to the preparation display via the create_from_ui function.
Portal users can now browse shop pages containing rental products without encountering an access error. This aligns their read access with public visitors, improving the rental shopping experience for logged-in customers.
Original PR description
Steps to reproduce: - Install website_sale_renting; - Log in as portal user; - Go to /shop on a page where there is a rental product; - Access error The error is raised because there is a missing access rule for portal user. As there is a read access to public user, we add it to portal user as well.
14 changes
Resolved issues and error corrections
A test for the chart side panel in the Documents Spreadsheet module was failing after recent improvements to the domain selector component. This fix updates the test to match the same changes that were already applied to similar tests in the Pivot and List side panels, ensuring the test suite runs successfully.
Original PR description
## Task Description Since the refactor/improvement of the domain selector, there is a failling test in the chart_side_panel_test. This PR updates this tests by making the same changes that have been done in other side panels tests (PIVOT and LIST).
This fix ensures that certain zero-value lines in French VAT reports are not sent to the government when they shouldn't be. Specifically, VAT unit operations (line F9) will only be included if VAT units are enabled, and VAT import lines (A4, I1-I6) will only be included for applicable tax regimes. This prevents unnecessary or invalid data from being submitted to French tax authorities.
Original PR description
When sending the VAT report to the French government, some lines at 0 should not be included in the xml: * the line F9 (vat unit operations) can only be transmitted if the VAT unit is enabled. * the lines VAT import (A4, I1, I2, I3, I4, I5, I6) can only be transmitted for specific tax regimes. opw-3564148 Forward-Port-Of: odoo/enterprise#49476
A bug in the Knowledge module's article selection dialog was displaying both articles and templates when users tried to insert a view into an article. This fix adds a filter to the search to show only articles, excluding templates from the list. This ensures users see the correct content when selecting where to insert their views.
Original PR description
When merging the models `knowledge.article` and `knowledge.article.template`, we unintentionally forgot to add a condition in the search domain of the article selection dialog to filter out the templates from the search results. As a result, the dialog currently lists both articles and templates. This commit will simply add the missing condition in the search domain to exclude the templates from the search results. Steps to reproduce the issue: 1. Open any view 2. Click on the cog icon in the control panel 3. Click on the "Knowledge" section of the dropdown 4. Click on the button "Insert view in article" => The modal allowing the user to select an article displays the articles and the templates. TO BE: The modal should only display the articles and not the templates. Reference: https://github.com/odoo/enterprise/pull/48691 task-3571715
This fix corrects a calculation error in Luxembourg's annual tax report where certain financial amounts were displaying with the wrong sign. The issue occurred because account balances are stored as credit amounts (negative values), but the formula wasn't accounting for this properly. The fix adds the necessary adjustment to ensure tax report figures are calculated correctly.
Original PR description
Now the default external values are created with the negative sign, as the amount on the accounts is in credit. We need to add a minus in front to correct the amount. The relevant test was created for an `in_invoice`, which is why the default value was not tested correctly.
This fix resolves an error that occurred when validating deliveries in inter-company sales transactions with lot tracking enabled. The issue prevented users from completing delivery validations when synchronizing sales and purchase orders between companies, which has now been corrected to ensure smooth order fulfillment workflows.
Original PR description
Steps to reproduce: * enable inter-company transactions * enable "Synchronize Sales and Purchase Order" in company B * enable "Copy Lots on Delivery Validation" in company B * create an SO from company A to company B with a single product, confirm * go to Delivery, click Validate Odoo will show an error popup: "AttributeError: 'stock.move' object has no attribute 'quantity_done'" The issue is caused by a recent refactoring in odoo/odoo#137864
This update adds a required data neutralization script for the Belgian CodaBox tax module that was introduced in version 17. The neutralization script ensures proper data cleanup and compliance when the module is used in certain environments. This fix completes the module's functionality that was partially deployed in a previous update.
Original PR description
Add the missing neutralisation script for the module l10n_be_codabox introduced in v17 with https://github.com/odoo/enterprise/pull/47607
This update fixes automated tests for the rental product configurator feature to work with a new user interface design. The test scripts were adapted to match the updated design, ensuring that quality assurance processes continue to function properly and catch any issues with the rental product configuration feature.
Original PR description
See also: - https://github.com/odoo/odoo/pull/140096 Backport of https://github.com/odoo/enterprise/pull/49636
This fix resolves an issue where messages in chatbot and livechat conversations were not being properly formatted. The problem occurred because code patches were not correctly handling the HTML formatting flag when inserting messages. By updating how these patches work internally, messages now display with proper formatting and security markup as intended.
Original PR description
*: approvals, voip, whatsapp Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in…
*: approvals, voip, whatsapp Before this commit, messages in chatbot conversation were not properly markup. This comes from changes from [1] that added trusted insert. Original code in `Record.insert()` makes a model insertion of the data using the `html` flag. Patches must not override `static insert()` as only the super call is affected by the provided `html` flag. For patches to take account of it, they must instead patch `_insert`, with `_` prefix, which is internally called by original `Record.insert()`. In addition: - `static insert` allows array of data while `static _insert` works with data on single record. Patches were designed with data on single record, so some code were not working properly - Signature of `static insert` has been overloaded with new option `html: true`, so patches must propagate it. They were only propagating `data` and omitting the 2nd paramater, which results in omitting provided `html` thus falling back to `html: false`, resulting to non-escaping message body This commit fixes all model patches to override `static _insert` instead of `static insert`. [1]: https://github.com/odoo/odoo/pull/139501 https://github.com/odoo/odoo/pull/140064
A recent code change accidentally removed styling from the comparison filter in deferred financial reports, causing the Apply button to appear misaligned. This fix restores the proper styling by preserving the filter container class, making the interface look consistent with other reports.
Original PR description
Following 37798579dd5755f0e7f03e4f54782b0f632a3aaa, the class `filter_comparison` was missing because the div was replaced. Therefore some CSS was missing and the Apply button was misaligned. This is fixed by replacing the `<t>` element instead of the whole `<div>` **Before:**  **After (similar to other reports)**  This is a backport of https://github.com/odoo/enterprise/pull/49633
Portal users were unable to view rental products in the online shop due to missing access permissions. This fix grants portal users the same read access to rental products that public users have, allowing them to browse and interact with rental offerings without errors.
Original PR description
Steps to reproduce: - Install website_sale_renting; - Log in as portal user; - Go to /shop on a page where there is a rental product; - Access error The error is raised because there is a missing access rule for portal user. As there is a read access to public user, we add it to portal user as well. Backport of https://github.com/odoo/enterprise/pull/49583
This fix prevents the payroll system from unnecessarily recalculating payslips when employees or managers make edits to them. By avoiding redundant recalculations, the system now works more efficiently and preserves intentional manual adjustments made to payslips, reducing confusion and saving processing time.
Original PR description
Forward-Port-Of: odoo/enterprise#49630
The sales smart button on a customer's contact page was not counting subscription quotes, only regular sales. This fix ensures the button now accurately displays the total count of both sales and subscription quotations, giving customers a complete view of all quote activity.
Original PR description
[FIX] sale_subscription: Sales smart button in customer's contact page is not updating upon creating subscription quote Steps to reproduce: 1- Install Contacts and Subscriptions modules 2- Check number of sales in a customer's contact page from the smart button 3- Create a new subscription quote for a customer 4- Go to the customer's contact page 5- Check the sales smart button which will remain the same number as step 2 Current behavior before PR: The sales smart button is not counting subscription count while when click on it you will find the last of sales quotations along with the subscription quotations Desired behavior after PR is merged: The smart button now is counting the number of both sales and subscription quotations opw-3525414 Forward-Port-Of: odoo/enterprise#49051
This fix resolves an error that occurred when viewing project tasks in Gantt view and grouping by Sale Order Item. The system was trying to use an outdated field reference that no longer exists, causing the view to crash. We've updated it to use the correct field name so users can now properly organize and visualize their project timelines.
Original PR description
Steps to reproduce: ------------------- - create a product which create a project and a task; - create a sale order with this product; - on the created task, add value for "Planned Date"; - go to Project / All Tasks and use Gantt view; - apply a Group By using "Sale Order Item"; Issue: ------ A traceback occurs. Cause: ------ We are trying to group the records of `project.task` model according to the `allocated_hours` field. Unfortunately, this field does not exist. Solution: --------- Use its equivalent field (`planned_hours`) as of version saas-16.2. opw-3491920 Forward-Port-Of: odoo/enterprise#49538 Forward-Port-Of: odoo/enterprise#49435
Fixed a bug where WhatsApp channels were incorrectly being reactivated when new messages were sent. The system now properly deactivates channels 24 hours after the customer's last message, rather than after any message in the conversation. This ensures WhatsApp's 24-hour messaging window policy is correctly enforced.
Original PR description
Steps: 1. Install the WhatsApp module. 2. Create one WhatsApp account. 3. Send a template message from the account to a recipient's number. 4. Reply to the message from the WhatsApp application. 5. A…
Steps: 1. Install the WhatsApp module. 2. Create one WhatsApp account. 3. Send a template message from the account to a recipient's number. 4. Reply to the message from the WhatsApp application. 5. A new channel will be created for this conversation. 6. After 24 hours, the channel will be blocked from sending messages from the channel 7. Now send another template to that user. when sending the new template it will post a message in the channel and that channel will be allowed to send messages. This working is wrong because it should work like a deactivate channel after 24 hours of the last message of the recipient, Problem: _compute_whatsapp_channel_valid_until method uses using _channel_last_message_ids method to retrieve the last message so, in this case, the last message will be the message that can be posted by any user but we want the recipient's last message. Solution: instead of using _channel_last_message_ids created a new method to retrieve the last message of the customer in the channel. Forward-Port-Of: odoo/enterprise#49590