Thursday, December 19, 2024
13 changes · 18.0
Resolved issues and error corrections
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.
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
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
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 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
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'
```