Tuesday, October 7, 2025
40 changes · 19.0
Enhancements to existing features
Brazilian service fiscal setup now shows the correct LC116 Code label instead of Mercosul NCM Code. This reduces confusion for users configuring services while keeping product code labeling unchanged.
Original PR description
Purpose:- - In Brazil, NCM is a code that has an acronym to specify the Mercosul Common Name for products, and for services, the right name is LC116 (Complementary Law 116), which specifies the federal code for a service. - But we have the same field `l10n_br_ncm_code_id` to configure both NCM for goods and LC116 for services and the same table can be used for both the cases. - So while configuring fiscal information for a service, user don't understand why it still shows the NCM label instead of LC116. Before this commit:- - Label `Mercosul NCM Code` was displayed for services confusing users. After this commit:- - Label `Mercosul NCM Code` is replaced with `LC116 Code` only for services. - Tooltip is also improved for better understanding. task-5096435 Forward-Port-Of: odoo/enterprise#96228 Forward-Port-Of: odoo/enterprise#95404
This update adds extension points for the automatic wave process in warehouse batch picking. It makes it easier for businesses with custom warehouse rules to adapt when transfers are automatically grouped, without changing the core process.
Original PR description
This improvement just adds some hook methods that allow to decapsulate the logic of auto waves so its doable to extend the conditions for auto-waving. cc @moduon fyi @Shide TODO: for the sake of clarity I just inserted the hook method logic but a cleaner approach would be to extract the whole logic of each hook into their own separate method --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#227873
Resolved issues and error corrections
This update prevents crashes in the Chilean electronic invoicing integration when processing incoming emails. It keeps the module compatible with recent internal mail handling changes, helping related automated workflows run reliably.
Original PR description
Description of the issue/feature this PR addresses: Found while investigating [#230014](https://github.com/odoo/odoo/issues/230014) Current behavior before PR: Crashes because of not being aligned with new name of task-4982132. Desired behavior after PR is merged: No crash. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Documentation and clarification updates
The corporate contributor agreement record for ForgeFlow has been updated. This keeps Odoo's legal contribution documentation current and supports ongoing compliance tracking.
Original PR description
Forward-Port-Of: odoo/odoo#230040
Miscellaneous changes
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417
Original PR description
Fixes a typo in the i18n directory. no task-id Forward-Port-Of: odoo/enterprise#96417
The help message shown when no bank transactions are found now displays correctly instead of showing raw formatting tags. This makes the bank synchronization experience clearer when fetching transactions or changing filters returns no results.
Original PR description
Before this commit : - The help message shown when no transactions were fetched by the 'Fetch Transactions' button in the 'Bank' journal contained raw html tags, as markup was not getting applied. - Also, removing a filter (without reloading) and applying another filter that resulted in no matches, the same issue occurred. After this commit: - The help message is now consistently rendered with markup applied. task-4942234 Forward-Port-Of: odoo/enterprise#95514
Users who close the email validation message will no longer see a confusing follow-up banner reappear. This keeps the profile page experience clearer after an email has already been validated or the notice has been dismissed.
Original PR description
### Issue 1: The validated email success banner wasn’t triggering the RPC call because Bootstrap’s `data-bs-dismiss="alert"` removed the element from the DOM before the handler could run. ### Issue 2 Closing the banner previously triggered `/profile/validate_email/close` RPC, which reset `validation_email_done` to false. This mistakenly caused the “email sent” banner to reappear, confusing users. ### Solution - Overwrite Bootstrap’s `close.bs.alert` event to trigger the RPC when the success banner is dismissed. - Set `validation_email_sent = False` so the banner stays hidden after being closed. Task-5049533 Forward-Port-Of: odoo/odoo#229913 Forward-Port-Of: odoo/odoo#225872
This update aligns automated tests with the newer editor behavior for selection placeholders. It helps keep quality checks accurate without changing what business users see or do.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/225576 Since the introduction of selection placeholders, we don't need to ensure an empty paragraph after a trailing table. This adapts a test to this new behavior. task-4129699
This update fixes several visual alignment issues in the HTML Builder option panels, including blurry guide lines, uneven picker padding, and inconsistent picker heights. Users get a more stable and polished editing experience when configuring fonts, shadows, visibility, and background image options.
Original PR description
This PR fixes several options-related issues in the HTML Builder: 1. Improved the vertical sublevel line, which appeared blurry due to the transform property and an incorrect height. You can see the…
This PR fixes several options-related issues in the HTML Builder: 1. Improved the vertical sublevel line, which appeared blurry due to the transform property and an incorrect height. You can see the problem by "zooming out" multiple times. 2. Harmonized the padding of the visibility layout options and the background image position to align with the other pickers. 3. Fixed the height of the font-family picker: when you select a font-family, the height of the picker may change according to your selection (that's the case with Roboto for example - It's more "apparent" in the case of headings when it's next to the delete button as shown in the screenshot.) 4. Fixed the height of the “None” shadow option => these 2 issues where caused by the font metrics. task-4985348 1 & 2 <img width="423" height="500" alt="image (1)" src="https://github.com/user-attachments/assets/a9304b67-607a-424a-94de-dd3dacece84f" /> 3 <img width="1037" height="293" alt="Screenshot 2025-10-02 at 13 14 37" src="https://github.com/user-attachments/assets/d5982d34-2987-49d9-95cf-c78294521995" /> 4 <img width="1542" height="231" alt="image" src="https://github.com/user-attachments/assets/13cbfa8f-dd72-41dc-82f2-c371f6ff2d77" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#229086
This fix ensures Belgian EC sales reports handle VAT numbers correctly even when users entered them without the Belgian country code. It prevents valid VAT numbers from being shortened incorrectly and keeps the report country code consistently set to Belgium.
Original PR description
It could happen that the user set his vat number without the country code before the number. In this case, we removed the two first digits of the vat number. Also changing other occurrence using the company_vat to get the country, since we are in the belgian ec sale list, the country_code should be 'BE' everytime task-5039969 Forward-Port-Of: odoo/enterprise#93377
Employees with flexible working schedules will no longer see Saturdays and Sundays incorrectly marked as unavailable in the timesheet grid. This avoids confusion for teams that can record work on any day.
Original PR description
To reproduce: ============= 1- Update employee worktime to be flexible 2- Go to timesheets -> saturday & sunday are marked grey Problem: ======== Can't apply https://github.com/odoo/odoo/blob/ce2d134d3e8e5c0d96529c1d0490f1e0c5e28294/addons/resource/models/resource_calendar.py#L511 This logic cannot be applied when an employee's work time is flexible, since they can work whenever they want. Fix: ==== When employee work time is flexible we just return empty list for the unavailable dates. opw-5031144 Forward-Port-Of: odoo/enterprise#96181 Forward-Port-Of: odoo/enterprise#94346
The IoT box image build process now uses the correct dependency location for Raspberry Pi images. This prevents build failures caused by choosing the wrong package path during the image creation process.
Original PR description
When building an image in v19.0, we try to install `aiortc` from path. The requirements.txt contain two path: one for rpis and one for other linux machines. While building, we `chroot` from the builder's machine to the rpi filesystem, so the plateform is still the host machine's one, but the filesystem is the rpi's. To fix this, we hardcoded the right path in the `init_image` script.
This fix ensures copied website configurator pages remain connected to the correct website. It prevents build errors and helps website setup flows complete reliably.
Original PR description
This PR resolves the runbot build error https://runbot.odoo.com/odoo/runbot.build.error/232963 Standalone script test_02_theme_default_generate_primary_templates Reason: The issue was introduced by commit [1], which creates a copy of configurator pages but does not set the website_id field on the new copy. As a result, the copied page is missing its website association, leading to error. [1]:https://github.com/odoo/odoo/commit/4231c9e545f
This update adjusts the Sales Subscription area so it remains aligned with related changes in the main Odoo platform. It helps keep subscription behavior reliable after upstream updates, with no expected change to everyday business workflows.
Original PR description
See also - https://github.com/odoo/odoo/pull/227241
The bank configuration dashboard now uses adjusted colors so information remains easy to read when dark mode is enabled. This improves usability for users who work with the accounting bank synchronization screens in dark mode.
Original PR description
This commit adjusts dashboard bank colors to enhance readability in dark mode. task-5122380 Requires: - https://github.com/odoo/odoo/pull/229228 | Before | After | |--------|--------| | <img width="653" height="385" alt="image" src="https://github.com/user-attachments/assets/b7a661d9-d979-498d-b099-a7efb9ab134c" /> | <img width="641" height="302" alt="Capture d’écran 2025-09-30 à 14 45 06" src="https://github.com/user-attachments/assets/f2351a7d-dbc7-4f23-af04-0b6801b2f186" /> |
This fixes a rare timing issue that could cause an automated session timeout test to fail even though the product behavior was not actually broken. The change makes the test more reliable, reducing false alarms in the validation pipeline.
Original PR description
Error seems very rare on the runbot (only one occurrence recorded) but happens pretty often when I run the tours locally, and is "sticky". The problem is that it's possible for an RPC to run between…
Error seems very rare on the runbot (only one occurrence recorded) but happens pretty often when I run the tours locally, and is "sticky". The problem is that it's possible for an RPC to run between the instant where the identity check is invalidated / times out and the next check of `retryUntil` (especially since that only checks every second, but even with a smaller interval it would likely still have a window of opportunity for the race). If that happens and the RPC doesn't otherwise handle RPC errors internally (which whatever calls `discuss.channel.channel_fetched` apparently does not as that's what causes the issue both locally and on runbot), then the session timeout will trigger an `RPC_ERROR` which will get logged as an `ERROR` to the driver, which causes the tour to fail. The workaround isn't exactly sexy: if we see an RPC hit with a check identity timeout then instead of returning the error we convert it to an infinite wait (a promise which never resolves), which avoids failing the tour. This seems preferrable to trying to return a success as we can't know what future RPCs falling into that same interval would need to return. https://runbot.odoo.com/odoo/error/232711
Canceled Gelato orders can now be processed without triggering an error in Odoo. Instead of trying to use a removed email template, the cancellation status is recorded directly on the sale order activity log, keeping teams informed and avoiding disruption.
Original PR description
After an order is canceled on Gelato, we receveive a webhook with an `fulfillmentStatus` of `cancel` and while processing it, it crash with: ``` ValueError: External ID not found in the system: sale.mail_template_sale_cancellation ``` The mail template used to notify the status change has been removed in odoo/odoo@2c858ed15e50, so instead we simplify log the information on the sale order chatter. opw-5110226 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230121
This fix stops users from pasting text into parts of website editor content that are meant to be locked from editing. It helps preserve protected page elements and avoids accidental changes while editing website pages.
Original PR description
When the selection is on text inside an element which is not `contenteditable` and is a inside the editable root, the user could paste text that would get inserted. This commit prevents that by ignoring `paste` events when selection is in a `contenteditable=false`. Steps to reproduce: - On `form/help-1`, open website builder - Select the text of "Help" title - Paste text - Bug: text is inserted task-4367641 Forward-Port-Of: odoo/odoo#228149
Internal agents who are viewing a WhatsApp conversation without being added as members can now translate messages. This removes an unnecessary limitation and helps support teams understand customer conversations while monitoring them.
Original PR description
Before this commit, when an agent that is not member of whatsapp but is peeking the conversation, the agent could not translate the message. This happens because the translation feature is limited to internal users, but this was determined based on the self member relational field. This works when the agent is a member but when not a member this was arbitrarily disabling the feature. This commit fixes the issue by looking at whether the user is internal or not, based on self persona independently on whether the agent is member or not of the conversation. Task-5111383 Forward-Port-Of: odoo/enterprise#95913 Forward-Port-Of: odoo/enterprise#95474
This fix makes tests around mentioning discussion channels more reliable by ensuring channel suggestions are found through the intended path. It also corrects the mock server response format, reducing false build failures and helping keep messaging features stable.
Original PR description
https://runbot.odoo.com/odoo/runbot.build.error/233201 Problematic line introduced: https://github.com/odoo/odoo/pull/209240 Test introduced: https://github.com/odoo/odoo/pull/226563 Test adapted to be more deterministic: remove current user from channel to ensure the channel is always found through the suggestion route. Fixed returned format of mock server.
This update fixes an automated test used to verify the online shop rental purchase flow. It helps ensure the test runs consistently, reducing false failures during quality checks.
Original PR description
In this commit, we ensure tour succeed each time by clicking on hidden element.
This fix prevents an error when employees who belong to manually created user groups open their preferences. Odoo now ignores groups that lack system identifiers, keeping the HR-related preferences flow stable for affected users.
Original PR description
After this commit: odoo/odoo@f409d38bcc858642a981d1b2c765dbe37b3fbd36 all the user groups are being added in the context This caused an IndexError when the user belonged to a group that does not have an external XML ID (e.g., a manually created group), because _get_external_ids() returns an empty list for such groups. The fix adds a conditional check to skip empty lists, ensuring that only groups with XML IDs are added to the context. Steps to reproduce before the fix: - Go to Settings → Users & Companies → Groups → create a new group. - Add the current user to this new group. - Go to the odoo Dashboard → click on My Preferences. 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
Users can now create document actions that generate journal entries for credit card journals. This removes a blocker for teams processing credit card statements through Documents and keeps the workflow consistent with other journal types.
Original PR description
We are unable to create an action to create a credit card statement on a journal with type credit card Allow to create a Server Action to create Journal Entries in journals of type "Credit Card" in Documents. task-5123868 Forward-Port-Of: odoo/enterprise#95905
Live chat agents who are viewing a conversation without being assigned as members can now use message translation. This removes an unnecessary limitation and helps agents understand customer conversations more effectively.
Original PR description
Before this commit, when an agent that is not member of livechat but is peeking the conversation, the agent could not translate the message. This happens because the translation feature is limited to internal users, but this was determined based on the self member relational field. This works when the agent is a member but when not a member this was arbitrarily disabling the feature. This commit fixes the issue by looking at whether the user is internal or not, based on self persona independently on whether the agent is member or not of the conversation. Task-5111383 Forward-Port-Of: odoo/odoo#229294 Forward-Port-Of: odoo/odoo#228449
This fixes a rare, timing-related failure in the Mail app's automated call invitation test. It helps keep quality checks stable without changing the user experience.
Original PR description
Before this commit, the `test_07_call_invitation_ui` test could fail in a non-deterministic way. At some point, the test tries to open the channel invitation camera preview which sometimes does not open because the component state is lost due to outdated bus notifications. In detail: - Invitation is received after calling the `/mail/data` route. - Notification resulting from channel creation are received. However, invitation was not yet created at that point, leading to invitation deletion. - Notification resulting from invitation creation is received, the invitation is shown again but the component state is lost. In practice, this rarely happens and is not critical. This commit fixes the issue by clearing the notifications before starting the tour. fixes runbot-233231
The India reports module no longer applies an unnecessary tax unit check when creating GSTR tax returns. This prevents avoidable validation issues because the system already assigns the correct tax unit automatically.
Original PR description
This commit removes a check of tax unit constraint. It is not useful for now because system creates the tax returns, and it sets the `tax_unit_id` according so we can remove the constraint. reference task task-4750259
This fix prevents an unwanted horizontal scrollbar from appearing in the color picker after a recent layout change. Users will see a cleaner, stable color selection panel that stays within its intended width.
Original PR description
Description of the issue/feature this PR addresses: - Due to a recent [refactor](https://github.com/odoo/odoo/commit/edc9d5bb9582db704ed02051ee4adb3801ddfaa9#diff-f2da6e6a1009564765335a3006ab73d76120e094d3554786c9acbe15b79f9fe0R7), the margin start (`ms-1`) was applied to all tabs of the color picker instead of only the first one, and `me-1` to the last one. Because color picker has fixed width, this change introduced scrollbar. Desired behavior after PR is merged: - Added `px-1` to the parent element so that the color picker remains fixed and does not scroll horizontally. task-5103832 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web interface now handles long view names better in the mobile bottom sheet, such as longer translated labels. This prevents awkward wrapping or cramped layout, making navigation clearer for users in different languages.
Original PR description
This commit adds some CSS rules to have a better layout when there are long view title in some language (e.g.: in French: "Tableau croisé dynamique") task-5139101 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change stabilizes an automated test for the Discuss app by accounting for the OdooBot channel opening first. It reduces false test failures, helping releases and maintenance runs proceed more reliably without changing user-facing behavior.
Original PR description
Before this commit, the `test_05_can_create_channel_tour` could sometimes fail. The test checks that creating a channel from the form view adds it to the sidebar. The failure happened because the tour relied on a breadcrumb showing "Discuss". When first opening the discuss app, the "OdooBot" channel appears, so the breadcrumb shows "OdooBot" instead. This commit fixes the issue by giving the "OdooBot" channel time to open and updating the breadcrumb selector. fixes runbot-233232 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
Fixed an issue in the online store product image viewer where the active thumbnail could appear off-center when product images used automatic sizing. This improves the shopping experience for customers viewing products with media of different dimensions.
Original PR description
Versions -------- - 19.0+ Steps ----- 1. Open eCommerce editor on product page; 2. set image ratio to 'auto'; 3. enable zoom-on-click; 4. add extra media with different sizes; 5. close editor & click on product image; Issue ----- The thumbnail row on the bottom isn't centering the active image properly. Cause ----- The `_updateCarousel` hook added in cfc9814feba08 centers the images with the assumption that they all have identical widths. As of commit 7c0020e054dc5, this is no longer guaranteed, if the `auto` image ratio is chosen. Solution -------- Modify the centering logic to calculate the appropriate position based on the thumbnail currrent offset. As this requires the images to be loaded, we add `_updateCarousel` as an event listener on the last image, listening for the `load` event. opw-4937009
This fixes an intermittent failure in an automated test for signed document cleanup. The change adds a small time buffer so the cleanup check behaves consistently, reducing false test failures without changing customer-facing functionality.
Original PR description
Steps to reproduce
==================
Launch the test `test_gc_clear_bin` a few times
It will eventually fail:
documents.document(544,) is not false :
trash document should be deleted after gc_clear_bin
Cause of the issue
==================
The domain for wether a record should be deleted contains `('write_date', '<=', fields.Datetime.now() - relativedelta(days=deletion_delay)`
The tests fails when the write_date is in the same second as the test run.
This is because fields.Datetime.now() replaces microseconds by 0.
https://github.com/odoo/odoo/blob/14073faf1fa272b8d3411b4fe6f42c279058459d/odoo/fields.py#L2378
Solution
========
Since records needs to be at least "deletion_delay" old, we add a margin of 30 seconds to make sure they match
runbot-224207
Forward-Port-Of: odoo/enterprise#95926Updates the automated website page properties tour so it works with the redesigned page creation dialog. This helps keep website editing quality checks reliable after accessibility and layout changes.
Original PR description
Recent UI refactors in the page creation dialog broke the page_properties tour. In particular, [1] replaced the legacy tab markup with a WCAG-compliant tablist and adjusted focus management and tab activation logic. Combined with additional changes from [2] that modified the dialog's structure, this caused the tour to fail at several steps. This patch updates the tour selectors and interactions to align with the new accessible tablist and the revised DOM structure. [1]: https://github.com/odoo/odoo/commit/4defd0944656ac9f45ecc26f7d58bfe8184bd197 [2]: https://github.com/odoo/odoo/commit/7ca9b006fb50dfd37415fa184629edfed99575d5 runbot-233168
Users who are allowed to print and send SEPA direct debit mandates can now generate, email, and later access the related PDF attachments. This fixes a permission issue that blocked some authorized users from completing the mandate sending process.
Original PR description
Removing the groups restriction from the `mandate_pdf_file` field in model `sdd.mandate` because it was causing issues when using the `sdd.mandate.send` wizard. Any user who has access to the `sdd.mandate` model can use this wizard to print and send the record. During this process, the system generates a PDF and stores it in the `mandate_pdf_file` binary field, linking the resulting attachment to the record. The previous group restriction prevented users who were not part of the `account.group_account_readonly` group from sending the email with the attachment. Even if the email was somehow sent, those users still couldn’t access the attachments they themselves had generated and sent. With this change, any user who is allowed to send and print `sdd.mandate` records will also be able to generate and later access the corresponding attachments. Forward-Port-Of: odoo/enterprise#96119
The accounting dashboard colors have been adjusted so key elements remain clear and readable when dark mode is enabled. This improves usability for users who prefer or rely on dark mode, without changing accounting workflows.
Original PR description
This commit adjusts dashboard element colors to enhance readability in dark mode. task-5122380 | Before | After | |--------|--------| | <img width="665" height="336" alt="image"…
This commit adjusts dashboard element colors to enhance readability in dark mode. task-5122380 | Before | After | |--------|--------| | <img width="665" height="336" alt="image" src="https://github.com/user-attachments/assets/c3270f8d-bd3b-47a9-807f-ca4ca5c7e6c2" /> | <img width="632" height="317" alt="Capture d’écran 2025-09-30 à 14 48 22" src="https://github.com/user-attachments/assets/d0eb8ab1-6ff7-484f-aedb-b668ba337a43" /> | | <img width="1914" height="967" alt="image" src="https://github.com/user-attachments/assets/4d7b9c00-41b7-46a3-addb-4ec09cbbca85" /> | <img width="1916" height="922" alt="Capture d’écran 2025-09-30 à 14 48 59" src="https://github.com/user-attachments/assets/711375aa-5b01-4c81-b7ab-ba462fdbb0b6" /> | | <img width="1716" height="953" alt="image" src="https://github.com/user-attachments/assets/a023d555-3f92-433d-a07f-dc8bb1c2513c" /> | <img width="1640" height="803" alt="Capture d’écran 2025-09-30 à 14 50 07" src="https://github.com/user-attachments/assets/26ae7b94-222d-4527-87ad-68ed55b495d0" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website editors can now use the eye icon in the Invisible Elements panel to show or hide the page header or footer and have that choice saved as expected. This prevents confusion where a header or footer appeared visible while editing but became hidden again after saving.
Original PR description
With the initial [website builder refactor], clicking on the eye of the entry of the footer or the header in the "Invisible Elements" panel only temporarily changed their visibility. Additional clicks in the options were needed for their visibility to persist. This commit restores the previous behavior where clicking on the eye in the "Invisible Elements" panel for the header and the footer would also change the option. Steps to reproduce: - Open website builder - Click on the footer - Disable "Page Visibility" - Click on the eye next to "Footer" in the "Invisible Elements" panel - Save - Bug: the footer is invisible, but it was just before save [website builder refactor]: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641 Forward-Port-Of: odoo/odoo#227277
This update prevents the website editor from adding hidden spacing markers to icons in the wrong places. It helps avoid unexpected layout or editing issues in website snippets while preserving the intended behavior for normal text content.
Original PR description
Description of the issue this PR addresses: Commit [1] adds feffs around icons that were descendant of a paragraph-related elements. This caused an issue in some website snippets where icons inside a `div` (dropped within a `p`) also received FEFFs. Though such snippets should not be allowed inside a `p` since they are block-level elements, and this will be addressed separately. In the meantime, this commit ensures that FEFFs are only applied to icons that are direct children of paragraph-related or formatting tags. [1]: https://github.com/odoo/odoo/pull/225994#issue-3396940401 task-5071184 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225994
Manufacturing order overviews can now be opened even when no bill of materials is linked. This prevents an error for completed manufacturing orders and helps users review production details reliably.
Original PR description
Steps to reproduce: - Create a storable product “P1” - Create a manufacturing order to produce one unit of P1: - add any component - Mark the MO as done - Try to open the MO overview Issue: An error is raised because the MO has no BoM. But in the function we try to compute the missing quantity in the BoM's UoM, but since no BoM is linked, there is no UoM available. Error message: "The unit of measure Unit defined on the order line doesn't belong to the same category as the unit of measure %(product_unit)s defined on the product. Please correct the unit of measure defined on the order line or on the product. They should belong to the same category." Fix: Skip the computation of missing BoM quantities when no BoM is linked, allowing the MO overview to be opened without error. opw-5112132 Opw-5105544 Opw-5119897 Forward-Port-Of: odoo/odoo#229707
The spreadsheet screen now displays better on mobile devices. Long spreadsheet names are shortened neatly and the saved status stays on one line, making the navigation bar easier to read and use.
Original PR description
When opening the spreadsheet on mobile, the navbar was not well styled: - the spreadsheet name was not truncated with ellipsis - the "saved" status would take two lines (one line for the icon, one line for the text) Task: [4996784](https://www.odoo.com/odoo/2328/tasks/4996784)
This fix makes an internal messaging test read all notifications it receives instead of only the first one. It reduces random test failures and helps keep the messaging infrastructure validation stable without changing user-facing behavior.
Original PR description
This commit fixes the `test_postcommit` that fails in a non deterministic fashion. This test ensures bus notifications created in the post commit hook result in only one batch. However, the listener only consider the first notification of the batch (`conn.notifies.pop()`) and ignore the rest. When the expected notifications come as part of a bigger batch, they can be ignored thus making the test fail. This commit ensures we read every notification received. fixes runbot-233185 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 Forward-Port-Of: odoo/odoo#230117 Forward-Port-Of: odoo/odoo#230054
pot file was manually edited, resulting in invalid pot file. 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
Original PR description
pot file was manually edited, resulting in invalid pot file. 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