Daily updates from Odoo
Friday, November 22, 2024
20 changes · 18.0
Resolved issues and error corrections
This update refines the look and spacing of Odoo Discuss messages, replies, reactions, mentions, and messaging menu items in both light and dark themes. The changes make conversations easier to scan and improve visual consistency without changing functionality.
Original PR description
- message bubble more distinct from background with darkened border - messaging menu item have less horizontal spacing in desktop - messaging menu item preview has bigger emojis like messages -…
- message bubble more distinct from background with darkened border - messaging menu item have less horizontal spacing in desktop - messaging menu item preview has bigger emojis like messages - messaging menu dark theme spacing matches white theme (was missing border color) - message reactions have slightly smaller emoji size - discuss sidebar quick search is more aligned with other items - message in reply background matches original message color and has is more distinct from replied message - mention in dark theme is shinier, somewhat same contrast with regular text content than in white theme Before / After (white) <img width="2555" alt="0-before-white" src="https://github.com/user-attachments/assets/a99a0873-ae93-4c8d-a3f3-a1c30f232c29"> <img width="1280" alt="0-after-white" src="https://github.com/user-attachments/assets/c826f29c-ed2c-47fe-bac3-77c967aeb39b"> Before / After (dark) <img width="2558" alt="0-before-dark" src="https://github.com/user-attachments/assets/f523a131-8765-4d57-b167-d8f370ca33b5"> <img width="2556" alt="0-after-dark" src="https://github.com/user-attachments/assets/06cb3cf5-ed2e-4527-bd57-27b54fe89bea">
Updates the spreadsheet component to the latest version with fixes for formula evaluation, copy/paste behavior, browser clipboard support, and collaboration in read-only mode. Users should see fewer crashes, clearer lookup errors, smoother spreadsheet editing, and small visual improvements to charts.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9eb34d905 [REL] 18.0.5 Task: 0 https://github.com/odoo/o-spreadsheet/commit/434c06097 [FIX] composer: overflow on…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/9eb34d905 [REL] 18.0.5 Task: 0 https://github.com/odoo/o-spreadsheet/commit/434c06097 [FIX] composer: overflow on composer at end of screen Task: 4315958 https://github.com/odoo/o-spreadsheet/commit/e48b96bd2 [PERF] evaluation: early return errors Task: 4328215 https://github.com/odoo/o-spreadsheet/commit/70fe23b61 [FIX] conditional format: huge revisions on copy/paste cf Task: 4240668 https://github.com/odoo/o-spreadsheet/commit/ace25cfae [FIX] collaborative: don't snapshot in read-only mode Task: 4344187 https://github.com/odoo/o-spreadsheet/commit/23037c368 [FIX] clipboard: Fix clipboard cross-browser coverage Task: 4241877 https://github.com/odoo/o-spreadsheet/commit/65b519005 [FIX] functions: Fix error message of some Lookup functions Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/b90326b0f [FIX] functions: XLOOKUP linear search crashes without lookup values Task: 4320993 https://github.com/odoo/o-spreadsheet/commit/d2e1e7ff9 [FIX] config: Update task url Task: 0 https://github.com/odoo/o-spreadsheet/commit/270308d61 [FIX] PivotDimension: Prevent DnD on dimension action buttons Task: 4095643 https://github.com/odoo/o-spreadsheet/commit/64a4cbc76 [FIX] Datavalidation: coreView plugin should not dispatch Task: 4241141 https://github.com/odoo/o-spreadsheet/commit/dab74e230 [FIX] evaluation: log when reaching maximum iterations Task: 4252800 https://github.com/odoo/o-spreadsheet/commit/07c48aa0d [FIX] evaluation: Ensure dependency invalidation for array formulas Task: 4252800 https://github.com/odoo/o-spreadsheet/commit/079a126ee [IMP] chart: improve bar chart borders Task: 4283212 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>
Sale order lines for products that initially calculate to a zero price now keep any manually entered price when the quantity or unit of measure changes. This prevents unintended price resets and helps sales teams preserve agreed custom pricing.
Original PR description
Recent commit c584a61697e4f4d196b4a485411135a96b0f6006 introduced a mechanism to avoid recomputing prices manually defined on sale order lines. Nevertheless, it didn't consider zero-priced products. If a product whose price was 0 (after pricelist computation) was set on the line, even if the price was manually changed to another amount, it was still recomputed when quantities or uom where changed. opw-4329474
The mail composer now keeps separate lines in chatter messages independent when applying formatting. This prevents a heading or similar style applied to one selected line from unintentionally changing the entire message.
Original PR description
Steps to reproduce the issue: ============================= - Go to chatter - Write content on 2 lines - Open composer - Select first line and change the heading - Both lines are changed Origin of the issue: ==================== The content of the textarea sent to the server is `abc<br>efg`. In 17.4: We don't sanitize the content so it stays the same and we put that content into the editor. The editor will create the `p` elements to wrap the inline elements at root. In 18.0: We sanitize the content and it will pass by `lxml.html.fromstring` and it will wrap the content in a `p` element. Now we put `<p> abc<br> efg</p>` in the editor which is valid but it's considered all as the same block. Applying block-level commands like list and heading will change the whole content. Solution: ========= Wrap the textarea content inside a div when we open the mail composer. opw-4350430 opw-4346348
This fixes how Odoo checks push notification permissions on iOS, especially for users running Odoo as a progressive web app. It prevents repeated or misleading permission prompts and helps users receive notifications only when their device can actually support them.
Original PR description
Follow-up of [1] and [2] iOS push notifications do not work on Safari: they only work in apps. The notifications are managed by the apps, whether with native mobile app or PWA. With PWA, it should…
Follow-up of [1] and [2] iOS push notifications do not work on Safari: they only work in apps. The notifications are managed by the apps, whether with native mobile app or PWA. With PWA, it should normally rely on `Notification.permission`, but somehow it doesn't work and always has value "default". Its showing has been limited to the PWA, but it keeps showing a persistent notification. Clicking on it the 1st time displays a prompt to either accept or deny the permissions. Afterwards, further clicks on the "odoobot has a request" automatically display "granted" or "denied" based on user initial choice. iOS push permissions seem to necessarily rely on `serviceWorker.getRegistration().pushManager`, which works only on HTTPS, hence why iOS push notifications do not work on HTTP. Also actual push permission state are correct there whereas on Notification.permission they are wrong. This commit fixes the issue by computing the push notification permisssion state correctly on iOS, using `serviceWorker.getRegistration().pushManager`. [1]: https://github.com/odoo/odoo/pull/178057 [2]: https://github.com/odoo/odoo/pull/187038
This fixes errors that prevented portal customers from paying overdue invoices, especially when paying multiple invoices together. It also ensures the correct payment amount is used so payments are not accidentally created for zero value.
Original PR description
Currently, multiple tracebacks are occurring when the portal user tries to pay the overdue amount. **To reproduce this issue:** 1) In accounting create multiple invoices with the customer as a portal…
Currently, multiple tracebacks are occurring when the portal user tries to pay the overdue amount. **To reproduce this issue:** 1) In accounting create multiple invoices with the customer as a portal user 2) Make sure to give the due date as past date while creating the invoices 3) Now login with portal user and try to pay the due amount in the batch **Error:-** ``` PaymentPortal.overdue_invoices_transaction() missing 1 required positional argument: 'payment_reference' ``` This error occurs because we didn't provide the `payment_reference` in `_prepareTransactionRouteParams`. when executing the `overdue_invoices_transaction()` transaction route. We can resolve this issue by providing the required arguments in the ` _prepareTransactionRouteParams() ` by overriding it in the account payment **Note:-** After resolving the above bug, we are encountering two more bugs. **Bug 1:-** When making a batch payment, we are getting an ensure_one() error if the due amount spans multiple invoices. This occurs from the following line: https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/models/payment_transaction.py#L172-L173 **Bug 2:-** After resolving Bug 1, when we try to make a payment, the amount appears as 0.0 This is because we are passing the amount value in a dictionary with the key as `payment`. while rendering the `portal_overdue_invoices_page`. https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/controllers/portal.py#L63 https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/account_payment/controllers/portal.py#L86-L90 While rendering the `payment.form` template from `portal_overdue_invoices_page`, the amount value is missing in `this.paymentContext`, resulting in the amount being null. https://github.com/odoo/odoo/blob/65811ebaf309c462bf918b01d4401695d87b44d6/addons/payment/static/src/js/payment_form.js#L414-L415 This leads to a successful payment with the amount as 0.0. sentry-5741581459
Users can now upload, create, or edit quote header and footer PDF files without triggering an error. This reduces disruption when configuring sales quote documents and makes PDF handling more tolerant of valid files that were previously rejected.
Original PR description
Currently a `PdfReadError` is arising when user try upload/create/edit the Headers/Footers from the menu. To get this error: - Go to "Headers/Footers" from the "Configuration" menu. - Click "New" or "Upload" to upload the PDF file. - For existing files, re-upload through "File Content(base64)". - The error appears in the console log. Sample File: [EA-20221231-13 (1).pdf](https://github.com/user-attachments/files/17813674/EA-20221231-13.1.pdf) Error: `PdfReadError: PDF starts with 'PK␃␄␔', but '%PDF-' expected` To fix this issue, set the parameter "strict" to "False" to be lenient in checking the file type while uploading/creating. sentry-6064981257
This fixes an inventory accounting issue when changing a product's category, especially for products with negative stock. It helps ensure valuation accounts and costing behavior are applied consistently, reducing the risk of incorrect stock accounting entries.
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 fix keeps website pages from unexpectedly jumping back to the top when a popup opens while animations are running. It improves the visitor experience by making animated pages and modal popups behave smoothly and reliably.
Original PR description
Since this commit [1], from which the scrolling element is no longer '#wrapwrap' but HTML, the test 'snippet_popup_and_animations' fails. This is because during animations, 'overflow-x: hidden' is added to the scrolling element (HTML). At the time a modal shows, an 'overflow: hidden' style is briefly added to the 'body' element, which causes the page to scroll to the top when a modal shows while an animation is playing on the page. To fix this unwanted behavior, we moved the 'overflow-x: hidden' rule added during animations from the HTML to the body." [1]: https://github.com/odoo/odoo/commit/189a7c96e6e26825dc05c0c6466576fe63aa091e task-4185877
Merging accounting accounts now also updates related company default settings, preventing contacts from failing to create after a merge. This avoids broken references to removed accounts when multiple companies or localizations are involved.
Original PR description
**Steps to reproduce:** - Install accountant and contacts - Create a new company - Set a fiscal localization for that company (e.g. Belgium) - Select the 2 companies in the company selector - Go to…
**Steps to reproduce:** - Install accountant and contacts - Create a new company - Set a fiscal localization for that company (e.g. Belgium) - Select the 2 companies in the company selector - Go to "Accounting / Configuration / Accounting / Chart of Accounts" - Add "Receivable" filter - Select: * [121000] Account Receivable (from the main company) * [400000] Customers (from the Belgian company) - Merge the 2 accounts - Select the Belgian company in the company selector as main company - Try to create a contact **Issue:** A traceback is raised due to a missing account record. **Cause:** There is a "User-defined default" with "property_account_receivable_id" and "property_account_payable_id" fields of "res.partner" model that is created automatically for each company. As its value (i.e. account ID) is not updated when the accounts are merged, it is using an account ID that doesn't exist anymore. **Solution:** Check the "User-defined defaults" that are linked to an "account.account" field when merging accounts. opw-4269925 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures Indian invoices and Point of Sale receipts show the correct reverse charge tax percentage in the HSN Summary. Customers now see the expected 18% rate instead of inflated percentages, improving document accuracy and compliance clarity.
Original PR description
Steps to re-produce in Invoicing app: 1. Create an customer invoice with `18% IGST RC` tax 2. Post the invoice 3. Print the PDF In the HSN Summary the expected tax percentage should be 18% but instead it displays 36% Steps to re-produce in Point Of Sale: follow the similar steps as above by creating a sale receipt in POS with `18% IGST RC` tax In the receipt HSN Summary the expected tax percentage should be 18% but instead it displays 72% By this commit we resolve the above mentioned issues --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change adds missing identifiers to French accounting bank data so the records can be reliably loaded during installs, reloads, and upgrades. It prevents upgrade checks from failing and ensures missing bank records can be created when needed.
Original PR description
Records in csv files also need an id column to create a data entry, and to be able to load the file in a mode other than init. The file can be loaded on module installation and all the records would be created without an xmlid, but once the module is reloaded or upgraded the file fails to load. It is a non blocking error for the module but if someone is missing the records then they will not be created. This issue is also blocking the CI on upgrades. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change brings back previously removed website sales stock methods because some existing websites still depended on them. It helps prevent disruptions for online stores after upgrading or running on the stable version.
Original PR description
See #181383, some methods were removed as unused anymore, but existing websites did rely on those apparently. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The HTML editor now waits until a user focuses on it before starting collaboration services. This reduces unnecessary server load and helps improve performance when editor fields are present but not being used.
Original PR description
Issue:
The Editor connect to the collaboration BUS
directly when initialized, resulting in
performances struggle on the server.
Fix:
Restore the previous default behavior to wait for the
focus before initializing the BUS connection.
task-4348299
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fix ensures GST return period forms open with the correct active record context and prevents permission errors when checking e-invoicing settings. It helps users access Indian GST reporting workflows more reliably without unexpected access issues.
Original PR description
Before This Commit: - The `open_gst_return_period_form_view` method manually set context values for `active_id` and `active_model` instead of relying on the active context. - In `action_get_irn_data`, the logic directly accessed the configurations without using `sudo`, resulting in access errors in certain cases. After This Commit: - The `open_gst_return_period_form_view` method now uses the active context instead of manually setting context values. - The `action_get_irn_data` method has been updated to use `sudo` when checking `l10n_edi_production_env`, ensuring proper access rights and preventing permission issues.
The employee appraisal form now keeps the feedback section from covering the chatter area when feedback is unpublished. This makes the form easier to read and avoids confusion during appraisal reviews.
Original PR description
**Steps:** - Install the hr_appraisal module - Open the employee appraisal form view ---- **Description of the issue/feature this PR addresses:** In the appraisal form view, when feedback is unpublished, the feedback section overlaps with the chatter area. ---- **Cause:** This issue arises due to unhandled overflow in cases where feedback is unpublished. ---- **Fix:** This PR resolves the overlap by applying CSS overflow hidden, which hides the overflowing content and prevents overlap with the chatter section. task-4320069
This fixes a problem that prevented Mexican electronic invoice cancellations from working with the PAC SW provider after a recent certificate-related change. Businesses using PAC SW can cancel invoices normally again, reducing disruption in Mexican invoicing workflows.
Original PR description
Since https://github.com/odoo/enterprise/commit/84cc09959d82dbceb4fe673b85464ef3d8630606 the cancellation no longer works with the PAC SW opw-4349251
Recruiters can now refuse an application without encountering a system error. This keeps the recruitment workflow running smoothly when the referrals and salary package modules are installed together.
Original PR description
Backport of https://github.com/odoo/enterprise/pull/70278 task-4345648
Closing a document preview now properly restores the page scrollbar. This prevents users from getting stuck without normal scrolling after viewing a file, improving day-to-day usability in Documents.
Original PR description
Purpose ======= Fix the view scrollbar which isn't restored when the file preview is closed. Specifications ============== When a file is previewed, the view scrollbar is hidden so that scrolling actions don't impact the view behind the file preview. However when the preview is closed, the scrollbar isn't restored. => Calling the documentList onDeleteCallback method to correctly restore the view and the scrollbar when closing the preview. Task-4296803
This fix restores the ability to remove tags in the Documents app without triggering an error. It ensures the tag deletion check uses the right data format, preventing a blocker for teams managing document organization.
Original PR description
**Issue:** Documents tags are impossible to remove. **Expected:** Documents tags removal allowed. **Steps to reproduce:** - Activate and navigate to the documents app; - Click on Configuration > Structure > Tags; - Attempting to delete a tag causes an error message. **Cause:** `external_ids` is a JSON object that can't be used in `search_count`, that method waiting for a list in that situation. **Fix:** Retrieve `external_ids` keys as a list. opw-4293294