Thursday, February 20, 2025
11 changes · 18.0
Enhancements to existing features
Point of Sale screens can now use a simplified HTML editor for restaurant appointment fields, making it easier to edit formatted content directly in POS. The update also prevents errors when the editor runs in this lightweight mode without media features enabled.
Original PR description
### Commit 1 In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement…
### Commit 1
In the point of sale environnement we want to be able to edit html field
in a minimal way. So only core plugins are added to the html_editor.
As we have a special assets environnement for the point_of_sale we can
directly patch the main `htmlField` definition without impacting main
assets of Odoo.
So in Order to make it work we need to remove the preventDefault on
backspace key at the initialization of PoS.
Enterprise: 79703
### Commit 2
The html editor should only work with the “CORE_PLUGINS” plugin set.
But when an HTML field is used only with this Set a traceback is raised
because the “MediaPlugin” plugin is missing.
This is due to this piece of code:
```js
async getEditorContent() {
await this.editor.shared.media.savePendingImages();
return this.editor.getElContent();
}
```
Each time an HTML input is unfocused, this method is called and attempts
to save the pending images. The problem is that media.savePendingImages
depends on the “MediaPlugin”.
A quick fix is made in this commit by adding a question mark after media
to avoid traceback if the plugin is missing.Restaurant appointment screens in Point of Sale can now offer simple HTML text editing. This lets staff make light formatting changes where needed while keeping the POS experience streamlined and avoiding changes to the wider Odoo interface.
Original PR description
In the point of sale environnement we want to be able to edit html field in a minimal way. So only core plugins are added to the html_editor. As we have a special assets environnement for the point_of_sale we can directly patch the main `htmlField` definition without impacting main assets of Odoo. Community: 198482
Planning emails now include shifts scheduled on weekends, so recipients get a complete view of their work schedule. This helps avoid missed assignments and improves communication for teams that operate on Saturdays or Sundays.
Original PR description
Issue: Steps To reproduce: Solutions: opw-4378797
Resolved issues and error corrections
This fix prevents Odoo from failing when reading document data that is not encoded in UTF-8. It improves reliability for users accessing certain stored documents through document searches or integrations.
Original PR description
Since [this first commit], reading bytes not encoded in UTF-8 raises an error. The problematic code was moved from odoo/tools/date_utils.py to odoo/tools/json.py by [this other commit] after the bug was introduced. Steps to reproduce: - Install the documents app. - Call search_read on documents.document to read the raw field. => A UnicodeDecodeError is raised on some documents. The `ustr()` function is deprecated, so the fix is just about using the same logic. As it is impossible to guess the encoding of the bytes, we try to decode them with common encodings. [this first commit]: https://github.com/odoo/odoo/commit/6a68e93f924cc78ba15bc78d981b1bf115e57a0d [this other commit]: https://github.com/odoo/odoo/commit/5ef4c07ada1b47cd08a0fc7a2dd626f92d79b715 opw-4457853
Portal users can now open invoices that include early payment discounts without seeing an access error. This keeps customer self-service invoice access working when discounted payment terms are used.
Original PR description
Steps to reproduce: ------------------- - Create an invoice and set the partner to a portal user. - Set the payment term to any payment term with an early discount option and confirm the invoice. - Log in as the portal user and view my invoices, you will get an error message that you aren't allowed to access "Partial Reconcile" records Cause: ----- Since #182656, access to the payment_terms was added to the _is_eligible_for_early_payment_discount method, to allow applying the early discount for in_payment invoices. Fix: --- Add sudo qualifier to the payment_terms access to allow this function to be called by portal users. opw-4535621 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Restaurant point of sale users can now split and pay an order from one device even when the same table was updated from another device. The fix prevents the app from crashing when the same order line deletion is received more than once during device synchronization.
Original PR description
Steps to reproduce: =================== - Open the restaurant registry from 2 devices A and B - From device A, open a table, add a product, go back to floor plan - From device B, choose the same…
Steps to reproduce: =================== - Open the restaurant registry from 2 devices A and B - From device A, open a table, add a product, go back to floor plan - From device B, choose the same table, click split, choose the product added from device A, and click on pay. Reason: ======= We are trying to delete the same record 'pos.order.line' twice, i.e. we're calling `processDeletedRecords` twice with the same record id [1], so it succeds the first time, and it removes the record from the frontend cache, but when trying to process the deletion the second time, it fails since the record doesn't exist in the cache anymore [2], and hence, the `record` object is `undefined` in the second call to `delete_` with the same record id, causing the traceback [3]. The reason we're calling `processDeletedRecords` twice with the same record id is because `sync_from_ui` is issuing 2 sync events at the same time [4], since it's been passed 2 orders when splitting [5]. Fix: ==== Since it's an urgent bug, this fix just skips deleting the record if it doesn't exist, without "fixing" the root cause of syncing event being issued twice. [1]: https://github.com/odoo/odoo/blob/2d0ed96675541a88d9132bd01d33730f72c79d1d/addons/point_of_sale/static/src/app/store/devices_synchronisation.js#L116 [2]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/static/src/app/models/related_models.js#L691 [3]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/static/src/app/models/related_models.js#L664-L665 [4]: https://github.com/odoo/odoo/blob/eca835a10d027b936890ff6ccc9e02660edfdfd5/addons/point_of_sale/models/pos_order.py#L1043-L1046 [5]: https://github.com/odoo/odoo/blob/0faf168bbcbc66daeb58999a6222cd2c6d41134c/addons/pos_restaurant/static/src/app/split_bill_screen/split_bill_screen.js#L167 opw-4562134
Point of Sale order validation now stops if payment processing fails or the order is not fully paid. This helps prevent orders from being incorrectly marked as paid, reducing the risk of financial discrepancies.
Original PR description
Before this commit, _process_saved_order caught errors from action_pos_order_paid and logged them. This meant that even when payment processing failed, the order state could be set to "paid", leading to financial discrepancies. Removing the try-catch block now stops order validation when payment is incomplete, ensuring orders are only marked as paid when fully confirmed. opw-4487123 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents helpdesk teams from using working calendars that cannot produce reliable SLA deadlines, such as flexible calendars or calendars without working hours. It avoids ticket creation errors and helps ensure SLA deadlines are only based on valid schedules.
Original PR description
Steps to reproduce: - Let's consider an helpdesk team HT - Let's consider a working calendar WC with flexible hours and no working hours - Set an SLA policy on HT and set WC as SLA schedule - Create a ticket in HT Bug: A traceback was raised because the function plan_hours was called in _compute_deadline with no deadline Expected behavior: With WC in flexible hours, a deadline is computed according to the SLA policies With WC not in flexible hours and not working hours, no deadline is computed (bad configuration) opw:4563223
Intrastat reporting has been updated to include service transactions alongside goods where required. This helps businesses produce more complete compliance reports, especially for Belgian Intrastat declarations involving services.
Original PR description
Backport of https://github.com/odoo/enterprise/commit/379ddbe4a0a479bd7547877175476230f92b4683 Task: 3926963 Upgrade: https://github.com/odoo/upgrade/pull/7201
This fixes several usability issues in the Documents list view. Users can now edit records without keyboard shortcuts interrupting their work, avoid seeing duplicate Folder information, and update Website and Folder fields when allowed.
Original PR description
This commit fix the following issues: - When editing a record in list view, it wasn't possible to use the space key nor the enter key. The first one was (un)selecting the current line while the second one entered the folder or preview mode when validating the changes. - Folder was present twice in the list view. - Website and Folder are now editable. Task-4558286
This change lets account chart updates avoid creating extra accounts, taxes, or fiscal positions when they are not wanted. It helps keep localization updates, especially for the Netherlands, more predictable and reduces unintended accounting setup changes.
Original PR description
add force_create in _load function