Thursday, December 19, 2024
24 changes · 18.0
Resolved issues and error corrections
This update fixes several combo product setup issues, including quantity editing loopholes, unnecessary configurator popups, validation gaps, and access problems. It also adds broader automated tests so combo and product configuration flows behave more consistently and reliably for sales and website sales users.
Original PR description
This change: - Adds tests for the combo models, - Adds tests for the combo configurator, - Aligns the product configurator tests with the combo configurator ones. It also fixes some issues: - Previously, the plus/minus buttons were disabled in the combo configurator when increasing/decreasing the quantity wasn't allowed, but is was still possible to edit the quantity via the input. - Previously, the combo configurator was always opened if one of the combo items had a `no_variant` attribute, even if it wasn't configurable. - Some of the combo models' constraints weren't strict enough. - There were some access issues. Enterprise PR: https://github.com/odoo/enterprise/pull/73556 task-4320163
The customer portal no longer shows invoices as overdue when they have already been reversed by a credit note. This prevents customers from seeing misleading payment reminders for invoices that are effectively settled.
Original PR description
Steps to reproduce: - create a portal user associated with a customer - create for this customer an invoice with a due date to yesterday - go on its portal view -> 1 invoice to pay will be displayed - create and confirm a credit note -> go on it portal view Issue: There will still be the invoice set as to be paid (even if in the detailed report it is defined as paid) Cause: The domain does not take into account invoice for which the payment state is `reversed` opw-4360830 Root cause: #162762 added a feature in the 18.0 portal to remind customers of overdue invoices, but did not correctly take into account reversed or blocked invoices.
Fixes an access issue that could prevent public or portal customers from submitting checkout extra-step forms, especially when uploading files. The change makes form handling more reliable across website CRM, recruitment, and project integrations by ensuring required model checks use the proper elevated access.
Original PR description
Versions -------- - 18.0+ Enterprise: https://github.com/odoo/enterprise/pull/75382 Steps ----- 1. In eCommerce, enable extra step during checkout; 2. modify extra step form by adding another field;…
Versions -------- - 18.0+ Enterprise: https://github.com/odoo/enterprise/pull/75382 Steps ----- 1. In eCommerce, enable extra step during checkout; 2. modify extra step form by adding another field; 3. save changes; 4. as a public or portal user, add item cart; 5. go to checkout; 6. upload file in extra step; 7. go to payment. Issue ----- Form cannot be submitted due to error. Cause ----- eCommerce uses the `extract_data` method from the `WebsiteForm` controller. Several other modules also have overrides that may get called on checkout via super, but don't use `sudo` to check the `model` name for their module-specific logic, leading to access errors. This isn't always an issue, depending on the order they're called in. If the model name is read once into cache using `sudo`, access rights are no longer checked. Commit 75b385bae0360 added an `extract_data` override to website_hr_recruitment which checks `model.model` before calling `super`, which means the `model.model` value hasn't been cached yet, and an access error is thrown when called as Public User. Solution -------- Add `sudo` to any `model.model` check in `WebsiteForm` overrides to make the `sudo` requirement explicit (and not rely on ORM caching behavior). opw-4376165
Badges can once again use grayscale color styles correctly after a recent design update caused them to display incorrectly. This keeps badge visuals consistent and prevents broken-looking status labels in the web interface.
Original PR description
Since the new front-end badge design[^1], we introduced a new way of handling their generation, aiming to provide a new sleek and clean design. To do so, we tweak the colors that are available with…
Since the new front-end badge design[^1], we introduced a new way of handling their generation, aiming to provide a new sleek and clean design. To do so, we tweak the colors that are available with badges, aka `.o_color_*` and status one. While this works fine, we also had to use some `!important` statements to enforce this design instead of the default BS one[^2]. Unfortunately, these `!important` introduced a side-effect, it prevents the badges to accept any other utility that we wouldn't loop through in this definition. This is what happened with the grayscale colors, meaning these badges were visually broken. To fix this issue, we simply need to add the CSS variables in use for the badge design within the grays utilities generation mixin. Responsible Commit: b4a5bf03cd81ece2a7fd21a3c5a058ee2d3336fe task-4361645 [^1]: https://github.com/odoo/odoo/pull/162935 [^2]: https://github.com/odoo/odoo/pull/162935/files#diff-f338780f594d6b1f46eda5d3fb9fed86f3c3c8f65522fb93e639534e9d92cdb2R611 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Worldline payment processing now better handles transaction references with numbered suffixes and avoids sending invalid empty values to the payment provider. It also includes the customer name in payment data, helping improve transaction records and provider communication.
Original PR description
Fixup of 65b273681db8277493ee399b3addc96fd284e100 Some transactions references are suffixed by a higher number than 0. For instance: _1, _2, ... We now also manage that case. ---------------------------- Avoid sending False to the API --------------------------- Send the customer's name to Worldline
This update brings the spreadsheet component to the latest maintenance version and resolves several issues affecting formatting, sheet deletion, color controls, pivot formatting, figures, and editor layering. Business users should see fewer crashes and more consistent spreadsheet behavior when editing reports or dashboards.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/7cf34a618 [REL] 18.0.8 Task: 0 https://github.com/odoo/o-spreadsheet/commit/5719d7dcc [FIX] cell: keep non-breaking…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/7cf34a618 [REL] 18.0.8 Task: 0 https://github.com/odoo/o-spreadsheet/commit/5719d7dcc [FIX] cell: keep non-breaking spaces Task: 4403607 https://github.com/odoo/o-spreadsheet/commit/f243d86d5 [FIX] sheet view: DELETE_SHEET in initial revisions Task: 4405573 https://github.com/odoo/o-spreadsheet/commit/f024ea533 [FIX] table_style_editor_panel: disable "No Color" button Task: 4102704 https://github.com/odoo/o-spreadsheet/commit/23a005a53 [FIX] data_bar_rule_editor: disable "No Color" button Task: 4102704 https://github.com/odoo/o-spreadsheet/commit/c8af9e9d5 [FIX] SheetPlugin: Fix handling of unbounded zones Task: 4397745 https://github.com/odoo/o-spreadsheet/commit/8a18d36e0 [FIX] pivot: apply format on measure only a basic formula Task: 4377411 https://github.com/odoo/o-spreadsheet/commit/13a79d08b [FIX] figure: crash on deleting dragged figure Task: 4329240 https://github.com/odoo/o-spreadsheet/commit/b6a0772f6 [FIX] composer: topbar composer z-index Task: 4246966 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
Odoo now detects when the live communication connection becomes unstable or fails to reconnect, and shows users a small warning in the interface. This helps teams notice connection problems sooner, reducing confusion when real-time features like Discuss stop responding after network or server issues.
Original PR description
Gevent server issues can be difficult to detect as there is no visible hint in the UI to inform the user when something is wrong. This delays the detection of issues even more since symptoms are not easily linked to bus malfunctioning. This PR introduces the `bus_monitoring_service`, a utility designed to detect unstable or lost bus connections. It displays a small warning in the UI to promptly alert users of potential connection problems. A connection is considered lost if it could reconnect after a disconnection. task-4403259 enterprise: https://github.com/odoo/enterprise/pull/75675 <img width="1280" alt="Screenshot 2024-12-12 at 16 52 45" src="https://github.com/user-attachments/assets/959308c0-a7ee-44cf-86e8-c460dbd93b8d" /> <img width="1281" alt="Screenshot 2024-12-12 at 16 52 55" src="https://github.com/user-attachments/assets/18692c36-54b6-4d43-a0c5-d98dd4c66ec7" />
Search suggestions now respond more quickly as users type by cancelling outdated requests and briefly waiting for more complete input. This reduces delays and avoids the impression that no results are available when early, broad searches take too long.
Original PR description
Before this commit, suggestions were fetched sequentially, meaning that adding characters to the search would only take effect after the current RPC call finished. The intent was to provide initial results quickly, as the previous RPC had already started. However, the first suggestion fetch is often based on very few characters, which can take a long time to process. This creates the impression that no item matches the search terms. With more characters, the search becomes much faster. This commit adapts the behavior to cancel the previous fetch instead of waiting for it to finish. It also debounces the fetch to ensure it starts with as many characters as possible.
The department form no longer shows the department name field twice. This reduces confusion for HR users and makes the form cleaner without changing any underlying business process.
Original PR description
Before this commit, the "name" field was present 2 times in the department views.
The web interface no longer shows duplicate layout buttons when a control panel appears inside a dialog. This makes dialogs cleaner and avoids user confusion from repeated controls.
Original PR description
This commit fixes a bug where the control panel would display layout buttons in dialog even though they would already be present inside the dialog footer. task-4381250
Projects created directly from a sales order now start as billable by default. This prevents sales teams from accidentally creating non-billable projects and helps ensure related work can be invoiced correctly.
Original PR description
Steps to Reproduce: - Go to the Sales app - Create a new sales order - On the other info tab try to add a project: issue: the project created is non-billable by default sol: -make the project billable by default when it is created through sale order task-4207347
Store pickup delivery orders no longer show the “Send to Shipper” button, preventing users from triggering an error on orders that do not require shipment. This makes the delivery workflow clearer and avoids a crash when processing in-store pickup orders.
Original PR description
This issue occurs when a delivery order is created with the ``Carrier`` set to ``Pick up in Store``. After saving and validating the order, click the ``Send to Shipper`` button. Steps to reproduce: --- - Install ``website_sale_collect`` module - Create a new ``Delivery Order`` and in ``Additional Info`` select ``Carrier`` as ``Pick up in Store`` > Save and Validate - Click on the ``Send to Shipper`` button Traceback: --- ``TypeError: 'NoneType' object is not subscriptable`` This commit resolves the issue by adding an XPath to the view to hide the ``Send to Shipper`` button for orders with the delivery type set to ``in_store``. sentry-6040319897 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The multi-request time-off wizard now only shows time-off types that do not require allocations, matching the expected behavior from previous versions. This prevents users from selecting incompatible leave types when creating several requests at once, reducing errors in HR workflows.
Original PR description
In previous versions, when dealing with multiple time-off requests, only time-off types that do not require allocations were listed for selection. This behavior has been restored by restricting the `holiday_status_id` field to show only non-allocation time-off types in the multi-request wizard. opw-4370090 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mail composer now ignores repeated clicks on the send or log button after the first click. This prevents users from accidentally creating duplicate messages, improving reliability with a small user-facing fix.
Original PR description
In the full composer, when the user clicks the send/log button multiple times, it sends multiple messages. This PR prevents further clicks after the button has been clicked once. Task-4347392
Products are now correctly filtered by category before being sent to the order receipt printer in Point of Sale. This helps ensure receipts include the intended items for each configured category printer, reducing mistakes in printed orders.
Original PR description
Product wasn't filtered by category before to be printed on the order receipt opw-4320392
This fix lets users quickly create new analytic plans from the account node field by automatically using the current plan as the default context. It reduces setup friction and helps keep analytic accounting workflows moving without extra manual selection.
Original PR description
We add by default the plan of the current node in the context, allowing to create new analytic plans on the fly. task-4221324 version-18.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes an unnecessary hidden field from Vietnamese Viettel e-invoicing screens. It helps keep the module compliant with Odoo quality checks and prevents related automated test failures, with no expected impact on daily users.
Original PR description
* This is to avoid failing test_uncommented_invisible_field 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 emoji picker now correctly shows matching frequently used emojis instead of displaying a misleading “No emoji matches your search” message. This avoids confusion for users when their search result exists only in recently or frequently used emojis, and also improves the wording of the empty-state message.
Original PR description
Before this commit, when a search in emoji picker matches only frequently used emojis, it was showing "No emoji" screen. Steps to reproduce: - add 🥦 in frequently used emoji picker (click on it in…
Before this commit, when a search in emoji picker matches only frequently used emojis, it was showing "No emoji" screen. Steps to reproduce: - add 🥦 in frequently used emoji picker (click on it in emoji picker at least once) - open any emoji picker - search for "brocoli" => It shows "No emoji match your search" The recent emojis were shown and clickable, but the empty screen being visible is a mistake. This happens because the screen was relying on emptiness on non-frequently used emojis. This means if all matches were frequently used emojis, then the screen was mistakenly displayed. The function `getEmojis()` is filtering non-recent emojis when there's an active search: `recentEmojis()` takes search term into account so it must be used to put a priority on frequent emojis. This commit fixes the issue by showing screen only when there's no emoji match, including frequently used emojis. Also reword the screen "No emoji match your search" to "No emoji matches your search". Task-4415147 Before / After <img width="307" alt="Screenshot 2024-12-18 at 16 05 28" src="https://github.com/user-attachments/assets/a61283c7-3304-46d3-bf1e-e707686470e2" /> <img width="311" alt="Screenshot 2024-12-18 at 16 05 07" src="https://github.com/user-attachments/assets/bab33944-a456-456b-b99f-c6a1aa430f0c" />
The Payment Matching button is now available on payment forms when a payment can still be matched. This fixes a visibility issue caused by a payment status change, helping accounting users complete matching without workarounds.
Original PR description
Before This Commit: - The `Payment Matching` button was invisible in the payment form view, even if the payment was not reconciled. After This Commit: - The `Payment Matching` button will be invisible when the payment is reconciled or not in the state of `In Process` or `Paid.` Reason: - In version 18, the state selection field for payments has changed, and the `posted` state no longer exists. As a result, the condition `state != 'posted'` is always true, so the button is always invisible. Ref - https://github.com/odoo/odoo/commit/01b87f1230beac0568f4e3b1b76e547909506892#diff-143d17de807d23650088a8c12f0a5b5cc2246b1b51e0bb7634e85247b6e535eaR38 Task: 4419369
The report editor now correctly handles report template sections that use different tag types, preventing a crash when users save changes. This improves reliability for customers customizing reports in Studio.
Original PR description
have a t call node with another tag than "t". Edit the view Before this commit, there was a crash when saving the changes. The helper that recomposes the arch with the different parts inside the t-call did not account for node not to be "t" tags. After this commit, it works fine. opw-4383844
This fix prevents checkout extra-step forms with file uploads from failing for public or portal visitors. It ensures the website helpdesk form logic checks the related model safely, making checkout completion more reliable when multiple website modules are installed.
Original PR description
Versions -------- - 18.0+ Community: https://github.com/odoo/odoo/pull/190096 Steps ----- 1. In eCommerce, enable extra step during checkout; 2. modify extra step form by adding another field; 3.…
Versions -------- - 18.0+ Community: https://github.com/odoo/odoo/pull/190096 Steps ----- 1. In eCommerce, enable extra step during checkout; 2. modify extra step form by adding another field; 3. save changes; 4. as a public or portal user, add item cart; 5. go to checkout; 6. upload file in extra step; 7. go to payment. Issue ----- Form cannot be submitted due to error. Cause ----- eCommerce uses the `extract_data` method from the `WebsiteForm` controller. Several other modules also have overrides that may get called on checkout via super, but don't use `sudo` to check the `model` name for their module-specific logic, leading to access errors. This isn't always an issue, depending on the order they're called in. If the model name is read once into cache using `sudo`, access rights are no longer checked. Commit [1] combined with commit [2] added an `extract_data` override to website_hr_recruitment which checks `model.model` before calling `super`, which means the `model.model` value hasn't been cached yet, and an access error is thrown when called as Public User. Solution -------- Add `sudo` to any `model.model` check in `WebsiteForm` overrides to make the `sudo` requirement explicit (and not rely on ORM caching behavior). [1]: https://github.com/odoo/odoo/commit/75b385b [2]: https://github.com/odoo/odoo/commit/05f9f43 opw-4376165
Fixes an issue where formatting changes made in Studio reports could disappear in translated versions. Report customizations now keep their own translation entries, reducing the risk that translated reports look outdated after edits.
Original PR description
…nslations Before this commit the inheriting studio view (containing the user's customizations) had its translations updated with its parent's translated terms. This was because in the previous…
…nslations Before this commit the inheriting studio view (containing the user's customizations) had its translations updated with its parent's translated terms. This was because in the previous implementation we copied all the parent's views into the inheriting, which not the case anymore since odoo/enterprise@acdca428d7543530177b7368ca9baddfb340e97c This behavior has become problematic because of how translations work. To illustrate, create a report, put in some text, save. Then, add some style to that text (making it bold for example) The result is that in other language than in the base one, the report looks as if it weren't edited: there is no style, no bold text. This was due to multiple parts of the code: 1. translate.py doesn't take into account tags or style to produce terms, only the text 2. fields.py tries to match an old term with a new term at write time with some kind of similarity threshold 3. When getting a field's translated terms, we cannot know whether those terms come from the an actual translation in DB, or from the base language's default Now that customizations are stored in the form of an inheriting view, with xpaths, we can go back to the standard odoo's behavior for translations: the inheriting view has its own terms, and must be translated individually. This commit is considered the best of two evils: 1. losing terms when editing 2. not modifying translations, even though the semantic structure has changed opw-4389993
Changing the currency on a confirmed subscription order could cause an error when the system tried to create the related log entry. This fix ensures the currency change is logged correctly, preventing disruption for users managing subscription orders.
Original PR description
Before this commit, the following traceback could be encountered when changing the curency of a confirmed order (after removing the constraint in sale):
```
File "/home/arj/PycharmProjects/worktree/18.0/enterprise/sale_subscription/models/sale_order_log.py", line 95, in _create_log
return self._create_currency_transfer_log(order, initial_values)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/arj/PycharmProjects/worktree/18.0/enterprise/sale_subscription/models/sale_order_log.py", line 183, in _create_currency_transfer_log
old_mrr_new_currency = initial_values['currency_id'].currency_id._convert(old_mrr,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'res.currency' object has no attribute 'currency_id'
```Odoo Studio now warns users when the real-time connection becomes unstable while editing reports or views. This helps users understand potential update issues sooner and reduces confusion during customization work.
Original PR description
task-4403259 community: https://github.com/odoo/odoo/pull/190509