Tuesday, September 9, 2025
48 changes · master
Resolved issues and error corrections
Analytic line amounts now use the company currency's rounding rules instead of the foreign currency's rounding. This prevents accounting analytics from showing overly rounded values when invoices or journal entries involve currencies with different precision settings.
Original PR description
Steps to reproduce: - set the rounding of a foreign currency to 1.0 - have you company currency's rounding to 0.01 - create a move with a line with an analytic distribution - post it - go to analytic line Issue: The amount will be displayed with a rounding of 1.0 and not 0.01 opw-4997047 Forward-Port-Of: odoo/odoo#225503
The website builder now shows the correct label for the color setting when certain hover animation effects are selected. This helps editors understand whether they are changing a general color or an overlay, reducing confusion while designing pages.
Original PR description
The commit 80b5db99a3c26c3dd4fb5c55e04b8813dddb5b8d brought the options for "on hover" animations into the new website builder. The label for the "Color" option used to change depending on the current effect, and this was lost in the new builder. This commit brings it back Steps to reproduce: - Open website builder - Add an animation "On Hover" (this can be done on images) - Set the "Effect" to "Zoom Out" - Bug: the label for the color is "Color" instead of "Overlay" task-4367641 Forward-Port-Of: odoo/odoo#225034
Opening a Discuss channel now correctly clears its unread indicator, even when another browser already marked it as read and a notification was missed. This prevents users from seeing stale unread messages and improves consistency across multiple browser sessions.
Original PR description
Before this commit, if you opened an unread channel that the server already considered “read,” the channel would remain marked as unread in your browser. This typically happens when one browser instance misses the bus notification that cleared the unread status. Steps to reproduce: 1. Open Discuss as the same user on two browsers (A and B) 2. Send a message to said user 3. Stop bus notifications on browser A 4. Read the message on browser B 5. Re-enable bus notification on browser A 6. Open the channel on browser A -> not being marked as read This happens because the method `_set_last_seen_message` skips sending the notification when the message seen is older than the current `seen_message_id` (previously set by the other browser). This commit fixes the issue by setting the `allow_order` parameter in the rpc call. task-4863058 Forward-Port-Of: odoo/odoo#225365 Forward-Port-Of: odoo/odoo#218623
This fixes an error that could occur when customers edited their billing address during ecommerce checkout for Argentinian companies. The checkout form now keeps the required Argentina tax responsibility information available in the background when it cannot be edited, preventing failed address updates.
Original PR description
Scenario: - setup company with Argentina L10N - do a sale order from partner to Argentinian company and confirm it (to make the vat not editable) - do a checkout from ecommerce from same partner to same company, and at the checkout "address" step, click to edit the billing address - click to confirm the billing address change Result: a "Cannot read properties of undefined (reading 'classList')" error happen in customerAddress._onSaveAddress because the field l10n_ar_afip_responsibility_type_id is missing from the view. Solution: similarly to c10e77ac636243025004d9ebca61af0076691f2b, add the field as hidden if it is readonly. opw-5019253 Forward-Port-Of: odoo/odoo#225579
A payroll-related HR test was updated so it correctly allows a Hong Kong MPF account field to remain visible to HR users. This prevents a false test failure without changing employee access rules or restricting the field unnecessarily.
Original PR description
Issue: test_payroll_fields_are_hidden_to_non_payroll_users_in_employee_form_view test case fails due to the missing payroll user group on the field. Reason: The l10n_hk_mpf_manulife_account field uses group_hr_user because it should remain visible to HR users. Using group_payroll_user instead would restrict access unnecessarily. Fix: Added `l10n_hk_mpf_manulife_account` field to whitelist_field_names list in the test. This ensures the test passes without enforcing payroll only restriction. build error: 231295 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mega-menu links in the website editor can now be dragged and rearranged even when the online sales app is not installed. This fixes an inconsistent editing experience and helps website managers update navigation menus without needing an unrelated app.
Original PR description
Before this commit, mega-menus links were draggable only if `website_sale` was installed. This happened because the `dropzone_selector` resource was defined in the `WebsiteSaleMegaMenuOptionPlugin` instead of`MegaMenuOptionPlugin`. This commit moves the `dropzone_selector` resource to `MegaMenuOptionPlugin`, making mega-menus links always draggable, regardless of `website_sale`. How to reproduce the problem: 1. Start Odoo on a database without `website_sale` installed 2. Create a mega-menu (click on navbar element -> Edit Menu -> Create a Mega Menu Item) 3. Open the mega-menu 4. Click on a link in the mega-menu 5. PROBLEM: The link is not draggable (only the column is) 6. Install the `website_sale` app 7. The links are now draggable Task-4367641 Forward-Port-Of: odoo/odoo#224494
The Discuss welcome screen now uses one consistent source to decide when it should appear. This prevents inconsistent behavior caused by page or component loading timing, making the public Discuss experience more reliable for users.
Original PR description
Before this commit, whether to display the welcome view was based on a component state, so it was dependent on the lifecycle of components This commit makes the welcome page display condition a single store variable, which should prevent any lifecycle related inconsistency. https://runbot.odoo.com/odoo/error/111051 related to: https://github.com/odoo/odoo/pull/225325
Users scheduling an activity for someone else must now link it to a specific record. This prevents an access error and makes the activity creation process clearer and more reliable.
Original PR description
An `AccessError` occurs when a user tries to schedule an activity assigned to another internal user without linking it to a record. **Steps to reproduce**: 1) Install a module 2) Click on the `View…
An `AccessError` occurs when a user tries to schedule an activity assigned to another internal user without linking it to a record. **Steps to reproduce**: 1) Install a module 2) Click on the `View all activities` from activities (Top right corner) 3) Create a new activity without setting a "Link to" record, and assign it to another user. **Issue**: An AccessError will be raised. **Cause**: When the activity has no res_model, the `_action_schedule_activities_personal` method is triggered: https://github.com/odoo/odoo/blob/8e1e4f68763af141c97647fd3e3a2d3a64654a13/addons/mail/wizard/mail_activity_schedule.py#L400-L402 https://github.com/odoo/odoo/blob/8e1e4f68763af141c97647fd3e3a2d3a64654a13/addons/mail/wizard/mail_activity_schedule.py#L415-L424 In this method, both `res_id` and `res_model_id` are passing False, and since `activity_user_id` is not the current user, this leads to an `AccessError` when trying to create the activity. **Solution**: Make res_model required when the assigned user (activity_user_id) is not the current user. opw-5032100 Forward-Port-Of: odoo/odoo#225747 Forward-Port-Of: odoo/odoo#224565
This fixes how Redsys payment references are generated so they remain unique within Redsys' required format. It reduces the risk of duplicate references over time, helping avoid payment processing issues for businesses using Redsys.
Original PR description
Description of the issue/feature this PR addresses: Redsys requires the reference to be unique and within 9 and 12 alphanumeric characters. The previous approach of truncating now (datetime) up to the month (10 characters + 2 for handling collisions) would lead to an increase of collision risk year after year (as months repeat every year). Using the timestamp value of now allows us to save the year information within 10 characters. Related: https://github.com/odoo/odoo/pull/205135
Fixed an issue that caused debug-mode error popups when users clicked selection field values while translating website pages. This makes the website translation workflow smoother and avoids confusing technical warnings for editors.
Original PR description
**PROBLEM** In debug mode, props type errors pop up when clicking on a selection field to translate it. **STEP TO REPRODUCE** 1. Create a form with a selection field in a page. 2. Ensure you're in debug mode assets. 3. Go in translate mode, and click on a string of the selection field to translate it. 4. Props type error should pop up. **CAUSE** `node` is actually of type `Object` (its the target of a jquery event), the props validations expect it to be of type `String`. opw-4896491 Forward-Port-Of: odoo/odoo#221876
The shop and wishlist pages now correctly show the compare option in the condensed product list layout. This prevents missing placeholders and keeps product tiles visually aligned for shoppers.
Original PR description
This PR fixes an issue about the visibility of the `add_to_compare` placeholder not being defined within the CSS selector. As the add to compare button has two different names depending on whether you are on the shop or wishlist page, we need to add both classes to the selector. With this commit, we restore the visibility in this newly introduced layout and ensure everything is aligned. task-5070741 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Installing Website Sale Slides no longer fails if the default Services product category was previously deleted. This prevents an installation-blocking error and allows businesses to add course sales features even after customizing product categories.
Original PR description
Currently a `ParseError` arises when the user installs the modules after deleting the `Service` Category in Sales. **Steps to produce:-** - Install `Sales` module (without demo data). - Go to `Sales…
Currently a `ParseError` arises when the user installs the modules after deleting the `Service` Category in Sales.
**Steps to produce:-**
- Install `Sales` module (without demo data).
- Go to `Sales > Configuration > Products > Categories`.
- Delete `Services` category.
- Try to install `website_sale_slides` module.
**Error:-**
```py
ValueError: External ID not found in the system: product.product_category_services
ParseError: while parsing /home/odoo/src/odoo/saas-18.4/addons/website_sale_slides/data/product_data.xml:2, somewhere inside <record id='default_product_course' model='product.product'>
<field name='name'>Course Access</field>
<field name='standard_price'>99.99</field>
<field name='list_price'>99.99</field>
<field name='type'>service</field>
<field name='service_tracking'>course</field>
<field name='invoice_policy'>order</field>
<field name='is_published' eval='True'/>
<field name='image_1920' type='base64' file='website_sale_slides/static/img/default_course_product.jpg'/>
<field name='categ_id' ref='product.product_category_services'/>
</record>
```
- The error occurs because the user deleted the category, and then installed the modules, that reference the missing product category.
- This commit resolves the error by providing a False value for the field if the product category is missing.
**sentry-6823596992**
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#225745
Forward-Port-Of: odoo/odoo#223669This update corrects how invoice line sections and subsections are linked when line order changes. It helps ensure invoices display their grouped content correctly and consistently after edits or resequencing.
Original PR description
Fix the computation of parent_id on account move line. Now we put the dependency to `move_id.invoice_line_ids.sequence` so we recompute the whole lines to be sure to have the good sequence values. task-4966574
Creating multiple section or subsection lines in accounting no longer causes an error when the first line is left unnamed. This keeps users from hitting a traceback during routine document editing and makes the new section widget more reliable.
Original PR description
With the new section widget, you are now able to create section and subsection lines. But there is an issue when you create multiple lines. Step to reproduce: - Create a section or a subsection line - Create directly another section or subsection line, without adding a name on the first line - You will have a traceback This is because the first line is removed from the record list in the JS just before adding the new line, which lead to and undefined record. Fix this behaviour by keeping the record in the list. task-4966574
This fixes an issue that could block website views from being activated because of an incorrect validation error. It helps website administrators apply page or theme changes more reliably without unnecessary interruptions.
Original PR description
WIP --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes where withholding tax is applied so it matches the related tax tags after a previous accounting change. The update helps keep withholding tax calculations and reporting consistent for affected accounting flows.
Original PR description
The commit removing the tax tag signs changed on which line the tags are applied but it should have also changed on which line the tax is applied for consistency. See b6bbc31f7464b0fdae6a83122b42b99cd7fca1cf
The point of sale test process was adjusted to avoid failures caused by checking cash closing information before it had loaded on screen. This makes automated validation more reliable without changing how users operate the system.
Original PR description
Issue: =================== - Tour `CashClosingDetails` and `test_cash_payments_should_reflect_on_next_opening` failed at the last step when checking `last_session_closing_cash` via UI before it loaded. Fix: ====== - Removed `lastClosingCashIs` from the tour and added a backend assertion in Python. Runbot Error: 231459
The ecommerce product page now hides the Buy Now button when sales of zero-priced products are blocked. This avoids showing customers an action that cannot be completed and keeps the purchase experience consistent with the Add to Cart button.
Original PR description
**Steps to reproduce:** 1. Install the `Ecommerce` module. 2. Enable the following settings: * `Settings → Website → Shop - Checkout Process → Buy Now` * `Settings → Website → Shop - Products → Prevent Sale of Zero-Priced Product` 3. Create a product with a selling price of `0`. 4. Open the product page on the website. **Observed behavior:** - Even with `Prevent Sale of Zero-Priced Product` enabled, the `Buy Now` button remains visible on the product page, but clicking it does nothing. **Root cause:** - In `saas-18.4`, there was no condition controlling the visibility of the `Buy Now` button based on the `Prevent Sale of Zero-Priced Product` setting. **Solution:** - Added the `Buy Now` button inside `add_to_cart_wrap` so that it behaves consistently with the `Add to Cart` button which is hidden when the `Prevent Sale of Zero-Priced Products` setting is enabled. opw-4984680 Forward-Port-Of: odoo/odoo#222453
This fixes inconsistent heading sizes in the live chat information panel so all sections, including website-specific details and tags, use the same visual style. The change improves readability and gives users a more polished, consistent live chat interface.
Original PR description
https://github.com/odoo/odoo/pull/224553 changed titles from `h3` to `h6`, but forgot to take into account the `extra_infos` which are panel items that are specific to `website_livechat` module. Also makes the "Tags" style consistent with others, also with `h6`. Before <img width="296" height="462" alt="Screenshot 2025-09-08 at 11 55 03" src="https://github.com/user-attachments/assets/772597ba-9ec0-43f7-bc1a-c72626bf51f4" /> After <img width="304" height="474" alt="Screenshot 2025-09-08 at 11 53 00" src="https://github.com/user-attachments/assets/4ac83718-2ba5-430c-b711-a970a33d5c02" />
Fixes a display issue where ended live chats could appear without their name in the Discuss sidebar. This makes it easier for users to identify past conversations while keeping live chat status indicators clear in chat bubbles.
Original PR description
Before this commit, when a live chat has ended, its name was not visible in the discuss sidebar. This comes from live chat status whose background color and icon share same absolute positioned node.…
Before this commit, when a live chat has ended, its name was not visible in the discuss sidebar. This comes from live chat status whose background color and icon share same absolute positioned node. Background color was added by https://github.com/odoo/odoo/pull/224553 while removing the icons, but the icons were added back by https://github.com/odoo/odoo/pull/225145 because of accessibility concerns for colorblind users. Last PR above added white background to properly see live chat status when floating, i.e. in chat bubble. However it forgot that bg color in discuss sidebar also uses absolute positioning so this affected ended live chats. Other live chat status were not affected because the background color uses opacity. This commit fixes the issue with `o-livechat-LivechatStatusLabel-Sidebar` being specific to discuss sidebar, so that its style is not affecting chat bubbles, and also the style for icon bg takes `--bg-opacity` into account, such as the one in discuss sidebar. That way the name is visible in discuss sidebar while the live chat status icon is clearly visible in chat bubble. Before / After <img width="304" height="223" alt="Screenshot 2025-09-08 at 16 59 09" src="https://github.com/user-attachments/assets/c2643a57-553e-497b-b5d5-148b1fb2deec" /> <img width="304" height="218" alt="Screenshot 2025-09-08 at 16 58 39" src="https://github.com/user-attachments/assets/a769def1-ff44-4214-aaa4-e61896ef4d74" />
Fixes a Website menu display issue where submenus could become invisible when using a dark sidebar header. Submenu colors now adapt to the selected theme, making navigation items readable for website editors and visitors.
Original PR description
Steps to reproduce: - Install the "Website" app. - Go to the homepage. - Click on "Site > Menu Editor" in the backend navbar. - Create a submenu. - Save the dialog. - Enter edit mode. - Click on the header. - Choose a dark background in the header options. - Choose the "Sidebar" template in the header options. - Open the submenu. - Bug: The submenu is not visible because the background and text have the same light color, so nothing can be seen. The bug was introduced by commit [1], which made visual improvements to the menu. This commit fixes it by making sure the colors of the problematic elements adapt to the theme colors. [1]: https://github.com/odoo/odoo/commit/dc1a15539227c4c21837a7bce3fc4d81858d60b9 opw-5043010 Forward-Port-Of: odoo/odoo#224610
This fix makes error messages from image generation readable when wkhtmltoimage fails. It helps administrators and support teams diagnose report or image rendering problems faster without changing normal user workflows.
Original PR description
Description of the issue/feature this PR addresses: Currently wkhtmltoimage was called without encoding specified, unlike wkhtmltopdf. This result in result.stderr being returned as bytes rather than…
Description of the issue/feature this PR addresses: Currently wkhtmltoimage was called without encoding specified, unlike wkhtmltopdf. This result in result.stderr being returned as bytes rather than str. Current behavior before PR: When ther is any error during wkhtmltoimage call, the error message is not readable like this: 2025-09-06 13:12:36,985 17760 WARNING odoo_insights odoo.addons.base.models.ir_actions_report: Wkhtmltoimage failed (error code: 1). Message: 69, 120, 105, 116, 32, 119, 105, 116, 104, 32, 99, 111, 100, 101, 32, 49, 32, 100, 117, 101, 32, 116, 111, 32, 110, 101, 116, 119, 111, 114, 107, 32, 101, 114, 114, 111, 114, 58, 32, 67, 111, 110, 116, 101, 110, 116, 65, 99, 99, 101, 115, 115, 68, 101, 110, 105, 101, 100, 13, and 10 Desired behavior after PR is merged: After encoding specified, the error message is readable 2025-09-06 13:11:52,587 15780 WARNING odoo_insights odoo.addons.base.models.ir_actions_report: Wkhtmltoimage failed (error code: 1). Message: Exit with code 1 due to network error: ContentAccessDenied --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where dragging columns in mass mailing content could incorrectly activate website grid editing mode. The change keeps grid layout controls limited to the website builder, preventing a broken editing experience in mass mailing.
Original PR description
Steps to reproduce: - In mass_mailing, drop the "Text - Image" snippet. - Drag a column. => The grid mode is toggled and does not work. It should not. This happens because the `hasGridLayoutOption`…
Steps to reproduce: - In mass_mailing, drop the "Text - Image" snippet. - Drag a column. => The grid mode is toggled and does not work. It should not. This happens because the `hasGridLayoutOption` check allowing to toggle the grid mode on drag passes in mass_mailing, where it should not, since it is supposed to be limited to website. Indeed, with the refactoring (see [1]), this check became hackish and less robust than before: it now only checks if the `LayoutOption` selector matches, while it was checking if this option was really present in the right panel before. This option being limited to website, it was automatically excluding mass_mailing. This commit fixes this check by making it similar to how it was before, so by reimplementing the old `user_value_widget_request` event and using it to see if `LayoutOption` is active. More precisely, the `findOption` shared function was added in the `builderOptions` plugin, allowing to check if a given option is currently active, i.e. it is in the current option containers. Doing this also allows to move the option selector back to its option plugin, instead of importing it, which was not good and confusing (it was moved there when splitting the files for the merge of [1]). [1]: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641 task-4247642
Users can now enter an ampersand character in filter values without causing the search or filter screen to crash. This prevents interruptions when creating custom filters and keeps special characters from being mistaken for filter logic.
Original PR description
Example of steps: - Open any domain selector with an archive checkbox (via custom filter for example) - Try to add char `&` in value input - focus out or try to apply the filter - Traceback ``` UncaughtPromiseError > OwlError Uncaught Promise > The following error occurred in onWillUpdateProps: "Cannot read properties of undefined (reading 'filter')" ``` The problem comes from the fact that we expect to have multiple nodes in our domain if we have an `&` as a value. However, there is a difference between using `&` in a text search for example (type `condition`), and using `&` as an AND between two nodes (type `connector`). The solution is to restrict the condition so that it not only checks that the value is equal to `&`, but also checks that the tree type is indeed a connector and not a condition. opw-5015281 Forward-Port-Of: odoo/odoo#224842 Forward-Port-Of: odoo/odoo#224567
This update prevents an error when Saudi e-invoicing processes address details linked to bank records. It ensures the system uses the right source for address information, reducing failed invoice processing for affected records.
Original PR description
Issue: Prior to this commit, when the model was res.bank, some fields were not defined on that model, which resulted in a traceback. Fix: Define the way to retrieve the data based on the model. opw-5013477 Forward-Port-Of: odoo/odoo#224448
A previously disabled website animation test has been re-enabled after improving how it waits for page update completion. This helps reduce unreliable test failures and supports more stable quality checks for website editing features.
Original PR description
The test was disabled in f540b0f342d46592099b0d515df1da91fa716a9f because of non-deterministic failures This commit fixes by waiting for the dom state updated signal *after* the operation is over. task-4367641 Forward-Port-Of: odoo/odoo#225850
This fixes an issue where tasks created from a project template did not receive the correct project roles. Businesses using project templates can now rely on role assignments being carried over properly, reducing manual corrections after project creation.
Original PR description
Prior to this commit, when a new project is created from a project template, the project_roles are not correctly set on the tasks. Adding a store=True to the field ensures that the data are correctly computed 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
Website managers will now receive Google Merchant Center product feed limit warnings at most once per week instead of potentially every day. This reduces notification overload while still keeping teams informed when a feed contains too many products.
Original PR description
This commit addresses an issue where the website manager could be overwhelmed by excessive GMC feed warnings when too many products are included in the feed. Previously, a warning message was sent to the product manager every time the feed was rendered (at most once a day) if the number of products exceeded a certain limit, potentially leading to spam. With this fix, the warning message will now be sent at most once a week. Additionally, leftover TODO comments from a rushed merge have been removed.
A payroll-related test was updated so it no longer incorrectly treats the non-resident status field as payroll-only. This keeps HR access expectations accurate while preventing unnecessary test failures.
Original PR description
**Issue:** The payroll access test test_payroll_fields_are_hidden_to_non_payroll_users_in_employee_form_view failed because the field 'is_non_resident' was reported as missing the payroll group restriction. **Reason:** The 'is_non_resident' field is not strictly payroll-related — it is also present in the Personal Information tab. Applying payroll group restrictions would hide it from HR users who still need access. **Fix:** Added 'is_non_resident' to the whitelist_field_names list in _test_payroll_fields_are_hidden_to_non_payroll_users. This ensures the test passes without incorrectly enforcing payroll-only restrictions on this field. Coming from https://github.com/odoo/odoo/pull/225139 build_error-231304 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where company names entered for event ticket attendees in Point of Sale were not saved to the resulting event registration. This ensures registration records accurately keep company information collected during POS ticket sales.
Original PR description
Steps to reproduce: 1. Add a question to an event with type 'Company'. 2. Sell a ticket for that event in a POS, making sure to fill in the company question. 3. Validate the sale 4. In the backend, check the new event registration that was created. EXPECTED: The company name you filled in is saved to the registration. ACTUAL: The company name is blank. There were three things that needed to be fixed in order for the company name to work: 1. Use `company_name` instead of `company` on the JS side 2. Add `company_name` to the list of loaded POS fields 3. Tell the POS that `company_name` is not computed (this was already being done for name, email, phone) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225699 Forward-Port-Of: odoo/odoo#225534
This fixes a crash that could happen when checking the follow-up status of an invoice that has no invoice lines. Users can now link or inspect such journal entries from Documents without being interrupted by an error.
Original PR description
As soon as you try to get the no_followup status on an invoice without lines, you will get the traceback. To reproduce: Create an invoice without invoice lines. Go on Documents Select a document Click on info & tags at the top right On the right, No linked model, select Journal Entry => Traceback no-task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix adds a log warning when automated bank statement reconciliation is configured in a way that ignores the expected time limit. It helps administrators spot a setup that could otherwise make large bank statement imports run longer than expected.
Original PR description
When calling `_cron_try_auto_reconcile_statement_lines` with a limit_time argument but without a `batch_size`, the time limit was silently ignored. With this commit, we display a warning in the logs, because this is probably not the desired behavior. Besides that, when the amount of statement lines become large, it might hang the import of bank statements longer than the expected 3 minutes. Task-id: None Forward-Port-Of: odoo/enterprise#93565
The payslip screen now guides payroll users through the correct next step by hiding the Confirm button until the payslip has been computed. This reduces confusion and helps prevent users from trying to confirm a payslip before it is ready.
Original PR description
- On a new payslip: the confirm button is invisible, and the compute sheet button is highlighted. - After computation: the confirm button becomes visible and highlighted, while the compute sheet button remains but is secondary. task-5068067
The attachment picker used from the message composer now hides shortcut actions that were not relevant in this context. This makes adding Documents files as attachments clearer and avoids confusing options for users.
Original PR description
With the commit (7683daa8a66ee60e689acf61c3d68918df181551) we forgot to adapt the view called by the composer to add attachments from the documents module. We could see the actions used as shortcuts which is not useful here. Task-5071931
The Master Production Schedule edit popup now closes automatically when a user opens a Bill of Materials from it. This prevents a confusing leftover popup and avoids an error when users try to cancel it afterward.
Original PR description
Before this commit: ------------------------- Clicking the BOM field in the edit production schedule pop-up on the MPS page redirected the user to the BOM form view, but the pop-up remained open in…
Before this commit: ------------------------- Clicking the BOM field in the edit production schedule pop-up on the MPS page redirected the user to the BOM form view, but the pop-up remained open in the background. If the user then clicked Cancel on the pop-up, it created a traceback error. Steps to reproduce: ------------------------- 1. Install 'mrp_mps' module. 2. Go to Planning → Master Production Schedule. 3. Click the pencil icon next to a product. 4. In the pop-up, click the BOM value to navigate to the BOM. 5. Notice that the pop-up stays open even after redirection, and closing the pop-up raises a traceback error. Cause of the issue ------------------------- When your onClose arrow function directly executes this.reload(productionScheduleId) without curly braces, it immediately hands over the outcome of that function call to the dialog system. Since this.reload is an asynchronous operation with multiple sequential return values, its immediate outcome may not be a final value. After this commit: ----------------------- The pop-up is automatically closed when navigating to the BOM form view from the BOM field in the Edit Production Schedule popup, ensuring a cleaner and more intuitive user experience. Task Id: 4886331 Forward-Port-Of: odoo/enterprise#90424
This fixes an internal naming mismatch in the VoIP calling feature so it uses the current call session reference consistently. The change helps prevent call handling issues caused by outdated references, with no expected change to normal user workflows.
Original PR description
This commit renames the missing values of `userAgent.session` to be `userAgent.activeSession`. This change was introduced in https://github.com/odoo/enterprise/pull/92315
The Belgian POS certification module now installs without triggering an error. This prevents setup interruptions for businesses enabling Belgian point-of-sale compliance features.
Original PR description
Since this PR (https://github.com/odoo/odoo/pull/215789) there was a traceback on the installation of `pos_blackbox_be` module. task-id: 5073028
Uploading PDFs in the Sign app no longer triggers a confusing error message when debug mode is enabled. This removes unnecessary disruption for users while keeping the upload process working as expected.
Original PR description
Version: - saas-18.5 Steps to reproduce: - Switch to debug mode - Open sign app - Upload any document Before: - The PDF was uploaded successfully, but a traceback appeared in debug mode. - This happened because `referenceDoc` and `activityId` props were set to false (boolean), which is not valid for their types (String and Number). After: - PDFs can be uploaded without any traceback. - Instead of passing false, we now pass undefined, which is valid since the props are optional. Impact: - Users will no longer see confusing tracebacks when uploading PDFs in debug mode.
Changing the template in the Signature Request wizard could fail when the template included fields without a matching signer. This fix prevents the crash so users can continue preparing signature requests smoothly.
Original PR description
version - saas-18.5 Steps to reproduce: 1. install sign module. 2. upload pdf without signature item 3. Open the Signature Request wizard from another app. 4. change the template. 5. traceback occurs. Issue: - In `_compute_only_autofill_readonly`, the code tried to get a user from `role_to_user_map` without checking if it exists. This caused a traceback when a template had items without a matching signer. Solution: - Use `role_to_user_map.get(item.responsible_id.id)` to safely get the user, avoiding the traceback.
This update fixes a compatibility problem that could affect how HR work entries are sorted in newer Python versions. It helps keep work entry processing reliable and prevents errors caused by inconsistent ordering behavior.
Original PR description
Issue with python 3.10 for `sorted` Fixed with a lambda
Fixed an issue that prevented virtual expense cards from being created when the system expected shipping details that virtual cards do not have. This avoids an error during card creation and helps employees or administrators issue virtual cards smoothly.
Original PR description
We were looking for shipping on virtual cards which dont have it this created a traceback.
The website appointment editor now correctly applies the guest invitation setting. This prevents businesses from accidentally enabling or disabling guest attendance when editing appointment types.
Original PR description
Since https://github.com/odoo/enterprise/commit/689a2186fbe3b932b90bef3b64716c8443bad551, The website editor option for allow_guests has an inverted behavior, being toggled when it should not and vice versa. This is only due to a small inversion of values when refactoring the website builder code. Inverse the values when the option is on/off to match expected behavior. Task-4930982 Forward-Port-Of: odoo/enterprise#89938
The bank reconciliation screen has been adjusted to fix visual issues introduced by a previous update. These changes improve readability in dark mode, simplify the statement review button styling, and make the mobile layout more compact.
Original PR description
In commit[1] we introduced a fine tune for the reconciliation widget and missed some issues. - Remove darkmode custom values - Review statement button to simplify styling - Remove kanban record spacing on mobile task-5075635 followup of task-4749379 [1]: odoo/enterprise@f9725d7b01cbd1235f022821a6861adb2955e49
The report editor no longer shows an unnecessary Label option when users insert a one-to-many or many-to-many table. This reduces confusion because table columns now simply use the selected field name as intended.
Original PR description
… X2M table Click on the powerbox item that opens the popover to insert a x2many table. Before this commit, the popover displayed the "Label" of the field (that is, in the case of a scalar or m2o field) In a table this label is irrelevant. After this commit, we hide the "Label" of the popover, the column takes the name of the field. task-5017334
A Hong Kong payroll employee field now follows the same access rules as other payroll information. This prevents non-payroll HR users from seeing payroll-related details and keeps internal payroll checks passing.
Original PR description
Issue: test_payroll_fields_are_hidden_to_non_payroll_users_in_employee_form_view this test case fail. Reason: The field l10n_hk_mpf_manulife_account only assigned to hr.group_hr_user. So according to test case condition, fields under Payroll tab should belong to payroll user. Fix: Updated the group and restricted with (hr_payroll.group_hr_payroll_user) runbot_error: https://runbot.odoo.com/odoo/runbot.build.error/231295
This fix makes employee document subfolder configuration handle comma-separated folder names with extra spaces correctly. It helps prevent unintended folder names or setup issues when HR document folders are created from configured lists.
Original PR description
Task-5071835
Schedule items in the work entries Gantt view can now be interacted with to display their popover details. This makes it easier for HR users to quickly inspect work entry information without leaving the planning view.
Original PR description
Pill interaction is needed to show the popover
This update skips two automated checks when the full accounting setup is not installed. It prevents false test failures in environments where payments are already created with accounting entries, helping keep validation results reliable.
Original PR description
The aim of this commit is skipping 2 newly added tests from this commit [[1]]. These 2 tests are useful when accountant module is installed because payments are, per default, created without entry in this setup. Without this module, payments are created with an entry and then don't need to be checked. runbot-error-231650 runbot-error-231651 [1]: https://github.com/odoo/enterprise/commit/7c36a5f405a0426bf11eca0e5a8a6cf6a416076c