Daily updates from Odoo
Tuesday, March 19, 2024
29 changes
1 change
Resolved issues and error corrections
This fix prevents duplicate or unnecessary chat notifications during message posting. It reduces timing-related issues that could cause inconsistent behavior, helping messaging work more reliably for users.
Original PR description
Currently, the message post is done in two steps: first writing the last_interest_dt to the channel, then creating the message, second triggering the notify_thread to send the message to the followers. In the first step, the last_interest_dt will be directly sent to the client if it differs from the old value. So there is no need to send the message to the client if the last_interest_dt has not changed in the second step. Also, this can lead to a racing condition in the testing files. This commit removes the notif in the second step and changes the testing files related. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
4 changes
Resolved issues and error corrections
This update resolves a bug where the survey join link wasn't copying to the clipboard when accessed within a live session. The issue was due to a technical problem with how the link was being targeted, and has now been corrected. Users can now reliably copy and share the survey link.
Original PR description
Steps to reproduce =================== - Launch a survey in a live session. - Start the survey. - Click on the link to join. - The link didn't copy to the clipboard. Technical =========== Here the target element is the input tag so 'textcontent' will not work for that moved the 'o_survey_session_copy_url' class in span tag. This commit has resulted in a breakdown of the feature's https://github.com/odoo/odoo/commit/b62eff731b06520f9669684635cbed408e0fc35c After this commit ================== The link will be copied to the clipboard. Task-3792666
This update resolves an issue where the website's extra menu editing test was failing in version 17.0. The fix ensures the test remains stable by preventing the extra menu from being closed automatically after resizing, addressing a previous state management problem.
Original PR description
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already…
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already opened. On `17.0`, the same behaviour was fixed using the `odooEditor` > `withoutRollback()` mechanism (see: [2]), and a step was added to the `edit_menus` test (`clickOnExtraMenuItem`) to open the extra menu after the "edit mode resize" [3]. The forward port of [1], on `17.0` was adapted to keep the main fix from [2], and removed the tour step since the extra menu will be automatically opened if it was already open before the "resize". Now, if we have a menu with no overflowing items before the resize, and after switching to "edit" mode an extra menu was added, this menu will be closed by default which makes the test fail without the step in [3]. The goal of this commit is to fix this behaviour by simply restoring the `clickOnExtraMenuItem` step with a simple tweak: We don't click if the extra menu is already opened to prevent closing it again. Remark: the test failed on `17.0` but the commit is targeting `16.0` to prevent any test failure linked to the "extra menu auto open" feature. [1]: https://github.com/odoo/odoo/commit/2598cc9ef7fe89a0ce5e375bca6f6a781f6ffdf7 [2]: https://github.com/odoo/odoo/commit/cbed990924887eb529056d89a042a92ba27b825b Related to opw-3484742 Related to task-3439226 Forward-Port-Of: odoo/odoo#155559
This update resolves an issue where the filtering of work locations in the HR module was incorrectly restricted. The previous change caused problems with how employees were assigned to their work locations. This fix ensures accurate location filtering within the HR system.
Original PR description
With this commit, the domain of work location domain is reintroduced. It was a mistake introduced by this PR : odoo/odoo#129308 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157441
This update resolves an issue where automatic invoice creation would trigger errors and tracebacks. The fix ensures invoices are correctly handled, preventing errors during payment processing and improving the reliability of invoice generation. This improves the overall customer experience.
Original PR description
Before this commit, when the automatic invoice setting is enabled, a traceback would be shown when customers pay and the post-processing of the transaction tries to create an invoice. The problem is that the invoice is created in sudo, but it's unsudoed before logging invoices in the chatter. Now, the invoice will stay sudoed if the method is called in sudo. opw-3700576 Forward-Port-Of: odoo/odoo#157779
3 changes
Resolved issues and error corrections
New employee and internal user records now receive a generated avatar based on their name when no image is provided during creation. This keeps profiles visually consistent and avoids blank images in employee and user-related workflows.
Original PR description
Ensure an avatar is generated based on the employee/user name if no image is provided at the record creation (for internal users only). Taskid: 3637523 X-original-commit: 9d11d2087378e1a56333e11daa18e6dc1b8c655e
This fixes the French Intrastat module so it relies on the correct French accounting module. It prevents installation or setup issues caused by pointing to an outdated dependency after recent localization changes.
Original PR description
This commit https://github.com/odoo/enterprise/commit/dbc8be11dacb24cd431d87936dff71d8d7c73e45, merged very recently in master (17.2), added a wrong dependency. l10n_fr is no longer the module that handles the accounting of the French localization, this role now belongs to l10n_fr_account.
The US payroll module no longer requires an accounting localization module that is not needed for core HR payroll use. This prevents upgrade problems for customers who use HR payroll without the related accounting module installed.
Original PR description
Fix the dependencies of the module by removing the one with l10n_us. Base hr modules should not depend on account modules, and it causes issues during upgrades if the hr module is installed in 17.1 without the account module.
21 changes
Resolved issues and error corrections
This update improves the visual feedback when users interact with appointment scheduling forms. It fixes the focus state styling on calendar buttons and appointment cards, ensuring users receive clear visual indicators when navigating through the appointment booking interface.
Original PR description
This commit fixes focuses state on the calendar buttons and on cards in the appointment form task-3607520 Community PR: https://github.com/odoo/odoo/pull/144186
This update ensures the Belgian payroll system reflects the latest legal requirements for employee notice periods as of 2024. The notice period rules have been updated in the employee departure process to comply with current Belgian labor law, ensuring accurate payroll calculations and legal compliance when employees resign.
Original PR description
TaskID: 3782701 https://www.partena-professional.be/fr/nos-connaissances/infoflashes/delais-de-preavis-en-cas-de-demission-des-travailleurs-en-service#:~:text=Avec%20cette%20nouvelle%20loi%2C%20la,avant%20le%201er%20janvier%202014
The automated test for amount rounding in financial reports was failing inconsistently due to timing issues. The fix improves the test's reliability by using more robust detection methods, ensuring the test accurately validates that amounts are rounded correctly in accounting reports.
Original PR description
The amount rounding tour was broken. As it used `:contains(), it was always checking for a substring of the current value of a line. Since it has to wait for the change to open (rpc call), there was a lot of indeterminism. It is fixed by adding more robust extra triggers.
This fix corrects how conditional visibility works in Web Studio for list views. Previously, when users set conditions to hide columns, the entire column would be affected. Now, conditions properly hide individual cells within rows, allowing users to show or hide data for specific records while keeping the column visible for others. This makes list views more flexible and responsive to business logic.
Original PR description
Before this commit, if setting a condition on a column in studio, it was on the 'column_invisible'. In result, the column was not invisible because it was conditional on the lines. So you cannot make the column dissapear on some line and not other in a list view. After this commit, the property selected when setting a condition is 'invisible'. Like that the cell is invisible and not the column. opw-ticket: 3667210 Forward-Port-Of: odoo/enterprise#58199 Forward-Port-Of: odoo/enterprise#54527
This fix corrects the order in which website rental assets are loaded to ensure the rental stock features work properly. Previously, assets were loading in the wrong sequence, causing rental validation features to not function correctly. The fix reorders the asset loading so rental stock features load after the base rental features.
Original PR description
Before this commit assets from `website_sale_stock_renting` was loaded before `website_sale_renting` because there was prepend in parent module assets PR: https://github.com/odoo/enterprise/pull/49610 So method `_getInvalidMessage` written in child(`website_sale_stock_renting`) get overridden by parent module(`website_sale_renting`) This commit add `website_sale_stock_renting` module assets after `website_sale_renting` module assets in order to execute method in proper order opw-3679735
This fix resolves an issue where unchecking approval rules on buttons in the form view editor wasn't actually disabling them. Previously, approval workflows would still trigger even after users disabled the rules. Now, when users uncheck the "Set approval rules" option, the rules are properly archived and no longer enforced.
Original PR description
On the form view editor, click on a button that has studio_approval="True" and some rules behind it Before this commit, unchecking the "Set approval rules" checkbox in the form view editor did not disable the rule itself, causing the expected workflow to trigger the rule, even if the button should not be enforcing them. This was because of commit 3db107ae481a8da85aa356c729bae5fc246e655b, which introduced server-side enforcement of studio approval rules. After this commit, we archive rules that were set on the button, so the expected outside studio workflow works opw-3810516
This fix resolves a crash that occurred when fetching bank transaction data from Codabox when no transactions were available and no default journal was configured. The system now properly handles this edge case, preventing errors during the data synchronization process from the accounting dashboard.
Original PR description
Steps to reproduce: - have a codabox setup - from the accounting dashboard, fetch the codabox data Issue: Traceback Cause: When there are no transactions to fetch and there is no fallback journal_id in https://github.com/odoo/enterprise/blob/27878a7b1a0577c2e83d756d0f59fabe25b20223/account_accountant/static/src/components/bank_reconciliation/kanban.js#L541-L558 it will break (no journal_id -> no company_id -> break ensure one) Note: it could be interesting to further investigate why there is no default journal in the props opw-3814226
This update fixes a bug where dragging a document within the same workspace would trigger unnecessary save operations. The issue occurred because the system wasn't correctly identifying when a document was being moved to its current location. This fix improves performance by eliminating redundant database operations and resolves errors that appeared when performing this action in the trash folder.
Original PR description
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the…
Before this commit: Inside any workspace, select a document, and drag & drop it again into the same current workspace. Issue: The current condition(located in `_onDrop`) fails to check if the workspace where the document is being dragged to, is the same as the workspace it's already present. Effects: - `orm.write` is being executed unnecessarily. - Traceback is observed exclusively in 17.0 and master when similar steps are followed inside TRASH workspace. (will be solved by this PR) Reason: - The workspaces inside the search panel are listed as list-items (`<li>`). Inside those items we have their display names enclosed within the `<header>`. On selecting any workspace (including trash), an active class is added to the `<header>`. - When the `_onDrop` event gets called, the condition before this commit tries to check the presence of an 'active' class on the `<li>` and not on the `<header>` element present inside it. After this commit: The updated condition removes unnecessary computation and eliminates the traceback as well. Task-3627626 Forward-Port-Of: odoo/enterprise#58674 Forward-Port-Of: odoo/enterprise#53158
This fix resolves an issue where searching for products while using category filters on the shop page would cause an error. The problem occurred because category filter data wasn't being properly formatted when sent to the search system. The fix ensures filters are correctly processed, allowing customers to successfully search within filtered product categories.
Original PR description
Steps to reproduce:
* Create a product tag (available on ecommerce)
* Select that filter on the /shop page
* Enter a search string
-> Traceback
The selected tag is given as a string to the
autocomplete route, and not a list of ids,
which fails when converted to an 'in' domain leaf.
`[('product_variant_ids.all_product_tag_ids', 'in', tags)]`
This commit makes sure to convert the given ids to a list, correctly handled by the orm.
Fixes #155327This update fixes a visual alignment issue in the portal where the page navigation (pager) was missing proper spacing from the bottom. The fix ensures the portal pages display with correct formatting and improved user experience.
Original PR description
The pager was not getting the margin from the bottom. This PR fixes the issue by providing the appropriate margin to the pager. Task-3792586
This fix addresses a test failure in the website menu editing functionality. When a menu has no extra items initially but gains them after switching to edit mode, the menu would close unexpectedly, causing tests to fail. The fix restores a step that opens the extra menu while being smart enough not to close it if it's already open.
Original PR description
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already…
Starting from The "unbreakable menu fix" on `16.0` (see: [1]), the state of the website extra menu was stored before every "resize" adaptation, so it can be possible to reopen it if it was already opened. On `17.0`, the same behaviour was fixed using the `odooEditor` > `withoutRollback()` mechanism (see: [2]), and a step was added to the `edit_menus` test (`clickOnExtraMenuItem`) to open the extra menu after the "edit mode resize" [3]. The forward port of [1], on `17.0` was adapted to keep the main fix from [2], and removed the tour step since the extra menu will be automatically opened if it was already open before the "resize". Now, if we have a menu with no overflowing items before the resize, and after switching to "edit" mode an extra menu was added, this menu will be closed by default which makes the test fail without the step in [3]. The goal of this commit is to fix this behaviour by simply restoring the `clickOnExtraMenuItem` step with a simple tweak: We don't click if the extra menu is already opened to prevent closing it again. Remark: the test failed on `17.0` but the commit is targeting `16.0` to prevent any test failure linked to the "extra menu auto open" feature. [1]: https://github.com/odoo/odoo/commit/2598cc9ef7fe89a0ce5e375bca6f6a781f6ffdf7 [2]: https://github.com/odoo/odoo/commit/cbed990924887eb529056d89a042a92ba27b825b Related to opw-3484742 Related to task-3439226 Forward-Port-Of: odoo/odoo#155559
This update addresses several important issues across Odoo's core modules including point of sale receipts, delivery tracking, pricing rules, messaging, reporting, and user interface elements. The changes ensure customer information displays correctly on receipts, adds support for Starshipit delivery provider in Australia and New Zealand, fixes multi-company pricing issues, improves channel messaging functionality, and resolves display problems in various views and reports.
Original PR description
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
This update improves how Odoo validates module versions during system initialization. Previously, the system would check versions for all modules, including those marked as non-installable (inactive modules). Now it only validates versions for active, installable modules. This prevents database initialization issues when non-installable modules have outdated versions, which is expected for modules pending migration or updates.
Original PR description
Non-installable modules shouldn't be considered at all because they are already treated as non-existing code (e.g., their dependencies might not exist without any issue). Furthermore, non-installable modules may be pending for migration, and as a result, their versions are expected to be outdated. Therefore, database initialization must be performed even if non-installable modules with lower versions exist. This commit ensures version validation is done only for installable modules. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix restores the work location filtering that was accidentally removed in a previous update. The work location domain has been reintroduced to ensure employees can only select valid work locations when updating their homeworking information. This resolves a data validation issue that could have allowed incorrect location assignments.
Original PR description
With this commit, the domain of work location domain is reintroduced. It was a mistake introduced by this PR : odoo/odoo#129308 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157441
This update includes several important bug fixes across different Odoo modules: fixing activity assignment permission issues in HR, preventing duplicate orders in Point of Sale due to rounding, correcting serial number validation in stock transfers, fixing tax calculation errors, and improving email scheduling reliability. Additionally, spreadsheet functionality has been updated to the latest version with migration fixes and performance improvements.
Original PR description
NEW
This fix allows Odoo to start successfully even when unmigrated or uninstallable addons with invalid version numbers are present in the addons folder. Previously, Odoo would fail to start in this situation. This is important for users who have legacy modules in their system that haven't been updated yet.
Original PR description
When an addon has an invalid version but is not installable, there is no need to error out. This situation typically happens when unmigrated modules are present in the addons path. Description of the issue/feature this PR addresses: fixes #141747 Current behavior before PR: When an uninstallable addon with an invalid version is present in the path, Odoo does not start. Desired behavior after PR is merged: When an uninstallable addon with an invalid version is present in the path, Odoo does start. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix resolves a crash that occurred when users tried to view a forecast report for replenishment products after archiving or deleting warehouse records. The system now handles missing warehouse locations gracefully, allowing users to access forecast reports without encountering errors.
Original PR description
An error occurs when the user attempts to access a forecast report for the replenishment product but does not receive the warehouse location ID (archive/delete). Steps to reproduce: (without demo…
An error occurs when the user attempts to access a forecast report for the replenishment product but does not receive the warehouse location ID (archive/delete).
Steps to reproduce: (without demo data)
- Install "stock_account" module
- Inventory -> Operation -> Procurement -> Replenishment
- Create a new Replenishment product
- Configuration -> warehouse -> Archive warehouse records
- Go to a product made in the replenishment and click on forecast report
Traceback :
```IndexError: list index out of range
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1826, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1824, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 740, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 34, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 30, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/stock/report/stock_forecasted.py", line 21, in get_report_values
'docs': self._get_report_data(product_ids=docids),
File "addons/stock/report/stock_forecasted.py", line 126, in _get_report_data
res.update(self._get_report_header(product_template_ids, product_ids, wh_location_ids))
File "addons/sale_stock/report/stock_forecasted.py", line 34, in _get_report_header
res = super()._get_report_header(product_template_ids, product_ids, wh_location_ids)
File "addons/purchase_stock/report/stock_forecasted.py", line 11, in _get_report_header
res = super()._get_report_header(product_template_ids, product_ids, wh_location_ids)
File "addons/stock_account/report/stock_forecasted.py", line 17, in _get_report_header
company = self.env['stock.location'].browse(wh_location_ids[0]).company_id
```
This commit will help to open a forecast report if the warehouse location is not found.
sentry-4998176742
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update fixes issues in the website slides module that were causing error pages when users clicked on old links. The system now gracefully handles outdated slide categories instead of crashing, and removes unnecessary legacy code that was no longer needed. This ensures a better user experience when accessing slides from external sources like search engines.
Original PR description
Before this commit, the aria-current was the name of the search_X instead of value 'page'. Code was strange since `'page' and X` == `X`, while we expect 'page' as value. In case of unknown 'search_slide_category' value, use '-' instead to raise a KeyError Exception. We still have some links that point to old url with slide category of type 'presentation' that doesn't exist anymore since the v16. Remove outdated code following the comment: > I swear though, don't be afraid, remove it! From this way, the wrong slide_type of type 'presentation' will be ignored in all case and link from google will show the slide instead of an error 500.
This fix corrects how pagination works when viewing grouped lists with multiple levels of grouping. Previously, the page counter was incorrectly showing the total number of individual records instead of the number of groups, making it difficult to navigate through grouped data. Now the pagination accurately reflects the number of groups, allowing users to properly browse through their organized data.
Original PR description
Have a list view with multiple groupbys and a lot of records to have pagers displayed. Open a group (first level). The pager of the group uses the number of records instead of number of (inner) groups as total. This commit fixes the issue. The pager now correctly allows to navigate through inner groups. 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
This update improves the stability of the website animation feature by adding a validation check before accessing scroll elements. Previously, the code could crash when trying to attach scroll event listeners to elements that don't exist. The fix prevents these null reference errors, making the website animation feature more reliable for end users.
Original PR description
// check if exist the element here, make the code more stable
Description of the issue/feature this PR addresses:
original code :
`this.$scrollingElement[0].addEventListener('scroll', this.__onScrollWebsiteAnimate, {capture: true});`
some time it throw access null object error so, suggest add check logic avoid such error .
new logic code bellow:
`
if (this.$scrollingElement[0]){
this.$scrollingElement[0].addEventListener('scroll', this.__onScrollWebsiteAnimate, {capture: true});
}
`
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-prThis update removes the "amount_to_invoice" field from the Quotations list view, as it displays empty values for quotations and serves no purpose. The fix corrects the display attribute used in the view configuration to properly hide this column from users.
Original PR description
In the Quotations list view, it is possible to show "amount_to_invoice" field. However, this field is empty for quotations and therefore useless. It should be set as invisible for quotations. An inherited view was already taking care of it, but was using "invisible" attribute instead of "column_invisible" attribute. opw-3722037 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr