Monday, October 30, 2023
32 changes · 17.0
Enhancements to existing features
Receipts from POS self-order now show whether the order is for table service and include the table stand number when relevant. This also fixes kiosk receipts paid through Stripe or Adyen so they print the actual order instead of an empty receipt.
Original PR description
In this commit, we add the mention of the service type on the ticket and when the service is "table", we add the table stand number. We also fix a problem with stripe and adyen where the ticket does not print the order but an empty order with the kiosk. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The app no longer delays its initial screen while chat windows finish loading in the background. This makes the web client appear faster for users, especially where the messaging setup call is slow, while chat windows still show once ready.
Original PR description
The messaging service starts synchronously and exposes a promise isReady that is resolved when the call to init_messaging is done. This is good as this call thus doesn't slow down the services startup and thus the webclient mount. Unfortunately, the ChatWindowContainer, which is a main component, i.e. a child of the WebClient, waits for that promise in its onWillStart. As a consequence, the webclient can't be mounted until the rpc returns, which can take a while (in odoo.com, this rpc lasts ~500ms). The chat windows being "peripherical components", there's no reason to block the whole application for them. Instead, the webclient can be mounted, and when they are ready, the chat windows can be rendered. This is what this commit does. closes odoo/odoo#139750 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
The accounting menus now separate amounts to settle by business flow. Vendor settlement amounts show only purchase-related entries, while a new customer menu shows sale-related entries, making reconciliation lists clearer and more relevant.
Original PR description
Current behavior before PR: Currently, the "Amounts to settle" button in the "Vendors" drop-down menu opens a view showing all the account.move.line that are to be reconciled. Also, they should only be shown when their residual is less than zero. --- Desired behavior after PR is merged: This commit makes it now so that when clicking on that button, only the amls linked to a purchase journal are shown and another "Amounts to Settle" button has been added in the "Customers" drop-down menu to show the amls linked to a sale journal --- Enterprise: https://github.com/odoo/enterprise/pull/49706 task-3572482 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
When users cancel appointments, the system will now show a single clear cancellation message instead of multiple tracking updates. This makes the cancellation notification cleaner and easier to understand. The system also tracks whether organizers receive these automated notifications.
Original PR description
Cancelling an appointment would log multiple tracking updates and show the tracking update inside the cancellation message: "Appointment canceled by: John Active: True -> False" This change disables tracking messages during the cancelation process and lets the custom message convey the change. Archiving a appointment will also post a custom message instead of the regular tracking message. track_recipients is enabled for bookings and cancelation as these messages would often be automated and being able to tell whether the organiser received the notification is relevant. Task-2974500
This update improves the Point of Sale system for Belgium and Sweden by reorganizing modules to follow Odoo naming guidelines and consolidating shared functionality. The Belgian system now includes certification updates for version 17, while the Swedish system ensures the black box device receives accurate transaction information. Both countries now leverage a new shared proforma module to eliminate code duplication.
Original PR description
In this PR, we update both sweden and belgian localisation for the point of sale. There is also a renaming to fit the odoo guide lines about the module naming. For both module, we make them depend of the new pos_proforma module. They both have mandatory pro forma order and re use the same code. Now, instead of duplicate the code, we can use everything from the new module. For the sweden, we make sure that the black box is receiving the correct information. For the belgian, it's a first step for the v17 certification.
The Knowledge module now includes new action buttons in the article list view that allow users to manage multiple articles at once. Users can now restore articles from trash or send articles to trash in bulk, making it easier to organize and manage knowledge base content.
Original PR description
This commit adds new action buttons to the Knowledge's tree view when selecting articles. We added the buttons `Restore` and `Send to Trash`. `Restore` is seen in the Trash view and `Send to Trash` in the Search list view. Those are used to either send an article to the trash or to restore them from it in batch. task-3470267
This update allows warehouse staff using the barcode scanning app to redirect picking orders to alternative storage locations beyond the initially planned zone. Previously, users could only scan items to sub-locations of the original picking location. This enhancement provides greater flexibility in warehouse operations when items need to be moved to different zones.
Original PR description
Currently in barcode app, you are limited to scan sub location of the picking. However in some cases, you would like to move the picking to another zone than initialy plan.
Resolved issues and error corrections
Repair orders now follow the same picking behavior as stock transfers: if no item is explicitly marked as picked, the system treats all items as picked. This reduces confusion for users and keeps repair workflows consistent with recent inventory changes.
Original PR description
Since PR #137864 We do not have quantity done anymore and we use the picked field to know if something is picked or not. But we remove the immediate transfer wizard and we consider instead than if nothing is mark as pick, everything is pick. We will do the same for repair because it would confusing to have a different behavior 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
Features or functions removed from Odoo
This change removes the separate buttons for setting or clearing quantities in stock operations because the same actions are now handled through the reserve and unreserve process. This reduces duplicated controls and makes inventory workflows clearer for users.
Original PR description
Thanks to ref https://github.com/odoo/odoo/pull/137864, the quantity on stock move can be emptied or fill with the unreserve/reserve mechanism. Those two buttons becomes useless 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
Point of Sale now correctly shows the limited functionalities popup when the system is offline. This helps cashiers understand what is happening and continue with the appropriate reduced capabilities instead of facing unclear or broken error handling.
Original PR description
Before, error handling didn't work in point_of_sale when offline. This was due to poor error handling. Now, the "limited functionnalities" popup is displayed correctly.
This fixes an issue where changes made to an embedded record after opening and closing it in a dialog were not detected. Users will now see the save button correctly, helping prevent edits from being missed or lost.
Original PR description
Purpose:
-------
The "StockMoveX2ManyField" custom field has given rise to a new need, that of being able to edit a record in an x2many directly or from a dialog. This is the first use case to require the ability to do both at the same time.
This particular use case highlighted a bug preventing a change from being saved.
How to reproduce:
- Go to a form view with an x2m using a custom widget
- Open an x2m record in dialog mode
- Close the dialog
- No changes have been made to the record, so the save button is not displayed
- Edit a field in the same record
Before this commit:
The save button is not visible
After this commit:
The save button is visible.
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-prLivechat administrators can now view past chat threads in a mobile-friendly chat window instead of the broader Discuss screen. This fixes a broken mobile experience and makes session history easier and more consistent to use on small screens.
Original PR description
⚠️ Depends on: https://github.com/odoo/odoo/pull/137623 Description of the issue/feature this PR addresses: The UI is broken for mobile users using the session history feature of Livechat. Current behavior before PR: Thread is rendered in the Discuss app. Desired behavior after PR is merged: Thread is rendered in a ChatWindow component.
This update resolves several Point of Sale issues needed for Swedish and Belgian blackbox certification. It improves receipt and order handling so certified sales workflows remain compliant and reliable.
Original PR description
This PR fixes few issues needed for the certification of the sweden and belgian blackbox --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix ensures the right employees are available to select when creating or editing time off requests, including new records. It also makes the selection logic more efficient, reducing the chance of incorrect choices and improving reliability for HR workflows.
Original PR description
Before this commit, the domain on ``employee_id`` and ``employee_ids`` would be computed in a computed method ``_compute_allowed_employee_ids``. However, due this compute method not triggering for new records, the domain was not correctly set. Additionally, this way of computing the domain was not very efficient. With this change, the domain is computed correctly and efficiently.
This update corrects several customer portal issues affecting accounting and sales documents. Users should see more accurate portal card counts, fewer misleading alerts for cancelled quotes, and more consistent editing behavior for sale order options.
Original PR description
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 Firefox from crashing when users click certain linked fields while editing a form that uses the web editor. It improves stability for users working with rich text fields such as sale order notes, without changing visible functionality.
Original PR description
Follows commit: ffef01e327b0263a2af4892e9e438a2c0ef22184. It caused an issue in Firefox: On the sale order form view (with the field "notes" handled by the OdooEditor), clicking on a Many2one made the browser crash because the method getSelection did not exist on the target which was the input element. It did not crash in chrome as the event's target was always the Document. The added test actually tests the feature of the referenced commit, and checks, as much as possible, that there is no crash. 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 update addresses multiple issues in the deferred accounting system, including incorrect tax line grouping, missing vehicle tracking, and errors when generating deferral entries. It also adds the ability to drill down into aggregated report lines and improves the overall reliability of deferred entry generation with better date handling and validation.
Original PR description
This PR regroupes many fixes and improvements regarding the deferred: See the details in the commits :) task-id 3544877 Community https://github.com/odoo/odoo/pull/138959 Forward-Port-Of: odoo/enterprise#49656 Forward-Port-Of: odoo/enterprise#48631
This update corrects hyperlinks in automated marketing email templates used for customer communications like welcome messages, free trial offers, and partnership invitations. The fix ensures customers can properly click through to intended destinations, improving the reliability of marketing campaigns.
Original PR description
The commit modifies links on anchors. The commit also cleans up logging and unused props.
Fixed a bug that prevented users from previewing newly created reports in Studio. The issue occurred because the system required a record to exist when previewing reports, but new reports don't have records yet. The fix allows report previews to work without requiring existing data, making it easier for users to design and test new reports.
Original PR description
Currently, when the user tries to print a preview of the newly created report with Studio, an error occurs. Step to produce: - Create new app with Studio and click on reports - Click new > select any…
Currently, when the user tries to print a preview of the newly created report with Studio, an error occurs.
Step to produce:
- Create new app with Studio and click on reports
- Click new > select any type
- Click 'PRINT PREVIEW' from the sidebar >> error occur
Error:
```
TypeError: WebStudioReportController.print_report() missing 1 required positional argument: 'record_id'
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
```
This is because we received 'recordId' as 'undefined' at Line [1] because the model does not have any records.
In previous versions, Line [2], raised a user error when the related model of the report did not have a record because the record is mandatory in the drag-and-drop editor. After the https://github.com/odoo/enterprise/commit/cca11d1a7a5a77d38dc0d3121e5d79f6a171ec75 it changed to a new editor, and here the record is not required any more.
This commit solved the above issue by setting 'None' as the default value of the 'record_id'
and passing an empty list in the 'report_action' method when record_id is 'None'; see [Line](https://github.com/odoo/odoo/blob/7f35ed6cacead630ceb6aa445cf68a46a66b5ed9/odoo/addons/base/models/ir_actions_report.py#L924) it allows an empty list if the model does not have records.
Apart from this, since the record is not required for the preview report, this commit also
removes Line [3], because many times 'active_ids' is not found in context.
Line [1]-https://github.com/odoo/enterprise/blob/8f35db6ff2b41300837394a8279f2b55beef6f1f/web_studio/static/src/client_action/report_editor/report_editor_wysiwyg/report_editor_wysiwyg.js#L417
Line [2]-https://github.com/odoo/enterprise/blob/d71f5205d1099dec5a8f4cb7de80d173bd75d6f9/web_studio/controllers/report.py#L142
Line[3]-https://github.com/odoo/enterprise/blob/d36ce63629590acb8f221f782491a6ff5c213066/web_studio/static/tests/tours/web_studio_test_ui_unit_report_tours.js#L318
sentry-3965574308
Forward-Port-Of: odoo/enterprise#46879This update addresses multiple issues in the subscription module including payment processing problems, visibility issues with upsell options, and plan management bugs. The changes ensure customers can properly manage their subscriptions through the portal, see correct plan information, and that plan changes are accurately recorded in the system.
Original PR description
- [[FIX] sale_subscription: portal payment fix](https://github.com/odoo/enterprise/pull/49713/commits/448bb332ea551124126d1df43ee3a5dba871a875) - [[FIX] sale_subscription: hide upsell in…
- [[FIX] sale_subscription: portal payment fix](https://github.com/odoo/enterprise/pull/49713/commits/448bb332ea551124126d1df43ee3a5dba871a875) - [[FIX] sale_subscription: hide upsell in all_subscription](https://github.com/odoo/enterprise/pull/49713/commits/993a21d48ea0c6246aabbc1b2a7537615a55d705) - [[FIX] sale_subscription: small code improvement](https://github.com/odoo/enterprise/pull/49713/commits/2e41e9c277ba5238171cca25e8072faa2543334f) - [[FIX] sale_subcription: close change_plan doesn't update plan](https://github.com/odoo/enterprise/pull/49713/commits/51a9dc4526e03ed4e1bd31a532a8a12d21d20ebe) - [[FIX] sale_subscription: show plan if no template](https://github.com/odoo/enterprise/pull/49713/commits/aa60ef00fb7ac96752a33d73470e4f24d94c49ee) - [[FIX] sale_subscription: SO template hidden when no group](https://github.com/odoo/enterprise/pull/49713/commits/ee0fcad905f3afa2d48083ec22f07567e5ba2dd4) - [[IMP] sale_subscription: move from demo_data to data](https://github.com/odoo/enterprise/pull/49713/commits/3cf7d809c93443e18abb5b8902a100d5a9c9fd1c) PR COM: odoo/odoo#140051 PR ENT: odoo/enterprise#49713 task-id : 3571692
This update corrects how the billable time target field is accessed and displayed for employees. Previously, the field could be accessed by users who shouldn't have permission to view it. Now, only HR Users can access the field, and only Timesheet Approvers can see it in employee records. This ensures proper access control and data security.
Original PR description
Before this commit, the field is only visible if the user has no access to timesheet app. The problem is the field could be prefetched once the user has access to timesheet app even if he is not `HR User`. This commit changes the `groups` defined in definition of `billable_time_target` field to only fetch the field if the user is at least HR User, however, the field will be only visible in the form view of `hr.employee` model if the user is at least Timesheet Approver. task-3573317
This fix resolves an issue where paid orders were not being sent to the kitchen preparation display when the point of sale system was offline. Now when the system reconnects, all pending orders are properly synced to the preparation display, ensuring kitchen staff can see all orders that need to be prepared.
Original PR description
Previously, when PoS was in offline mode, paid orders were not sent to preparation display due to poor error handling. Now, when the PoS is offline and reconnects, paid orders are sent to the preparation display via the create_from_ui function.
This update resolves an issue where Mexican electronic invoices (CFDI) could not be generated when sales orders contained line items with zero quantities. The fix ensures these zero-quantity lines are properly excluded during the invoice generation process, allowing businesses to successfully create compliant tax documents.
Original PR description
Prior to 5f4b3ef2c8f62357d736f32702968668787e8e4c, it was possible to have SO lines with zero as quantity. This was broken with the `valor_unitario` computation in `_l10n_mx_edi_get_invoice_cfdi_values` because it was relying on those quantities. This fix will simply exclude the lines with 0 quantities when generating the cdfi values Forward-Port-Of: odoo/enterprise#49208
Fixed an issue where the dropdown menu in the Planning view was being hidden behind other content. The menu button was repositioned in the interface, causing a layering conflict that has now been resolved by adjusting the display order of elements.
Original PR description
**Steps:** - Open Planning without demo data - Click on the Week > dropdown menu will open **Issue:** - The dropdown menu is getting overlapped by the content helper. **Cause:** - Before the milky theme, this button was along with other buttons in the control panel, but now it's moved inside hence there is a conflict in the z-index of content helper and the dropdown menu **Fix:** - Changing the z-index of content helper **Task:** 3446994 Forward-Port-Of: odoo/enterprise#45461
This fix resolves an issue where users with Dutch localization installed encountered an error when downloading XAF files. The problem was caused by incorrect data type handling in the system parameters. The fix ensures the batch size parameter is properly converted to the correct format, allowing XAF file downloads to work without errors.
Original PR description
### Current behavior: When Dutch localization is installed creating `l10n_nl_reports.general_ledger_batch_size` in system parameters results in a traceback when trying to download XAF file. ### Error: Casting problem as `batch_size` is interpreted as a str. ### Expected behavior: Download XAF file with no traceback. ### Fix: we cast the variable `batch_size`. ### Affected versions: all > 14 opw-3296107 Forward-Port-Of: odoo/enterprise#49019
The asset accounting tests were incorrectly relying on demo data to run properly. This fix removes that dependency so tests can run independently and reliably. This improves the stability of our testing process and prevents failures when demo data is not available.
Original PR description
We rely on demo data to run the tests, while we should not. Linked to runbot error 27596, 27598, 27599, 27600, 27601, 27460, 27464, 27465, 27466, 27467, 27468, 26269, 26270, 26271, 26272, 26257, 26956, 26964, 26965, 26966, 26967 Forward-Port-Of: odoo/enterprise#49506 Forward-Port-Of: odoo/enterprise#49108
This update fixes two issues in the appointment scheduling system: it corrects how resource parameters are handled when canceling appointments, and it prevents the system from considering linked resources that lack available capacity or weren't part of the original resource list. These fixes prevent errors when customers try to book appointment time slots.
Original PR description
Use the correct name for the resource selected in the URL param and don't take into account linked resources that don't have remaining capacity or that are not part of the initial resources available. task-3424035 Forward-Port-Of: odoo/enterprise#44101
This fix ensures that appraisals created automatically through scheduled tasks now behave the same as manually created appraisals. Specifically, feedback templates are now properly loaded and feedback responses remain unpublished until explicitly released, preventing premature visibility of evaluation feedback.
Original PR description
Purpose: The appraisal created from cron is already is confirmed state and it should have same bihavior as manually created and confirmed one. The feedback templates should be loaded and feedback not published. Prior this commit: When we create appraisal from cron, the template is not loaded. Also both feedbacks are published. After this commit: The appraisal that is created from cron, has loaded templates and employee and manager feedbacks are not published. Forward-Port-Of: odoo/enterprise#49773
This update resolves a bug in the 360 feedback feature where non-HR users encountered access errors when attempting to resend feedback. The fix prevents the system from trying to access private employee email information that these users don't have permission to view, making the feedback resend feature work properly for all authorized users.
Original PR description
This commit fixes the feedback resend feature as it was trying to access the private email of the employee, causing access errors for non hr-users. Forward-Port-Of: odoo/enterprise#49803
A recent update changed how SEPA payment methods are identified in the system, but the code that displays bank account information in payment tokens wasn't updated accordingly. This caused bank account numbers to be hidden with dots (••••) instead of showing the actual account details. This fix restores the proper display of bank account information for SEPA direct debit payments.
Original PR description
Commit 9b729b15 changed the provider code of SEPA from 'sepa_direct_debit' to 'custom' but did not adapt the check on the provider code when computing the display name of tokens. This caused SEPA tokens' name to be padded •••• instead of using the bank account's number as name. Forward-Port-Of: odoo/enterprise#49748
This update resolves an issue where users on Safari browsers were unable to copy text or access the share feature in the Documents module. When clicking the share icon, Safari would display a "NotAllowedError" message. This fix ensures the Documents feature works consistently across all major browsers, including Safari on secure HTTPS connections.
Original PR description
Steps to reproduce ================== - On safari, go to an odoo instance with https (you can use browserstack + ngrok) - Install documents - Go to documents - Click on a document - Click on the share icon -> NotAllowedError opw-3556808 Forward-Port-Of: odoo/enterprise#49730 Forward-Port-Of: odoo/enterprise#49291
This update fixes two issues in the report editor: changes are now properly reset when you reset the report, and the toolbar correctly hides when dialog boxes appear. These fixes ensure a smoother and more reliable experience when editing reports in Odoo Studio.