Daily updates from Odoo
Tuesday, September 16, 2025
19 changes · 19.0
Enhancements to existing features
A menu entry for financial budgets has been brought back, but only when debug mode is enabled. This gives support and accounting teams an easier way to inspect or import budget records without cluttering the normal user interface.
Original PR description
This menuitem was removed with the idea to clean the view, but we now have second thoughts. Having a means to access a tree view of those objects is interesting for debugging purposes and in order to import them. We now put in debug mode only, though. Forward-Port-Of: odoo/enterprise#94155
Stock valuation accounts are now labeled more clearly based on the type of stock location. Inventory loss locations use “Inventory Variation” and production locations use “Cost of Production,” helping users better understand what each account represents.
Original PR description
With this commit: --------------------------------- - Renamed stock valuation accounts based on the location type. If the location type is 'Inventory Loss', the valuation account is set to 'Inventory Variation' and if the location type is 'Production', the valuation account is set to 'Cost of Production'. - This change improves clarity and helps users better understand the purpose of each valuation account. Backport of #226423, as the target should have been 19.0.
The work entry calendar now loads a user's favorite work entries together with the rest of the calendar data, instead of separately during screen rendering. This makes the calendar data flow cleaner and can help avoid timing issues when displaying favorite entries.
Original PR description
Fetch userFavoritesWorkEntries in onWillRender is not appropriate. We fetch that info along the calendar data when needed.
The Argentine localization now uses the new ARCA name instead of the former AFIP name across labels, messages, documentation text, and related electronic invoicing references. This keeps customer-facing wording aligned with the renamed fiscal authority and reduces confusion for Argentine businesses.
Original PR description
Purpose: - The fiscal institution changed its name to ARCA. - That's why we substitute 'AFIP' (Administración Federal de Ingresos Públicos) by 'ARCA' (Agencia de Recaudación y Control Aduanero) everywhere in AR localization task-4986899
Mexican CFDI electronic invoices are now generated using the same line-based total calculation method used by the SAT tax authority for validation. This reduces invoice rejection risk by automatically reconciling rounding or total differences through discounts where possible, or an adjustment line when needed.
Original PR description
Simplify the CFDI generation. Now the totals are always computed from the lines. That way, it's impossible for the SAT to refuse a CFDI since it's built in the way the SAT checks the validity of the file. The difference between the CFDI total and the original documents is put using the discount if available. If not, we add a fake line in the CFDI. task-id: 4926200 Forward-Port-Of: odoo/enterprise#94312 Forward-Port-Of: odoo/enterprise#90434
Updates the Argentine localization to use the new ARCA name instead of the former AFIP name across labels, data, documentation text, and examples. This keeps customer-facing tax terminology aligned with Argentina's renamed fiscal authority and reduces confusion for local users.
Original PR description
Purpose: - The fiscal institution changed its name to ARCA. - That's why we substitute 'AFIP' (Administración Federal de Ingresos Públicos) by 'ARCA' (Agencia de Recaudación y Control Aduanero) everywhere in AR localization task-4986899
Improved translations for Spanish Latin American language for some terms in MX localization task-4938338 target: 17.0 -> master Forward-Port-Of: odoo/enterprise#93967 Forward-Port-Of: odoo/enterprise#91875
Original PR description
Improved translations for Spanish Latin American language for some terms in MX localization task-4938338 target: 17.0 -> master Forward-Port-Of: odoo/enterprise#93967 Forward-Port-Of: odoo/enterprise#91875
The Discuss sidebar now shows the disconnect button with the same rounded call-control styling used for starting or joining calls. This makes call actions more visually consistent and easier for users to recognize.
Original PR description
Before this commit, "disconnect" discuss sidebar button had the same style as any usual danger action like "leave" / "unpin" conversation. The style is fine by itself, but the "join" / "start" call button has a special style compared to all other thread actions: this is a circled icon with success background color. This style is intended for all join/leave discuss actions, which is properly done for success actions and some danger ones like "disconnect" in call actions, but the thread action "disconnect" was missing it. This commit changes the style of "disconnect" thread action so that it matches the style of other join/leave call actions. Before <img width="467" height="198" alt="Screenshot 2025-09-15 at 17 05 51" src="https://github.com/user-attachments/assets/6a63266d-5760-41b0-b2dc-f63be143e40e" /> After <img width="475" height="179" alt="Screenshot 2025-09-15 at 16 52 09" src="https://github.com/user-attachments/assets/c75abb7d-ccff-44b4-9a9e-8686dcdf70f5" />
Mobile users will again see a subtle three-dot action button beside each message, making message options easier to discover without relying on long press. This improves usability on phones and tablets, especially where long press can be unreliable or trigger unwanted text selection.
Original PR description
This was removed when adding support for long press, as it feels unnecessary with long press feature. However there are still arguments to keep showing the "..." button: - it's not that obvious that…
This was removed when adding support for long press, as it feels unnecessary with long press feature. However there are still arguments to keep showing the "..." button: - it's not that obvious that action are triggered from long press, especially when this is a rare case it works in Odoo - long press experience is still not the best on some mobile device, e.g. iOS really wants to select text. Even though the whole message is not selectable to minimize the issue, it can still trigger selection of text somewhere else. - debugging mobile in responsive mode of browser requires long-press but this usually also lead to accidentally pressing the message action that is immediately shown in bottom sheet. - It looks weird for bubbles to go too much on the other end of the screen: avatars should be their own lane, no bubble should touch it. Having the "..." button is not wasted space as the bubble wouldn't really use it. This commit reintroduce "..." button shown in mobile next to all messages. Same as before: the opacity is fine-tuned to be visible but not distracting compared to message and their content. Before <img width="444" height="831" alt="Screenshot 2025-09-15 at 15 58 53" src="https://github.com/user-attachments/assets/a1ec6b0b-1ae2-4b30-abe5-e012e2d43d78" /> After <img width="442" height="830" alt="Screenshot 2025-09-15 at 15 57 52" src="https://github.com/user-attachments/assets/d4aa7e46-d7b8-4b5c-b59e-6b8146fd098b" />
Imported bank statement transactions now use the reconciliation rules linked to the journal's company. This helps payments and bank entries match more accurately during reconciliation, reducing manual work and mistakes.
Original PR description
This commit will apply the reconciliation model of the company of the journal so that imported transaction have the rights reco model applied. task-5092016
GST return reconciliation now matches draft and cancelled vendor bills more reliably when they have a valid invoice reference or IRN. This reduces missed matches during GST-2B reconciliation while keeping stricter checks for posted bills.
Original PR description
Before this PR: - `line_ids.tax_ids` filter was applied too early, excluding some valid draft/cancelled bills. - Bill reference and IRN checks were not consistently combined, leading to missed matches in reconciliation. - Posted bills could be incorrectly excluded when the reconciliation status was not considered properly. After this PR: - Refined domain grouping so `line_ids.tax_ids` and GST treatment checks only apply for posted bills. - Draft/cancelled bills are matched if they have a valid IRN or bill reference. - Posted bills require bill reference, tax, reconciliation status, and GST treatment checks for accurate matching. This ensures more reliable matching of draft bills with GST-2 B during the GST return period reconciliation. Forward-Port-Of: odoo/enterprise#94384
This update adds automated checks for event-related Point of Sale flows, including event selection, registration, and adding event products to an order. These tests help ensure event sales continue to work reliably as the system evolves, reducing the risk of regressions for businesses using POS events.
Original PR description
In this commit: ------------ - We are adding hoot test cases to verify that components return values according to the passed parameters for components like `event_configurator_popup`, `event_registration_popup`, and `event_slot_selection_popup`. - Also, we are adding a test for the `addProductToOrder` method available in the `product_screen` component to ensure the order line is added to the order seamlessly. - Then, we are adding a test for the `createDummyProductForEvents` method available in the `pos_store` service to verify that the products are created for all the loaded events in the POS. task-4945631 Forward-Port-Of: odoo/odoo#220734
The attendance work entry type now uses an updated color to make it easier to recognize in HR work entry views. This is a small visual improvement that helps users distinguish attendance entries more clearly.
Original PR description
Change the color of attendance work entry type task-5068597
The work entry planning view now shows duration totals more clearly and highlights rows when the duration differs from the expected value. This helps HR teams spot scheduling or attendance discrepancies faster before payroll processing.
Original PR description
Display duration if it's not the expected value Display the row duration sum in column and black if it's the expected value, or in warning task-5068597
Demo barcode values were refreshed across several Odoo sample datasets. This makes demo flows for sales, manufacturing, inventory scanning, and restaurant point of sale more realistic and consistent for evaluations and training.
Original PR description
*: product,sale{_stock},mrp,pos_restaurant,
mrp_workorder,stock_barcode
Revamp the barcodes of some products.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prDemo data now uses updated barcodes for products across manufacturing, sales, point of sale, and inventory workflows. This makes sample scenarios more consistent and realistic for demonstrations, testing, and training without changing live business operations.
Original PR description
*: product,sale{_stock},mrp,pos_restaurant,
mrp_workorder,stock_barcode
Revamp the barcodes of some products.Email marketing templates and mail composers no longer offer checklist insertion options. This prevents users from adding checklist formatting that does not display correctly in sent emails, helping keep customer-facing messages clear and reliable.
Original PR description
This task focuses on the following improvements: - removed /checklist command. - removed checkbox option from snippet options. - disabled checklist from toolbar items in mail composer. - removed checklist from power buttons in mail composer. - removed checklist from powerbox in mail composer. Task-3107481
Expense card views now look closer to real payment cards, making them easier for employees to recognize and use. The update also corrects how dark theme styling is applied so the card display remains consistent across themes.
Original PR description
This improves the kanban display to match more closely to the real one. In addition, it fixes the dark theme scss override being also loaded in the regular scss
Point of Sale users can now reopen configurable and combo products directly from an order line to adjust choices without starting over. Matching edited lines are merged automatically, pricing is handled correctly for combo items, and custom text values are kept after refresh, reducing checkout errors and duplicate lines.
Original PR description
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit…
Task: [#4890396](https://www.odoo.com/odoo/my-tasks/4890396) Community PR: [#221924](https://github.com/odoo/odoo/pull/221924) --- Improves the POS experience by allowing users to reopen and edit configurable and combo products directly from their orderlines. When a product is edited to match another existing line, the lines are automatically merged to avoid duplicates. - Introduced `useTimedPress` to support both click and long press interactions. - Reopening a configurator now pre-fills default attributes, custom values, and combo selections. - Removed click delay when selecting an orderline, improving responsiveness. - Extracted logic for configurator, combo choice, unit price computation, and orderline merging from `addProductToOrder` into dedicated functions (`tryMergeOrderline`, etc.) for reuse across the codebase. --- The Combo/Product Configurator popups no longer receive default values directly. Instead, they now work with the orderline passed as a prop. ** Combo Configurator Popup ** - Use `props.line.selectedComboIds` as the source for default values. - Save the initial `state.combo` so it can be restored on discard. - Add a **Discard** button in the popup footer. ** Product Configurator Popup ** - Use `props.line.selectedAttributes` for the default values. - If there is no orderline like new combo item, fall back to `props.comboItem?.saveStateAttributes`. - Save the initial `state.selectedAttributes` so it can be restored on discard. - Expose `selectedAttributes` on `pos.orderline` as a function so it can be recomputed at any time. ** Bug Fix: Price ** - Fixed a bug where updating a combo item directly from the Order Summary used the wrong price (ignoring the combo). - We now open the **Combo Configurator** instead of the **Product Configurator** when editing a combo item from the Order Summary. --- When refreshing the page, we also lose the `free text` of the `custom_attribute_value`. By adding the model `product.attribute.custom.value` to the `get databaseTable()` from `DataServiceOptions`, we ensure that the records are saved in IndexedDB Forward-Port-Of: odoo/odoo#227106 Forward-Port-Of: odoo/odoo#221924