Daily updates from Odoo
Thursday, December 5, 2024
23 changes
2 changes
Resolved issues and error corrections
This update brings Odoo’s spreadsheet component up to the latest maintenance version and fixes several issues affecting spreadsheet interactions. It improves reliability for action buttons, sheet naming, and pivot-related calculations, helping users avoid errors in day-to-day spreadsheet work.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9b13f22de [REL] 17.4.15 Task: 0 https://github.com/odoo/o-spreadsheet/commit/992622618 [FIX] action button: use nextProps instead of this.props Task: 0 https://github.com/odoo/o-spreadsheet/commit/06b13c9fd [FIX] helpers: Add generic helper to sanitize sheet names Task: 4347719 https://github.com/odoo/o-spreadsheet/commit/094335658 [FIX] pivot: handle boolean-like function arguments in `getPivotCellFromPosition` Task: 4207502 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Fixes an issue where imported pricelists could ignore percentage markups on cost-based pricing rules. This ensures sales quotations use the intended marked-up prices after pricelists are exported and re-imported.
Original PR description
Versions -------- - saas-17.4+ Steps ----- 1. Create a pricelist; 2. add a rule using a cost-based formula; 3. add a 50% markup; 4. export pricelist, then delete or archive it; 5. import pricelist;…
Versions -------- - saas-17.4+ Steps ----- 1. Create a pricelist; 2. add a rule using a cost-based formula; 3. add a 50% markup; 4. export pricelist, then delete or archive it; 5. import pricelist; 6. use pricelist on a quotation. Issue ----- The markup isn't applied. Cause ----- Commit 06d0053763cd added the `price_markup` field to `product.pricelist.item`. Whenever the markup is set/changed, the `price_discount` field is supposed to get set to its negative value. Currently this only happens in an `onchange` method, which does not get called during import: https://github.com/odoo/odoo/blob/9905de54a55b6d77f67772dde7b2d0ea21adaff1/addons/product/models/product_pricelist_item.py#L322-L325 The value of `price_discount` is what eventual price calculations are based on, so if this isn't updated along with `price_markup`, any price mark-up gets ignored. Solution -------- Ensure `price_markup` & `price_discount` are consistent with each other on using `_compute_price_markup` and `_inverse_price_markup`. opw-4282087
1 change
Resolved issues and error corrections
The spreadsheet component was updated to a newer version, including a fix that improves action button behavior. It also adds support for the VALUE spreadsheet function, helping users convert text-based numbers into usable numeric values.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/7b4b898da [REL] 17.2.29 Task: 0 https://github.com/odoo/o-spreadsheet/commit/fc717b392 [FIX] action button: use nextProps instead of this.props Task: 0 https://github.com/odoo/o-spreadsheet/commit/70cb0f5fa [IMP] functions: add VALUE function Task: 4373019 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
8 changes
Enhancements to existing features
GSTR-2B reconciliation now also checks the place of supply when matching vendor bills, helping ensure the correct GST tax split is used. If the place of supply does not match, users receive a clear warning on the bill so discrepancies can be reviewed before filing.
Original PR description
In GSTR-2B matching, we only match the total amount, not the IGST, CGST, and SGST which could lead to inaccuracy. These taxes depend upon the Place of supply, so this commit adds place of supply in matching, and if the place of supply does not match then an exception message is shown on the bill. task-4343860
The employee field is now computed based on the actual employee records that exist, making it more reliable for HR-related workflows. This also prevents a crash in Web Studio caused when archiving a partner linked to an active user, improving stability for administrators.
Original PR description
Make the field computed correctly according to the created hr.employee records. This makes the web_studio crash, as archiving a partner linked to an active user is forbidden
Managers can now approve, validate, or refuse time off requests directly from the Gantt view popover. This reduces navigation and makes leave management faster from the planning screen.
Original PR description
This PR, adds Approve, Refuse and Validate button to popover in gantt view. task-3863607
Field service projects now automatically use the most appropriate existing task stages, improving consistency across teams. If no suitable stages exist, default stages are created and applied, and stages added from the dedicated menu are shared with all field service projects.
Original PR description
This commit enhances consistency for field service projects by: - Automatically link 'fsm' projects to the existing stages with lowest sequence. - Default create stages and set that stages if there is no existing stages. - If new stages created from the dedicated menu will be automatically applied to all field service projects. task-3898200
Payroll slip numbering has been removed so payslips rely on existing names and accounting/payment references instead. This reduces duplicate identifiers and keeps payroll, payment, reporting, and localization workflows aligned with a simpler payslip record structure.
The employee referral screens have been reorganized to make rewards and related information easier to understand and use. Empty screen messages were also improved so users get clearer guidance when no records are available.
Original PR description
With this commit, reward's view is reorganized to be more user friendly. Some empty screen message have been fixed. task-4005202
Belgian payroll now supports enforcing the rule that employees cannot take two consecutive sick leaves without a medical certificate. A new leave type and configuration option help HR teams identify non-certified sick days and ensure there is at least one working day between them.
Original PR description
In Belgium, it is not legal to take two consecutive sick leaves without certificate. For the leaves not to be considered consecutive there should be at least one working day between them, and so public holidays and non-working days would not be considered. This commit adds an option to manage consecutive leaves and adds a leave type for sick days without certificate so that this rule could be enforced. task-4213253
Resolved issues and error corrections
This fix ensures Point of Sale screens refresh properly when orders are added or removed. It prevents outdated order tabs from staying visible, improving reliability for staff managing active or floating orders.
Original PR description
The records cache (from `related_models` module) isn't properly linked to the reactivity of `posmodel`. As a result, some expected rerenderings aren't executed. An example of this is the `OrderTab`.…
The records cache (from `related_models` module) isn't properly linked to the reactivity of `posmodel`. As a result, some expected rerenderings aren't executed. An example of this is the `OrderTab`. When a new floating order is created the `OrderTab` rerenders listing the new order. However, when that empty order is deleted, the corresponding tab item isn't removed in the list. That is because the `OrderTab`'s render method isn't properly subscribed to the changes in `models['pos.order']`. The render subscription doesn't exist because `models['pos.order'].readAll` isn't reading on the reactive version of the `records` cache. That is because `get orderedRecords` is pointing to the non-reactive version of `records`. `get records` exists in `models` and that's what we should use to properly link it to the reactivity and that `OrderTab` properly subscribes `models['pos.order']`. In this PR we are making sure that the methods of `models` (return value of `createCRUD`) is properly using the `reactive` version of the `records` cache. We then pass that version to the CRUD methods to ensure continuity of reactivity in the records. We also need to make changes in the `OrderTab` template, converting `floating-order-container` from `id` to `class` since it's being used for each order. We should not have multiple instances of an id in the html. TASK-ID: 4369054
8 changes
Enhancements to existing features
This update improves stock receipt and reservation performance, especially when handling large numbers of serial numbers. Businesses processing high-volume inventory operations should see significantly shorter processing times and fewer delays.
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 fix keeps chatbots out of live chat calls, where they are not useful, and prevents a crash when users click a bot in the channel member list. It makes live chat interactions more stable and avoids confusing call participants.
Original PR description
This PR fixes two issues: - Chatbot is added to calls while it makes no sense. - Clicking on the bot in the channel member list leads to a crash. task-4354075 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
Fixes a mobile website issue that could prevent customers from scrolling during checkout. This improves the shopping experience on affected devices by ensuring the mobile navigation no longer interferes with page size while the header changes position.
Original PR description
Since [commit [1]](https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e), where the frontend scrolling was moved back out of the '#wrapwrap', an issue sometimes occurs with…
Since [commit [1]](https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e), where the frontend scrolling was moved back out of the '#wrapwrap', an issue sometimes occurs with the standard effect when scrolling on mobile page. Steps to reproduce: - Go to a website with "e-commerce" installed. - Use the devtools to display the website on a mobile device (note that the bug may only occur on certain mobile devices, so it might be necessary to test several to reproduce it). - Add a product to the cart and go to the "/shop/checkout" page. - Try scrolling down. - Bug: scrolling is blocked. The bug happens because, when the page starts scrolling with the "standard" header, there’s a short moment when the header has a "translate: transform" applied but is not yet "affixed." This creates a new coordinate system for the header and affects its child elements, like the "off-canvas mobile" navbar. As a result, the "off-canvas mobile" navbar temporarily changes the page size, which causes scrolling issues, especially on mobile devices. To fix this, we add "display: none" to the "off-canvas mobile" navbar during this short moment so it no longer affects the page size. [opw-4303667](https://www.odoo.com/web#id=4303667&cids=1&menu_id=4720&action=333&active_id=1695&model=project.task&view_type=form) [opw-4305493](https://www.odoo.com/web#id=4305493&cids=1&menu_id=4720&action=333&active_id=1695&model=project.task&view_type=form)
Primary-colored text now automatically uses a more readable shade when themes make the original color too light or low contrast. This keeps website, shop, and portal pages easier to read and more visually consistent, especially with pastel color palettes.
Original PR description
This PR normalizes rendering to improve readability for text elements using the `text-primary` class. While links benefit from a contrast-check feature [1], elements using `text-primary` rely on…
This PR normalizes rendering to improve readability for text elements using the `text-primary` class. While links benefit from a contrast-check feature [1], elements using `text-primary` rely on `$primary` (color-1) directly, resulting in color inconsistencies between links and text, as well as readability issues. The addition of "pastel palettes" [2] made this issue even more pronounced. This PR: - Adds `text-primary-emphasis` class to `text-primary` elements, taking priority. - Introduces a contrast-check for `text-emphasis-*` colors, ensuring links and "primary text" share the same color in cases of low contrast. If contrast is sufficient, the default Bootstrap computation is used. - Ensure that the `$component-active-color` contrast-check function has a color to compute against. [1] https://github.com/odoo/odoo/pull/58739 [2] https://github.com/odoo/odoo/pull/172463 task-4332082 | `18.0` reference palette | `18.0` pastel palette | this PR pastel palette | . | |--------|--------|--------|--------| |  |  |  | . | |  |  |  | . | |  |  |  | . | |  |  |  | . | |  |  |  | . | |  |  |  | . | task-4332082 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refreshes the spreadsheet engine and fixes several issues affecting action buttons, pivot table cell selection, sheet naming, pivot formulas, and chart predictions. Users should see more reliable spreadsheet behavior with fewer errors in reporting and analysis workflows.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/a2652c5a2 [REL] 18.0.7 Task: 0 https://github.com/odoo/o-spreadsheet/commit/68e04cdb6 [FIX] action button: use…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/a2652c5a2 [REL] 18.0.7 Task: 0 https://github.com/odoo/o-spreadsheet/commit/68e04cdb6 [FIX] action button: use nextProps instead of this.props Task: 0 https://github.com/odoo/o-spreadsheet/commit/88aa2a7e6 [REV] pivot: select pivot cells in composer Task: 4189098 https://github.com/odoo/o-spreadsheet/commit/e84a864f8 [FIX] helpers: Add generic helper to sanitize sheet names Task: 4347719 https://github.com/odoo/o-spreadsheet/commit/de260ca22 [FIX] pivot: handle boolean-like function arguments in `getPivotCellFromPosition` Task: 4207502 https://github.com/odoo/o-spreadsheet/commit/02b6618d8 [FIX] charts: non-invertible matrix returns NaN as predicted data Task: 4328743 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
This fixes an issue where exporting customizations from Studio could fail when duplicate internal records existed for the same customization. The export wizard now filters its default data correctly and avoids preselecting unsuitable technical items, making Studio exports more reliable.
Original PR description
Since [1], the export wizard default export data domain has changed but it was not at all in the scope of the faulty commit. This leads to a validation error when a new wizard is created if there is multiple 'ir.model.data' records created in the context of Studio and pointing to the same records. This is often the case for instance for 'ir.model.inherit' records. This commit reintroduces the missing domain part, while adding a test. [1]: https://github.com/odoo/enterprise/commit/99f3591316891e1c2373ed0b3b7e786c0a6b8457
Creating a vendor bill from merged finance documents no longer fails due to overlapping document updates. The Documents app now waits for the bill creation action to finish and safely handles cases where no document is selected, preventing user-facing errors during PDF merge and follow-up actions.
Original PR description
[FIX] documents: fix error when creating vendor bill from split tool How to reproduce: - Install documents_account - In Document App, folder “Finance”, select 2 pdf - Click on Action -> Merge PDFs -…
[FIX] documents: fix error when creating vendor bill from split tool How to reproduce: - Install documents_account - In Document App, folder “Finance”, select 2 pdf - Click on Action -> Merge PDFs - Click on “Create Vendor Bill” You get an error “psycopg2.errors.SerializationFailure: could not serialize access due to concurrent update” The error was caused by the update of the pdf preview during the execution of the action “Create Vendor Bill” (which both update the document). We solve the problem by waiting the execution of the action before executing the rest (especially the update of the preview). [FIX] documents: fix traceback after some action How to reproduce: - Install documents_account - In Document App, folder “Finance”, select 2 pdf - Click on Action -> Merge PDFs - Remove the scissors to merge the 2 documents - Click on “Create Vendor Bill” You get the error: Cannot read properties of null (reading "querySelectorAll"). This is the most reliable way to reproduce the problem but that problem occurs also in other circumstances, for example sometimes when moving to trash documents after some other actions. We solve the problem by returning an empty selection when there are no element. Task-4381458
This update fixes several Planning issues for employees with flexible or fully flexible working calendars. It improves Gantt view accuracy and appearance, corrects demo employee cost data, and ensures recurring shifts are assigned as expected even when overlaps occur.
Original PR description
Fixed a series of issues related to flexible and fully flexible resource introduced in task 3762895. In this PR, the following issues are fixed in the planning app: - In dark mode, the progress bar…
Fixed a series of issues related to flexible and fully flexible resource introduced in task 3762895. In this PR, the following issues are fixed in the planning app:
- In dark mode, the progress bar of resources working fully flexible hours had white background instead of transparent. Step to reproduce:
1. Open the gantt view, create a resource with fully flexible hours and assign it to a task.
2. The progress bar should not have a white background on dark mode.
- Fully flexible employee Suman Oza had no hourly cost set in demo data. Step to reproduce:
1. Go to the employees view and search for Suman Oza.
2. The hourly cost should be no longer be set to 0.
- Flexible employee should have the period outside of their contract grayed in the Gantt view Step to reproduce:
1. Create a resource with flexible hours.
2. Set a contract with a start and end date.
3. Open the gantt view in planning, and search for the resource.
4. The period outside of the contract should be grayed.
- In gantt view sparse mode view, the color of the progress bar (the thin line above each employee and each day) of resources working fully flexible hours should be always in purple color. Step to reproduce:
1. Create a resource with fully flexible hours.
2. Create some shifts for the resource.
3. Open the gantt view in sparse mode.
4. The progress bar should be in purple color.
- Recurring shifts for fully flexible employees are now assigned even if they generate conflicts with existing shifts. (test was added to ensure this behavior) Step to reproduce:
1. Create an employee working fully flexible hours.
2. Plan some shifts for the employee.
3. Create a recurring shift for the employee which ovelaps with the existing shifts.
4. The recurring shifts should be assigned to the employee even if they generate conflicts with existing shifts.
task-id: 41893864 changes
Enhancements to existing features
This update significantly improves the accuracy of Estonia's VAT tax reports (KMD and KMD INF) by correcting rounding errors and enhancing reporting capabilities. It includes a new module to handle rounding differences between Odoo and the Estonian tax authority, ensuring compliance with updated reporting guidelines.
Original PR description
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. With this commit, the tax report: 1. Adds the…
The tax report (KMD report) and annex to the tax report (KMD INF report) for Estonia needed to be reworked to correct errors and fix rounding issues. With this commit, the tax report: 1. Adds the balance_from_tags to allow auditing the report lines, since only aggregation was used before. 2. Fixes rounding issues by using the integer_rounding feature and adding rounding differences to the VAT closing entry. This commit also rewrites the KMD INF report. It creates one report composed of two sections with different columns, using the custom engine to construct both parts. Part A contains information on invoices issued, grouped by move_id and id, to allow showing multiple lines per invoice when different tax rates or special tax types are in one invoice. It only includes invoices with taxable supply at 22%, 20%, 9% and 5%. It excludes invoices of partners whose Tax ID is / and foreigner partners who have a Tax ID not starting by EE. Part B contains information on invoices received, grouped by move_id. Each line showcases information about one invoice with taxable supply at 22%, 20%, 9% and 5%. It relies on a Tax ID starting with EE. The reports follow the guidelines available in https://www.emta.ee/en/business-client/taxes-and-payment/tax-returns-exchange-information/vat-return-forms-vd-and-vdp (forms valid from 01.01.2024 onwards). task-3997203
Resolved issues and error corrections
This update resolves an issue where the resource name wasn't correctly updating in appointment scheduling views. The fix ensures that the selected resource is accurately displayed in the detail column, regardless of appointment type (user-based or resource-based). This improves the user experience when scheduling appointments.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create an appointment type with availability base on resources; 2. have multiple resources to select from; 3. copy share URL; 4. open URL; 5. select a different resource. Issue ----- The resource name in the right column doesn't update to the selected resource. Cause ----- There's no logic in place to update it after selecting a different resource. Solution -------- For user-based appointments, this part isn't shown as long as there's multiple options available. Expand this logic to also work for resource-based appointments. Also modify it to now show details on date selection step unless there's only one option to select from (instead of unless pictures should be shown). With `website_appointment`, this is also the case when a separate selection screen was shown beforehand. opw-4355438
This update resolves an issue where vendor bills weren't correctly associating with the correct partner (Azure Interior). The fix ensures the partner ID is populated when creating vendor bills from documents, preventing data discrepancies and improving financial reporting accuracy. This was triggered by a correction in how attachments are handled.
Original PR description
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then…
steps to reproduce: - Install documents_account - In Settings -> File centralization -> Activate "Accounting" - Then click on Journals below - Then add Jounal: Vendor Bill, Workspace: Finance - Then upload a file in the app Documents, in the workspace Finance - Select that file and update the partner to Azure Interior - Click on the action "Create Vendor Bill" The partner "Azure Interior" is not set on the created account move while it should. For fixing this adding ``partner_id`` of document if present. Now question may arise why account.move having null partner_id. because it being [set](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L77) after creating [attachment](https://github.com/odoo/enterprise/blob/64fc38a80520cfeeb81c0bb329c6b24c3e9454e1/documents_account/models/documents_workflow_rule.py#L76) and during create attachment ``document.partner_id`` is set to null and issue is raised. opw-4077356
This update resolves an issue where the 'Delivery Guide SII DTE 52' report for Chilean companies was missing withholding tax information. The fix ensures accurate reporting of both VAT and withholding taxes, aligning with Chilean tax regulations. This improves the reliability of financial reporting for deliveries.
Original PR description
Withholding tax information is missing when printing report 'Delivery Guide SII DTE 52 (CL)' from a delivery Steps to reproduce: - With a CL Company setup - Have a product with main 19% tax and a withholding tax - Create a SO with the product - Confirm - Open Delivery - Validate - Print menu > Delivery Guide SII DTE 52 (CL) Issue: Only VAT 19% tax is present in the report, withholding tax is missing (even if the total is correct) This occurs because the 'withholding' var is inside another dict Issue2: 'tax_name' is not present in the rendered data, so we need to add it Issue3: withholding amount will be shown without associated currency opw-4214377 Forward-Port-Of: odoo/enterprise#73926