Daily updates from Odoo
Friday, January 2, 2026
39 changes · master
New functionality added to Odoo
This update adds a new 'Inbox' tab to the messaging menu, providing a central location to view all notifications – both read and unread – if the user prefers to handle them within Odoo. The tab uses lazy loading to efficiently display notifications as the user scrolls, improving performance and usability. This simplifies notification management for users.
Original PR description
**Current behavior before PR:** The messaging menu does not include a tab to view notifications that have already been read. Once read, these notifications disappear from the interface and are only accessible through the Discuss App. **Desired behavior after PR is merged:** A new Inbox tab is added to the messaging menu. This tab displays both unread and read notifications, provided the user’s notification preference is set to “Handle in Odoo.” The Inbox tab uses lazy loading to fetch messages in batches as the user scrolls. task-[4458377](https://www.odoo.com/odoo/project/1519/tasks/4458377) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adds a dependency on the 'certificate' module for the `l10n_es_edi_verifactu` module. This change was necessary due to a restructuring of the underlying data model within Odoo. While you can still uninstall the 'certificate' module, doing so will cause issues with the `l10n_es_edi_verifactu` module.
Original PR description
Starting from version `18.0`, the module `l10n_es_edi_verifactu` is dependent to `certificate` because of moving the model `l10n_es_edi_verifactu.certificate` into standard model…
Starting from version `18.0`, the module `l10n_es_edi_verifactu` is dependent to `certificate` because of moving the model `l10n_es_edi_verifactu.certificate` into standard model `certificate.certificate`[^1].
On the other side when we install the module `l10n_es_edi_verifactu` then the `certificate` is beiung installed because:
1. (dependency)[^2] --> l10n_es
2. (auto install)[^3] --> l10n_es_edi_facturae
3. (dependency)[^4] --> certificate
But we can uninstall the `certificate` while having `l10n_es_edi_verifactu`. It will make the db unusable with this traceback if we uninstall `certificate`:
```
Traceback (most recent call last):
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/serving.py", line 319, in run_wsgi
execute(self.server.app)
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/serving.py", line 316, in execute
application_iter.close() # type: ignore
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/wsgi.py", line 466, in close
callback()
File "/home/odoo/.local/lib/python3.10/site-packages/werkzeug/wrappers/response.py", line 439, in close
func()
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 916, in <lambda>
response.call_on_close(lambda: cls._serve_forever(
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 1030, in _serve_forever
for message in websocket.get_messages():
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 322, in get_messages
self._handle_transport_error(exc)
File "/home/odoo/src/odoo/18.0/addons/bus/websocket.py", line 625, in _handle_transport_error
registry = Registry(self._session.db)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 108, in __new__
return cls.new(db_name)
File "<decorator-gen-13>", line 2, in new
File "/home/odoo/src/odoo/18.0/odoo/tools/func.py", line 97, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 129, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 485, in load_modules
processed_modules += load_marked_modules(env, graph,
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 365, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/18.0/odoo/modules/loading.py", line 195, in load_module_graph
model_names = registry.load(env.cr, package)
File "/home/odoo/src/odoo/18.0/odoo/modules/registry.py", line 302, in load
model = cls._build_model(self, cr)
File "/home/odoo/src/odoo/18.0/odoo/models.py", line 736, in _build_model
raise TypeError("Model %r does not exist in registry." % name)
TypeError: Model 'certificate.certificate' does not exist in registry. - - -
```
[^1]: https://github.com/odoo/odoo/pull/219953
[^2]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_verifactu/__manifest__.py#L9
[^3]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_facturae/__manifest__.py#L41
[^4]: https://github.com/odoo/odoo/blob/b991f766e28dc71f8627fdfbf2d59589d9707d3a/addons/l10n_es_edi_facturae/__manifest__.py#L16
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-prEnhancements to existing features
This update enhances the visual appearance of filters without color by adding a black border to checkboxes that don't have a color assigned. The change involves a minor code adjustment and removal of duplicate SCSS files to improve consistency and maintainability.
Original PR description
Filters' checkboxes that don't have a color get a black border instead. To achieve this, in commit https://github.com/odoo/odoo/commit/97fea91a570d2bb8a0d454be9cbe7ea4269f6699 we created a hack which inverts the checkbox' white check icon and border to black. In this commit we adapt the `xpath` to add the `.no_filter` class to the parent element instead of the input. We also remove the duplicate SCSS which was already moved to `calendar_filter_panel.scss`. Community PR: https://github.com/odoo/odoo/pull/144404 task-3575827
This update enhances the Odoo calendar app on mobile devices by ensuring the filter dropdown only appears when filters are actually present. Previously, it was always visible, which created a confusing user experience. This change improves usability and simplifies navigation for mobile users.
Original PR description
To be merged after : https://github.com/odoo/odoo/pull/144208 https://github.com/odoo/odoo/pull/144169 - https://github.com/odoo/enterprise/pull/51755 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances how Odoo automatically updates settings by including a unique user identifier (DBUUID). This ensures settings are correctly associated with the right user account, leading to more accurate and personalized configurations. It's a routine improvement for the IAP system.
Original PR description
https://github.com/odoo/iap-apps/pull/1309/ Forward-Port-Of: odoo/odoo#241723
This update adds an 'Inbox' tab to the desktop messaging menu, providing a more organized view of notifications for users who prefer to receive them in this way. Notifications are grouped by record and sorted by recency, making it easier for users to quickly review important updates. This improves the overall user experience within the messaging system.
Original PR description
**Current behavior before PR:** There is currently no Inbox tab in messaging menu to filter and see inbox notifications. **Desired behavior after PR is merged:** This PR introduces an Inbox tab to the desktop messaging menu for users whose notification preference is set to `inbox`. These notifications are grouped by record and are sorted based on their recency, providing a clearer and more organized view within the messaging menu. task-[4458377](https://www.odoo.com/odoo/project/1519/tasks/4458377) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies the process of downloading the IoT Box image and Virtual installer. By adding shortcuts directly within the Enterprise app's configuration tab, users can now easily access these essential files, streamlining their setup and reducing friction.
Original PR description
To ease image and installer downloads, we added shortcuts to both installers on the app in the configuration tab.
This update allows different color themes to be set for the Self-Order and Kiosk UIs within an Odoo company. Previously, all locations used the same color. Now, each POS configuration can have its own primary color, offering greater flexibility and branding options.
Original PR description
Before this commit: =================== - The primary color used in the Kiosk and Self-Order UI was always taken from the company configuration. After this commit: ================== - A new primary color field is added to the POS configuration. - The Self-Order and Kiosk UI now use this color per POS config. Purpose: ======== - Allow different color themes for multiple configs within the same company. Task: 5429015 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines the product search process within the Point of Sale (POS) system. Previously, users had to click a 'Search More' button after pressing Enter; now, pressing Enter directly triggers the product search, enhancing usability and speed. This change improves the overall efficiency of the POS workflow.
Original PR description
Before this commit: - Pressing the Enter key while searching for products in the POS screen had no effect. - Users were required to click the "Search More" button to perform a search. After this commit: - Pressing Enter now triggers the same product search action as the "Search More" button, improving usability and efficiency during product lookup. task-4890054 Linked PR : https://github.com/odoo/enterprise/pull/100831
This update moves a key method responsible for loading product information from the database to the point-of-sale store. This change enhances the performance and efficiency of product loading within the POS system, particularly when searching for items. It's a routine improvement to optimize the user experience.
Original PR description
Following this commit: ==== - `loadProductFromDBDomain` method is been move to pos_store from product_screen task-4890054 Linked PR : https://github.com/odoo/odoo/pull/236506
Resolved issues and error corrections
This update fixes a critical bug that caused Odoo to crash when sending invoices via Peppol with invoice lines lacking a product name. Now, the system gracefully displays an error message, guiding users to ensure each invoice line has a product or label before sending. This improves invoice processing reliability and prevents data loss.
Original PR description
Before this commit: When sending an invoice via Peppol with an invoice line that has no product name, the system crashes with a TypeError instead of showing a error message. Steps to reproduce: 1. Go to Accounting 2. Navigate to Customers > Invoices 3. Create a new invoice 4. Add an invoice line without entering a product name 5. Click 'Send' 6. Select 'by Peppol (Demo)' 7. Click 'Send' -> TypeError: 'NoneType' object is not subscriptable After this commit: System validates that the product name exists before accessing its text content. Users see a clear, error message: `Each invoice line should have a product or a label.` task-5432061 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241135 Forward-Port-Of: odoo/odoo#240908
This update ensures that inventory valuation lines are correctly generated when closing Point of Sale sessions using the Continental perpetual accounting method. Previously, lines were missing for orders not invoiced, creating an inconsistency between Anglo-Saxon and Continental accounting. This fix aligns the POS valuation process with best practices for perpetual inventory management.
Original PR description
Currently, in a continental perpetual setting for the stock valuation, the inventory valuation lines are not created when closing the session if the orders when not invoiced. Steps to reproduce:…
Currently, in a continental perpetual setting for the stock valuation, the inventory valuation lines are not created when closing the session if the orders when not invoiced. Steps to reproduce: ------------------- * Using My Belgian Company * In the settings search for inventory valuation * Set inventory valuation to Perpetual * Any cost method, AVCO for example * Set up valuation account and journal * Create a product * Type -> Goods * Track inventory by quantity * Set a purchase cost * Put some quantity on hand * Add category * In the settings of the category * Set up Stock account * Set up costing method, AVCO for example * Set inventory valuation to perpetual * Open pos session * Make an order for the product, put partner, invoice it * Close session, go to session journal items > Observation: Valuation lines are present * Open pos session * Make an order for the product, no partner, no invoice * Close session, go to session journal items > Observation: Valuation lines are missing. Why the fix: ------------ When the company is set with perpetual inventory valuation, in the context of the point of sale, there should not be any difference between anglo saxon and continental accounting. When we check the same flow with anglo-saxon, there is no difference for the creation of the inventory valuation move line whether we invoice the order or not. Inventory valuation lines are always present. Valuation entries are created in `_create_stock_valuation_lines()` if information is available regarding `stock_valuation`. https://github.com/odoo/odoo/blob/51f1982367809581530e4d126ed515c0df6c4daa/addons/point_of_sale/models/pos_session.py#L1258-L1273 The information for `stock_valuation` is supposed to be computed in `_accumulate_amount()`. However this is currently only computed when we have the anglo saxon accounting: https://github.com/odoo/odoo/blob/51f1982367809581530e4d126ed515c0df6c4daa/addons/point_of_sale/models/pos_session.py#L953 Instead we will now only check if the company is valuating the inventory in real time. We also apply the same fix on paid orders we want to invoice afterwards. opw-5167946 Forward-Port-Of: odoo/odoo#240176
This update corrects a technical error that occurred when duplicating Odoo databases. The change ensures the system handles recordsets larger than one, preventing a 'Expected singleton' error. This improves database stability and reliability during backups and restores.
Original PR description
These two computes assume a recordset of size 1. When duplicating databases, the recordset for this method might be more than 1, causing a "Expected singleton" traceback. See opw-5226545 (and linked TOTD thread) Forward-Port-Of: odoo/enterprise#103033 Forward-Port-Of: odoo/enterprise#99424
This update ensures invoices exported with foreign VAT numbers (e.g., for EU Distance Selling) accurately reflect the correct VAT information in the PDF invoice and the underlying XML file. Previously, the company's VAT was used instead of the appropriate foreign VAT, leading to potential discrepancies. This fix improves invoice accuracy and compliance.
Original PR description
When exporting invoices, the VAT number of the company could be wrong if the fiscal position of the invoice defines a foreign VAT number. In that case we need to use it. Steps to reproduce: 1.…
When exporting invoices, the VAT number of the company could be wrong if the fiscal position of the invoice defines a foreign VAT number. In that case we need to use it. Steps to reproduce: 1. Install a European localization (ex: l10n_at) 2. Enable EU Intra-community Distance Selling. You should now have new OSS fiscal positions. Update the one you want to use with a foreign VAT. 3. Create a valid foreign customer. (within the EU) 4. Create and send an invoice for this customer. 5. In the PDF, there is an embedded factur-x file. Notice how the VAT number under the SellerTradeParty corresponds to the company's VAT, not the foreign VAT number defined on the fiscal position. This is more apparent because we use the correct VAT number in the PDF file but not in the corresponding XML. This commit fixes this issue by first checking if we have a foreign VAT number defined on the fiscal position of the invoice. If so, we use it. opw-5182837 Forward-Port-Of: odoo/odoo#241436 Forward-Port-Of: odoo/odoo#236692
This update fixes an issue where users could inadvertently change product taxes when items were already in their shopping cart. Now, users can still modify product details, ensuring consistent tax calculations and order accuracy. This improves the overall reliability of the point-of-sale system.
Original PR description
- When a product is already in the cart, prevent updating its taxes from the frontend product edit popup. This avoids inconsistencies between the product taxes and the taxes applied to the order line. - Now we can still edit other fields of the product. task-id: 4943650 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239867
This update fixes an issue where spreadsheet metadata wasn't being correctly retrieved. The code has been moved to the appropriate module, spreadsheet_edition_account, ensuring accurate metadata is now available for spreadsheet functionality. This improves the reliability of spreadsheet reports and data integration.
Original PR description
This commit moves the override of _get_spreadsheet_metadata to the correct module, spreadsheet_edition_account. 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#241653
This update corrects the location of a key function within the Enterprise module, ensuring accurate retrieval of spreadsheet metadata. This resolves a previous issue and enhances the reliability of spreadsheet integration within the accounting system. It's a minor technical adjustment.
Original PR description
This commit moves the override of _get_spreadsheet_metadata to the correct module, spreadsheet_edition_account. Forward-Port-Of: odoo/enterprise#103054
This update resolves an error that prevented users from opening the employee form within the Point of Sale (POS) frontend. The fix disables the employee selection field on the frontend only, allowing the backend to function correctly where all necessary data is available. This ensures a smooth user experience for POS operations.
Original PR description
Opening employee form in the frontend was throwing an error, since not all thre required assets were available on the PoS frontend. So in this commit 57aba149b6e6927f9055124e58bed03f842329d5, we disabled openening the employee form by making the employee_id field unclikcable, both in forntend and backend!! It was enough however to only macking it unclikcable on the frontend, since it was working fine on the backend where all the required assets were loaded anyway. This commit restores the functionality on the backend, but overriding the `Many2OneField` used by the `employee_id`, and making it unclickable only on the frontned. opw-5252486 Forward-Port-Of: odoo/odoo#241793 Forward-Port-Of: odoo/odoo#241100
This update corrects a problem where product names were duplicated on delivery slips when a kit's component lacked a description. The fix ensures that product names appear only once on delivery slips, improving the accuracy and clarity of shipping documents. This resolves an issue impacting sales order fulfillment.
Original PR description
When creating a delivery slip, if the product sold is a kit and it's component doesn't have a description, the name will be repeated. Steps to reproduce: ------------------- * Create a product A with…
When creating a delivery slip, if the product sold is a kit and it's component doesn't have a description, the name will be repeated. Steps to reproduce: ------------------- * Create a product A with a bom of type kit * Add a product "comp" in the bom (don't give it a description) * Create a sales order with the product A and confirm it * Go on the delivery and create a delivery slip -> Issue, the name of the product "comp" appears twice. Observation: ------------- The name is added in description_picking field, since it is considered that the fallback for the description for outgoing deliveries should be display_name: https://github.com/odoo/odoo/blob/584f94e3246b6b59641bf83d4e707f2e872bc1e8/addons/stock/models/product.py#L293-L301 In _compute_description_picking, information about the bom will be added : https://github.com/odoo/odoo/blob/08c5fbbb5bc44c4810cd07188b29090c3060e14f/addons/mrp/models/stock_move.py#L235-L236 This causes the issue because the filter to prevent repeating the name on the delivery slip is implemented directly in the XML: https://github.com/odoo/odoo/blob/08c5fbbb5bc44c4810cd07188b29090c3060e14f/addons/stock/report/report_deliveryslip.xml#L83-L85 However, since we have added elements to the description (the bom information), this filter will not be applied, leading to the repeated name. opw-5265906 Forward-Port-Of: odoo/odoo#236948
This update fixes usability issues with hidden channels in the Odoo discussion platform. It adds a clear button to find hidden conversations and automatically repins conversations when opened, eliminating the previous 'hide' action. The design has also been refined for better clarity and consistency.
Original PR description
1. Discoverability of "hidden channels" was poor in just ctrl-k => Added a new button at bottom of discuss sidebar with "View hidden conversations". 2. When opening a hidden conversation, it's not possible to "undo" the hide. => Automatically repin conversation when opening the conversation. 3. Hide action was in same group as "Leaving", which is confusing because the actions are quite different as shown by color. => Moved "Hide conversation" action in its own group just above the highly destructive action like "Leave" but below settings actions. 4. Iconography of action is poor with a cross icon => use fa-eye(-slash) that matches more the semantics of action. Task-5431819 <img width="506" height="857" alt="Screenshot 2025-12-19 at 15 34 35" src="https://github.com/user-attachments/assets/453258bb-e83d-49db-986e-9c1c74eafc8d" /> Forward-Port-Of: odoo/odoo#240716
This update resolves minor usability issues related to the new channel hiding feature within WhatsApp. The changes enhance the user experience by addressing visual inconsistencies and improving the overall flow when hiding channels. This ensures a smoother and more intuitive experience for users.
Original PR description
Task-5431819 Forward-Port-Of: odoo/enterprise#102594
This update prevents visitor conversations within live chat from displaying the sender's IM status. This change addresses a recent accidental issue and improves the user experience for visitors. The fix ensures a cleaner and more focused chat interaction.
Original PR description
Before this commit, IM status was visible by livechat visitor. This issue comes from recent accidental regression [1]. [1]: https://github.com/odoo/odoo/pull/234715 Task-5435992 Before / After <img width="384" height="129" alt="Screenshot 2025-12-22 at 14 19 14" src="https://github.com/user-attachments/assets/6fb80a49-f04c-4db1-aa9a-254146a313b5" /> <img width="379" height="129" alt="Screenshot 2025-12-22 at 14 19 37" src="https://github.com/user-attachments/assets/10308a02-7370-4818-8bf5-cd1513a1a964" /> Forward-Port-Of: odoo/odoo#240927
This update resolves an error that prevented users from paying invoices when an invoice line lacked a due date. The fix ensures the system correctly handles invoices with multiple payment terms and due dates, preventing a 'date' vs. 'boolean' comparison error. This improves the reliability of the invoice payment process.
Original PR description
Currently, an error occurs when a user attempts to pay an invoice. **Steps to Reproduce ([Video](https://drive.google.com/file/d/1onmo1mxeZgH6fkQOoueGCgC67HPjYHX6/view)):** - Install the `Accounting`…
Currently, an error occurs when a user attempts to pay an invoice. **Steps to Reproduce ([Video](https://drive.google.com/file/d/1onmo1mxeZgH6fkQOoueGCgC67HPjYHX6/view)):** - Install the `Accounting` module. - Go to `Payment Terms` and create `a new Payment Term` with at `least two Due Term lines`. - Go to `Invoices` and `create a new Invoice`. - Add one invoice line and set the `Payment Term` to the `newly created payment term`. - In the `Journal Items` tab > `Enable the Due Date` column (optional hidden). - From the two `Receivable journal items`, remove the `Due Date` from one of the `receivable lines`. - Now `Confirm the invoice` and `Click on Pay`. **Error:** `TypeError: '<' not supported between instances of 'datetime.date' and 'bool'` **Cause:** This error occurs when the user clicks Pay, than it going to calculate the total amount to pay from here [1]. If the payment term has more than one term line, it creates more than one receivable invoice line, and the receivable invoice lines are sorted from here [2]. When two or more invoice lines have the same move_id, they are sorted based on the due date. However, if one of the receivable lines does not have a due date, the error is raised. Similarly, as shown in [3], when the system retrieves the installment data, it sorts the lines based on the due date and raises the same error. **Fix:** This commit ensures that when there is no due date on any receivable invoice line and two lines belong to the same invoice, the comparison uses the maximum date as like here [4] and places that line at the end for that invoice, thereby maintaining the correct flow. The same fix is applied while retrieving the installment data, as described above. [1]: https://github.com/odoo/odoo/blob/92a9f6b19670685dfe9fb1714bf01449768e5f62/addons/account/wizard/account_payment_register.py#L703 [2]- https://github.com/odoo/odoo/blob/92a9f6b19670685dfe9fb1714bf01449768e5f62/addons/account/wizard/account_payment_register.py#L635 [3]: https://github.com/odoo/odoo/blob/92a9f6b19670685dfe9fb1714bf01449768e5f62/addons/account/models/account_move_line.py#L3305 [4]: https://github.com/odoo/odoo/blob/92a9f6b19670685dfe9fb1714bf01449768e5f62/addons/account/models/account_move_line.py#L522 sentry-713241246 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241744 Forward-Port-Of: odoo/odoo#241060
This update resolves an issue where clicking on bookings in the Gantt view was causing errors. The underlying website structure changed, breaking a key reference point used in the application. This fix directly updates the application's code to correctly identify the booking element, ensuring bookings can be accessed reliably.
Original PR description
### Steps to reproduce 1 - Create a booking. 2 - Go to Gantt view. 3 - Click on the booking, traceback occurs. --- The popover footer no longer contains an inner wrapper div, which broke existing xpath inheritance. See: https://github.com/odoo/enterprise/pull/101482 This PR updates the xpath to target the popover-footer container directly. Task-5445909 Forward-Port-Of: odoo/enterprise#102983
This update ensures that changes to product descriptions within Odoo are now correctly reflected in the UrbanPiper system during menu synchronization. Previously, updates to product descriptions weren't consistently propagated to UrbanPiper, leading to outdated information. This fix improves data accuracy for our integrations with UrbanPiper.
Original PR description
Before this commit: --- When we sync the menu with the product description and later update the product description, re-syncing the menu does not update the product description in UrbanPiper. After this commit: --- This fix ensures that any change in the product description is properly sent to UrbanPiper during menu synchronization. task-5439271 Forward-Port-Of: odoo/enterprise#102946 Forward-Port-Of: odoo/enterprise#102846
This update resolves a random error that prevented the point-of-sale tip tour from running correctly. The issue stemmed from the tour not waiting for the confirmation screen to appear after the tip was validated. This fix ensures the tour consistently functions as expected, improving the customer experience.
Original PR description
The PosTipAfterPaymentTour tour would fail randomly because it was not waiting for the feedback screen to be shown after validating the tip screen. runbot-234734 Forward-Port-Of: odoo/odoo#241661
This update simplifies point-of-sale printer settings. Previously, complex configurations led to issues with printer prioritization. Now, the system automatically uses the default receipt printer selected, and the settings interface is streamlined to only show valid receipt printers.
Original PR description
Previously, when an Epos IP and for IoT devices were configured both in one pos config , the Epson printer was prioritized over IoT devices, and a warning message was displayed to notify the user. This behavior has been removed. Printers are no longer managed this way, and the default receipt printer is now always the one selected for printing. Also, the filter for the default receipt printer in the res settings has been adjusted to display only receipt printers in the available field. enterprise pr: https://github.com/odoo/enterprise/pull/102673 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240916
This update removes a confusing warning message related to printer configurations in the Point of Sale system. Now, the default receipt printer is automatically selected, simplifying the setup for users. This change ensures consistent receipt printing across all devices.
Original PR description
Previously, when an Epos IP and for IoT devices were configured both in one pos config , the Epson printer was prioritized over IoT devices, and a warning message was displayed to notify the user. This behavior has been removed. Printers are no longer managed this way, and the default receipt printer is now always the one selected for printing. Also, the filter for the default receipt printer in the res settings has been adjusted to display only receipt printers in the available field. community pr : https://github.com/odoo/odoo/pull/240916 Forward-Port-Of: odoo/enterprise#102673
A recent change temporarily removed image alignment options from the Odoo builder. This commit has reverted that change, restoring the familiar functionality. These options will be permanently removed once a new 'image toolbar' is fully implemented.
Original PR description
Commit [1] removed the image options from the sidebar because a task is planned to move these image alignment options to a new "image toolbar". Merging that commit before the toolbar task was ready was not a good idea, as it leaves us without these options for a long period of time. With this commit, we restore the image alignment options in the sidebar. These options will be removed only when they can be properly moved to the new image toolbar. [1]: https://github.com/odoo/odoo/commit/101d0c782cec6a7b5dadf062c75828aefff2e8a7 Forward-Port-Of: odoo/odoo#241766
This update resolves an issue where VAT reports for Belgian companies were incorrectly setting the 'Client Nihil' field to 'YES' outside of the year-end. The fix reintroduces a checkbox option for this setting, aligning with Belgian regulations. This ensures accurate VAT reporting and avoids potential compliance issues.
Original PR description
## Issue: When exporting the XML for a VAT return, the client nihil field was incorrectly set to YES According to Belgian regulations, this is only allowed on the last report of the calendar year…
## Issue: When exporting the XML for a VAT return, the client nihil field was incorrectly set to YES According to Belgian regulations, this is only allowed on the last report of the calendar year https://finances.belgium.be/sites/default/files/downloads/165-625-directives-2019.pdf ## Cause: Prior to 18.3, nihil was a checkbox option on export Since 18.3, it is automatically selected based solely on a price formula, without checking the report’s date This PR brings back the Client Nihil checkbox in 19.0 But didn't change the default value Causing the issue to still be present https://github.com/odoo/enterprise/pull/99496 ## Steps to reproduce: - Select the Belgian company - Open the Tax Return and select the VAT Return - Click Returns and enter an opening date in January - Click Review for the first available report - Ignore errors and return to previous page - Click on Submit -> Download XML - Before the fix, ClientListingNihil is set to YES ## Potential remaining issue: The legal document specify that it should also be checked in case of "cessation d’activité" So it may be interesting to consider adding the option back opw-5184056 Forward-Port-Of: odoo/enterprise#102482 Forward-Port-Of: odoo/enterprise#98982
This update ensures that new booking forms created through the POS system begin with an empty name field. Previously, the form might automatically populate with a default value, which was causing confusion for users. This change simplifies the booking process and ensures consistency.
Original PR description
In this commit: --------- - Ensure the booking form opens with an empty name when created from POS. - Prevents unwanted auto-filled values during create flow. Task-5431520
This update resolves a technical issue impacting the accuracy of payroll calculations for Belgian employees within the Enterprise module. The fix corrects a 'DDP' error, ensuring that salary figures are correctly processed and reported according to Belgian tax regulations. This improves the reliability of payroll reporting.
Original PR description
Forward-Port-Of: odoo/enterprise#102867 Forward-Port-Of: odoo/enterprise#102787
This update corrects a formatting error in a notification message that was causing incorrect punctuation. Specifically, the message was incorrectly displaying "Done!. rest of the message." The fix removes the exclamation mark, ensuring messages are displayed correctly. Additionally, the word "Done" has been translated for internationalization.
Original PR description
Issue: a notification used the title field with "Done!" and a message. The issue is that a title and message are separated by a period, resulting in "Done!. rest of the message." Solution: remove the exclamation mark Note: Added translation of "Done" Task-5420416 Forward-Port-Of: odoo/enterprise#103026
This update resolves a technical error in the Point of Sale module that prevented accurate price displays. The fix ensures that the 'pricer_display_price' field is correctly populated, improving the reliability of product pricing within the POS app. This change was necessary due to an underlying issue with how Odoo's ORM handles computed fields.
Original PR description
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click…
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click on the Bug icon (top-right corner). 7. Click on Data. **Issue:** A traceback is raised with the error: `Compute method failed to assign product.product(191,).pricer_display_price` The method `_compute_pricer_display_price` was removed in this commit https://github.com/odoo/enterprise/commit/87b1672ac7c1d27cd9eab05138b78f6a9439fea7 , and was reintroduced in a later commit https://github.com/odoo/enterprise/commit/4575d3dfdbd0ccd9bf57bddbd35a89bd47c48798 to avoid the AttributeError. **Cause:** The computed field `pricer_display_price` is a type Char and and is non-stored was not being assigned a value inside the compute method. So ORM requires that records to be assigned a value in a compute method. **Solution:** To fix this, assign a default value to `pricer_display_price` inside the compute method to prevent the error. opw-4887318 Forward-Port-Of: odoo/enterprise#90676 Forward-Port-Of: odoo/enterprise#88517
This update clarifies the dependencies within the Brazilian tax reporting module (l10n_br_edi_sale_fiscal_reform). Previously, the module relied on several indirect dependencies, which has now been explicitly defined. This ensures the module functions correctly and avoids potential compatibility issues.
Original PR description
l10n_br_edi_sale_fiscal_reform depends on l10n_br_edi_sale, which depends on both l10n_br_edi and sale, but not explicitly on l10n_br_avatax_sale. runbot-exception-762 [runbot-error-237690](https://runbot.odoo.com/odoo/runbot.build.error/237690) Forward-Port-Of: odoo/enterprise#103117
This update corrects a typo in the dashboard name and updates the labels for key scorecards to use more accurate terminology ('Avg revenue per guest' and 'Avg revenue per order'). These changes improve the dashboard's readability and provide more precise data insights for restaurant performance analysis.
Original PR description
Desired behavior after PR is merged:
- Fix typo in first sheet name: 'Dahsboard' -> 'Dashboard'.
- Rename scorecards to reflect average values:
- 'Total revenue per guest' -> 'Avg revenue per guest'.
- 'Total revenue per order' -> 'Avg revenue per order'.
Task: [5447108](https://www.odoo.com/odoo/project/2328/tasks/5447108)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#241838
Forward-Port-Of: odoo/odoo#241598Features or functions removed from Odoo
This change removes a duplicate stylesheet file in the mail module. The original file was a copy-paste of a newer, more comprehensive stylesheet. This cleanup simplifies the codebase and improves maintainability.
Original PR description
Code in `@mail/scss/variables/primary_variables.scss` was copy-paste of `@mail/core/common/primary_variables.scss`. `variables/primary_variables.scss` was the original file in mail to define variables, but then the `common/primary_variables.scss` file was introduced when folder for assets bundles was necessary. The `common/primary_variables.scss` replaces it completely, therefore there's no reason to keep `variables/primary_variables.scss`.
Code cleanup and technical improvements
This update refactors the IoT drivers' static files to align with Odoo's coding standards. Additionally, a small optimization was made to reduce the delay before the full-screen loader checks for IoT Box status, improving responsiveness. This change enhances the overall user experience and code maintainability.
Original PR description
We rename static files to camel_case to comply with Odoo conventions. We also reduced the timeout before the full screen loader starts pinging the IoT Box. It was 10 seconds to avoid pinging before the server stopped. We reduced it to 2 seconds, as it's useless most of the time.
This update addresses a coding standard issue within Odoo, replacing instances of `odoo._` with `self.env._`. This improves code consistency and maintainability, aligning with best practices for Odoo development. The changes were automatically applied using a tool that scans the codebase for these inconsistencies.
Original PR description
Related to https://github.com/odoo/odoo/pull/174844 Enteprise Related https://github.com/odoo/enterprise/pull/103014 I have created the following plugin for…
Related to https://github.com/odoo/odoo/pull/174844
Enteprise Related https://github.com/odoo/enterprise/pull/103014
I have created the following plugin for [fixit](https://github.com/Instagram/Fixit):
- https://github.com/OCA/odoo-pre-commit-hooks/blob/main/src/oca_pre_commit_hooks/checks_odoo_module_fixit/prefer_env_translation.py
Where it identify all the `odoo._` cases and transform automatically to `self.env._`
Running the following command:
```bash
export FIXIT_ODOO_VERSION=19.0
find . -name "__manifest__.py" -execdir oca-checks-odoo-module-fixit --fix --enable=prefer-env-translation {} \;
git diff --name-only \
| grep '\.py$' \
| xargs ruff check --select F401 --fix
```
(We need to run 2 times since that if the same line that the same issue so it is fixed once)
# TODO
- [x] Wait to push all the cases
### Run autofixes for only files changed
- [x] Run autofix for imported but unused
```python
git diff odoo/master --name-only \
| grep '\.py$' \
| xargs ruff check --select F401 --fix
```
- [ ] Remove unicode literals from strings u''
- [ ] Missing whitespace around operator
- [ ] Trailing comma on bare tuple prohibited [enterprise/l10n_mx_reports/models/trial_balance.py:34](https://github.com/odoo/enterprise/blob/e5e365248daf59713d92c65f7ac024a4a9897c28/l10n_mx_reports/models/trial_balance.py#L34)