Daily updates from Odoo
Tuesday, March 19, 2024
26 changes
2 changes
Enhancements to existing features
This update enhances the text highlighting feature across Odoo's website and web editor, making it more reliable and visually consistent. Specifically, it fixes an issue where highlights were visible even when scrolling, and streamlines the code for better performance and maintainability.
Original PR description
The goal of this PR is to improve the current text highlight system by adding the following updates: - Move the highlight option's related CSS ([data-set-text-highlight]) to website. - Update the…
The goal of this PR is to improve the current text highlight system by adding the following updates: - Move the highlight option's related CSS ([data-set-text-highlight]) to website. - Update the `selectStyle` options to handle the default "currentColor" value. - Force to hide the highlight options overlay opacity on scroll. - Remove the dead code of `getDOMRectWidth()` (used in older versions to compare text content width on page load). - The `o_text_highlight_item_dirty` class is no longer used to adapt non-detected highlight items (the highlight mutation observer was tweaked to detect and adapt the new highlight items added to the DOM after editors commands. E.g. after the `oEnter()` command). - The editor's code (`_handleTextOptions()`) will only set text highlight classes and activate the snippet. Highlight DOM adaptations (multi-line detection, setting SVGs...) are done by the public widget. - A `z-index:` CSS (used to keep the highlight SVG visible and behind the text at the same time) is replaced by a more appropriate `isolation: isolate;`. - Only use one global `resizeObserver` to adapt the text highlights on resize. - The text highlight effects list was updated. task-3285817 Forward-Port-Of: odoo/odoo#142968
Resolved issues and error corrections
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
5 changes
Enhancements to existing features
Manufacturing work orders now better align with the newer Shop Floor app by removing an outdated tablet-view setting and easing manual lot and serial number consumption checks. This should reduce confusion for users and keep enterprise manufacturing workflows consistent with the latest core behavior.
Original PR description
This PR does 2 things: - adjusts enterprise for the community changes in https://github.com/odoo/odoo/pull/148026 - removes obsolete tablet view option see individual commits for additional details task: 3573667 Upgrade PR: https://github.com/odoo/upgrade/pull/5547 COM PR: https://github.com/odoo/odoo/pull/148026
Appraisal surveys now support more precise access restrictions for designated officers and managers. This improves confidentiality and reduces conflicts with other HR survey flows, while keeping appraisal survey screens focused on relevant options.
Original PR description
Access Rights / Record rules ============================ A survey can now have a list of restricted officers. This addons demo data and the record rules on appraisal officers have been adapted to…
Access Rights / Record rules ============================ A survey can now have a list of restricted officers. This addons demo data and the record rules on appraisal officers have been adapted to the change. Also, the overrides on survey manager and officer rules are removed, as the 'survey_type' != 'appraisal' case is now handled from the 'survey' addon. Views / Actions / templates =========================== 'hr_appraisal_survey' addon enables its users to access surveys of type appraisal directly from the 'hr_appraisal' app. It overrides some 'survey' views and templates, mostly to hide unecessary elements (field, button, actions) for surveys of type appraisal. 'hr_recruitment' is about to provide the same feature, through the same mechanic (interviews). To avoid potential conflicts or unwanted behaviors, we have made a couple of changes: - The inheritance mode of 'survey' form and kanban view overrides are set to primary and their ids are passed to the proper action. So it's not required to use context to figure whether survey's type is appraisal. - Hiding unnecessary survey actions is dealt from the 'survey' addon - Hiding the radio button to select the appraisal type when creating/editing a survey is also dealt from the 'survey' addon see odoo/odoo#131710 task-3451217
This update adds easier direct paths to frequently used actions across several Odoo apps, helping users reach common screens faster. It also clarifies planning links so standalone planning and employee planning each open the right view.
Original PR description
Follow up of odoo/odoo@c63d14a0485a553b74a8457aee158384e9ae6d3f (PR: odoo/odoo#142007) for oft-used actions.
Users can now change the measures used in spreadsheet pivot tables from the pivot side panel. This makes spreadsheet analysis more flexible by allowing teams to adjust the values they track without recreating the pivot.
Original PR description
This commit allows to update the measures of pivots. Task: 3806129
Client actions now support cleaner URL paths, names, and record identifiers, aligning them with other Odoo action types. This improves reload behavior, breadcrumbs, and deep-linking across affected apps such as Accounting reports, Documents Spreadsheet, Payroll, Referrals, Sign, and Barcode.
Original PR description
Since [1], path-based routing is supported for window actions, and server actions. The support for client actions was incomplete. It wasn't possible to add a path if the client action wasn't on the database; at the reload, the client actions didn't have a proper breadcrumb; and client actions didn't have the possibility of using resId (only have action_id as props). This commit, fix this issues by giving the possibility to add a path, and a display name to the client action in JS. Also, it adds resId to the props given to the client action as well as the updateResId function, which allows the client action to update the resId on the URL as a form view will do. [1] : https://github.com/odoo/odoo/commit/c63d14a0485a553b74a8457aee158384e9ae6d3f
19 changes
New functionality added to Odoo
The AI Copywriter tool in the web editor now includes a new "correct" button that allows users to fix grammar and spelling errors in selected text while preserving the original meaning and content. This enhancement makes the AI writing assistant more versatile by offering targeted correction capabilities alongside its existing features.
Original PR description
This adds a button to the AI Copywriter that allows the user to correct the selected text without altering it otherwise. task-3776377 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request introduces a new custom accounting addon module (om_account_accountant) to the Odoo 17.0 branch. The module extends accounting functionality with enhanced features, multilingual support across multiple languages, and improved user interface for account management and reporting.
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
Enhancements to existing features
This pull request updates the exception handling system in Odoo. The changes improve how errors are managed and reported throughout the platform, ensuring better error handling consistency and user experience.
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
Resolved issues and error corrections
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
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 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-pr