Friday, January 17, 2025
12 changes · 18.0
Enhancements to existing features
Discuss gets a cleaner, less distracting call interface with refined sidebar, header, member panel, and call status styling. Users can also join or leave ongoing calls faster from the sidebar and switch or hide call and chat views for a more flexible conversation layout.
Original PR description
Minor style improvements: - less start spacing on non-compact discuss sidebar items - discuss sidebar item outline style when self in call is improved (better lines, more visible) - discuss sidebar…
Minor style improvements: - less start spacing on non-compact discuss sidebar items - discuss sidebar item outline style when self in call is improved (better lines, more visible) - discuss sidebar item when there's a call is improved: outline color matches border, background colors are more pleasing, spacing of participants and icons feels more right - discuss app header buttons are less distracting (reduced opacity when not hovered, active color is more suble in dark theme) - member panel is narrower in width by default - member panel categories (online / offline) are smaller and reduced opacity, so that they are less distracting - hover effect on offline members is less intense (opacity on hover is reduced) - member names have slightly reduced opacity (was more catchy than messages with white color) - call status in systray is `.fa-volume-up.text-danger` rather than `text-warning` blinking dot. Also blinking animation duration is 6 seconds rather than infinite. New minor features: - can quickly join and leave conversation from discuss sidebar when there's an ongoing call: simply hover and click on the ongoing call icon (`.fa-volume-up`). Note that the feature is not available in compact mode, as this is too easy to misclick conversation and the call indicator. - can change layout of call/thread in discuss app: either vertically (default, same as before), or horizontal i.e. call view on left and textual conversation on right. - Call view and textual thread can be hidden while in call: there's a "X" in top-right corner of each view to close it. A dynamic thread action allow to add them back. Only call or thread can be closed simultaneously. TODO: - layout button should show a popover rather than plain click for clarity. - small layout issue when closing thread and showing vertical layout.
Mobile users can now select all records in a list, not just the records visible on the current page. The update also prevents selection controls from overlapping the pager and aligns the mobile experience more closely with desktop behavior.
Original PR description
Back-port of https://github.com/odoo/odoo/pull/189029/ Task-ID: 4314183
The Knowledge app now keeps its richer file upload experience when users insert files in content, including embedded file behavior rather than a simple static link box. File cards also have a more compact layout, making multiple attachments easier to view side by side.
Original PR description
This PR, alongside its community counterpart, changes the behavior of the /file command and its visual aspects. The new result of /file in html field is a static blue box with a link to a file attachment. In order to preserve the original behavior in Knowledge (editable file name, previewable file etc.), this PR makes sure the EmbeddedFile plugin is used instead, which modifies the /file command so that it renders the uploaded file as an embedded component. https://github.com/odoo/odoo/pull/189203 task-3522395
Ponto payment initiations now wait until the required identity verification is completed. This prevents the first payment attempt from failing because verification was started too late, improving reliability for users setting up online payments.
Original PR description
When a user create the first payment initiation with Ponto he need to do the KYC of Ponto. The issue is that today we initiate the payment and then start the process of KYC. Following that the first payment is always in error, because it was initiated before the KYC. In this commit, we create the payments only if the KYC is done. task-4476856
Resolved issues and error corrections
Connection warning messages are now shown only inside the Discuss app instead of appearing across the whole system. The alert styling was also toned down, reducing unnecessary distraction for everyday users while still keeping relevant communication users informed.
Original PR description
This is distracting for end users, restrict it to the discuss app. Also reduce its style so this feels less aggressive.
The Point of Sale product configurator now shows the correct quantity on hand when staff switch between product variants. This prevents misleading stock information during sales and helps users select products based on accurate availability.
Original PR description
Currently, for products with variants, the quantities on hand displayed in the product configurator can be incorrect. ### Steps to reproduce * Install `point_of_sale`. * Start the furniture shop POS…
Currently, for products with variants, the quantities on hand displayed in the product configurator can be incorrect. ### Steps to reproduce * Install `point_of_sale`. * Start the furniture shop POS session. * Click on the Conference Chair; the steel legs are selected by default, and the system displays quantities on hand as 30. * Switch to aluminum legs; the quantity remains 30. * Switch back to steel legs. You should see that the quantity on hand is now 26. This is the actual, correct quantity for steel legs. The originally displayed value of 30 was already incorrect for those legs. ### Cause The issue arises from how the product's quantities on hand are fetched and updated: - The `useEffect` hook is used to fetch quantities on hand whenever the product changes. - However, the function used to retrieve these quantities (`fetchStock`) is wrapped with `useTrackedAsync`, which internally utilizes `useAsyncLockedMethod`. - The `useAsyncLockedMethod` hook ensures that two calls to `fetchStock` cannot run simultaneously; if `fetchStock` is called while another call is still in progress, the subsequent call is ignored. This behavior causes the problem. In the product attribute component, the `useEffect` hook is triggered twice in rapid succession when switching attributes. Since the second `fetchStock` call happens before the first completes, it is discarded due to the locking mechanism. As a result, the product changes twice, but the stock fetching process is executed only once, causing a mismatch between the selected product variant and its displayed quantities on hand. ### Fix The `useTrackedAsync` utility was updated to allow specifying the locking mechanism. Specifically, it now supports an option to keep the last call instead of the first. This change ensures that even when multiple `fetchStock` calls are triggered in quick succession, the most recent call is executed, maintaining synchronization between the product variant and the displayed stock quantities. opw-4421070
Downloading an invoice from Point of Sale on iOS now opens in a separate tab, preventing the POS session from reloading when the popup is closed. This keeps staff on their current sales screen and avoids disrupting checkout flow.
Original PR description
When downloading an invoice from the POS on iOS the PoS would be reloaded after closing the download popup. Steps to reproduce: ------------------- * Open PoS on iOS * Make an order and invoice it > Observation: After closing the invoice you are back on the product screen Why the fix: ------------ We open the download invoice popup in a new tab so that the PoS is not reloaded after closing the popup. opw-4471713
This fix prevents users from incorrectly appearing offline when they are still active on another device. It improves presence accuracy in Odoo messaging by reacting to later status changes even if an earlier disconnect notification was missed.
Original PR description
When a user disconnects, a message is sent on the bus. If another device is active, he will correct the user status. However, it can happen that this message is lost. For instance, when the bus table is cleared while the user is disconnected. Other parts of the code will update the user status, but the status will never be corrected. This PR react to the user status changes to solve this issue. opw-4484966 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 prevents an error that could occur when users open certain linked sections inside Odoo forms, such as Timesheet settings. The form now checks links only within the form being prepared, making navigation more reliable and avoiding stale page references.
Original PR description
Before this commit, the form compiler did a search in the whole DOM, when compiling a form, to find anchors, for which the target node would be in the form being compiled. The point of this was to…
Before this commit, the form compiler did a search in the whole DOM, when compiling a form, to find anchors, for which the target node would be in the form being compiled. The point of this was to automatically open the notebook tab when an anchor is click for an element that is hidden in a non active tab. However, looking in the DOM makes no sense. It's very likely that the found element won't be there anymore when the view we compile will be put in the DOM, and moreover the compilation is done only once, so if we come back later on on the same form, we'll still use the information of the anchor we found the first time, which is ever less likely to be again in the DOM. This was actually a code mistake, as what we aimed to do was to find anchors **in the form**, pointing to elements hidden in the notebook, but definitely not **in the dom**. This mistake produces a crash: go to "Timesheet / Configuration / Settings" and try to open the "Internal" project in the time off section => traceback. This commit removes the look up in the document. The feature of automatically opening the tab already partially works, but we won't fix it, and we'll even drop it in master. opw~4457605 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
Customer portal return lists now only show actual customer returns linked to a sales order. This prevents supplier-to-company deliveries from appearing to customers, reducing confusion and avoiding exposure of irrelevant supply chain activity.
Original PR description
When cusomers access portal view, they are able to see deliveries/returns made for their sales order. Currently in the returns list, incoming deliveries are shown, without checking if it is a real return. This will show incoming deliveries from third party vendor that a customer should not see - Activate Route MTO - In Route Buy, open the first rule and set - Propagation of Procurement Group: Propagate - Create a product [TEST] with: - Product Type: Goods - Invoicing Policy: Ordered Quantities - [Purchase tab] Set a Vendor - [Inventory Tab] Routes Buy, MTO - Create a Sales Order with [TEST] - Confirm - Open the Purchase order and confirm it - Back to the SO, 2 deliveries are created - Open portal Issue: Under 'Returns' it is listed the delivery from the vendor to the company. opw-4420364
This fix makes the Kenya eTIMS unit of measure code visible where users set up units, so new units can be configured correctly. It also adds a clearer warning before items are sent to eTIMS when that required unit code is missing.
Original PR description
The problem right now is that if you use a new UoM, the related Kenya eTIMS code is not in the category view. Also, the error message you get, does not tell there is a problem with the UoM in itself as it is not checked before sending the item to eTIMS. So, we add the code in the UoM category view and provide a message when it is missing. opw-4395902
A bug was fixed that caused an error when users selected an existing order from the order list and tried to load it. This helps Point of Sale staff resume or review orders more reliably, reducing interruptions during service.
Original PR description
Before this commit, selecting an order from the order list and attempting to load it would result in an error. opw-4251717 X-original-commit: 2cd72396d9f96cd7770154c56355ec864e0926e9