Daily updates from Odoo
Tuesday, November 26, 2024
21 changes
1 change
Resolved issues and error corrections
Manufacturing routes can again use the destination location set directly on the rule, instead of always relying on the related operation type. This preserves existing manufacturing flows that use custom destinations and prevents unexpected stock movement changes after the prior update.
Original PR description
Following #156437, the destination location of a rule is now determined by the associated picking type destination. To keep compatibility with the old pull system (where each rule determined which destination it had, regardless of its picking type), a new field was added to force the destination defined on the rule to apply instead. This was done for `pull` and `pull_push` rules, as it was mainly the pull rules that were affected, but the `manufacture` case was overlooked, as it would break existing manufacture rules having a different destination on the rule than the one in the related picking type. To allow that back again, we enable that parameter to be set on `manufacture` rules as well. opw-4300074 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
4 changes
Enhancements to existing features
Odoo Studio now avoids taking focus away from the editing sidebar and automatically selects a field label when a field is opened or added. This makes customizing forms faster and reduces extra clicks when renaming fields.
Users printing IoT-linked reports will now see the printer selection window each time, making it easier to switch printers when needed. They can choose to hide the prompt for future prints, and the system will remember the last printer used for that report.
Original PR description
Currently, you only get to select a printer the first time you print a report (that has IoT printers linked). The only way to change the printer is to use the 'Clear selected devices' button in the IoT app. This PR changes the behaviour to always show the selection popup, unless the user ticks a checkbox to not show it again. The selection auto-fills to whatever was selected last time for the report (saved in local storage). task-4129000
The POS setup experience now shows available payment methods in a clearer card-style view. This helps users choose and configure payment options more quickly, reducing friction during point-of-sale setup.
Original PR description
Improve payment method setup in POS by adding a new widget to display the available payment methods in a card view. This will make it easier for the user to select the payment methods and configure them. taskId: 4335308
Resolved issues and error corrections
Planning views now expand grouped dates using the correct time interval for the selected scale, such as day, week, month, or year. This prevents misleading or incomplete planning results when users group schedules by scales other than week.
Original PR description
Before this commit: - _expand_domain_dates is usually using one week as timedelta for all scales leading to incorrect results for any scale different from "week". After this commit: - date_utils.get_timedelta is used to get timedelta according to the scale. task-4269657
15 changes
Enhancements to existing features
Point of Sale product cards now show how many units of each product are already in the cart. This helps cashiers quickly see selected quantities and reduces the chance of duplicate or missing items during checkout.
Original PR description
Before this commit: ================= - The product card did not show the number of items in the cart. After this commit: ================= - Added quantity display on the product card indicates how many of each product is in the cart. Task: 4244560
The full mail composer now prioritizes email templates created by the current user in the template dropdown. This makes frequently relevant templates easier to find immediately, reducing extra clicks through "Search More..." and improving day-to-day messaging efficiency.
Original PR description
In Odoo 18.0's full mail composer, we replaced the default template selector with a custom dropdown menu, enabling users to create, update, delete, or select mail templates directly within the composer. The dropdown initially suggests up to seven templates. When the template isn't among the suggestions, people have to click on the "Search More..." button to select the template they want. This adds a few additional steps in the process of selecting a template. To avoid that, we'll prioritize displaying templates created by the user first, as they are more likely to be selected. This change is designed to enhance user efficiency by making the most relevant templates immediately accessible in the dropdown menu. task-4348578 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Chat windows now open in a taller, more comfortable layout by default, making conversations easier to read and use. The previous option to switch window size has been removed because the larger format is now the standard experience.
Original PR description
Chat window could have toggleable size change from the "..." menu above chat bubbles. Its purpose was to incite users that didn't like using chat windows because to appreciate using chat windows thanks to their optional bigger size. This bigger size was appreciated, so this commit now puts it as the default sizing and removes the option to change the size. Chat windows had a ratio of 3 / 4, which is too squared, resulting in chat windows being either too small in height or too large in width. This commit puts a 9 / 16 ratio instead. The actual size of chat windows after this commit has the same width as a small chat window with the height of large chat windows. Task-4354014 <img width="1554" alt="Screenshot 2024-11-25 at 15 00 13" src="https://github.com/user-attachments/assets/1f08a632-a7f1-45cf-9adf-5dc08bdade4c">
Location names in POS UrbanPiper can now be translated so updates are correctly reflected in UrbanPiper. Users are also warned to switch to English when syncing menus, matching UrbanPiper's default language requirement.
Original PR description
In this commit: === - Added translation support for location names in `pos.config` to ensure updates are reflected in UrbanPiper locations. - Since the default language in UrbanPiper is English, users must set their language to English to sync the menu. A redirect warning has been added for users configuring this setting. task-4328185
Resolved issues and error corrections
Internal users now correctly receive the configured default privacy setting for calendar events, even when they are not administrators. This ensures company calendar privacy preferences are applied consistently without requiring elevated user rights.
Original PR description
Before this commit, the calendar default privacy setting was not working for internal users beacause they couldn't see the setting value of other users if they weren't administrators. This commit fixes the issue by making a sudo update on the `res.users.settings` object when computing the calendar default privacy setting of it (and in the inverse method as well). Sudo was needed to allow the business customization and bypass the security that the record rule dictates on users not being able to see the other user's settings (unless they're administrators). task-4260794
This fix prevents an accounting migration from failing when no account entries are found. It ensures the system handles empty results correctly, avoiding an error that could block database upgrades.
Original PR description
- During the migration, the database was blocked, and the following issue occurred: [traceback](https://pad.odoo.com/p/issue_4352724_suba) - This issue was caused by the method `_get_chain_info`…
- During the migration, the database was blocked, and the following issue occurred: [traceback](https://pad.odoo.com/p/issue_4352724_suba)
- This issue was caused by the method `_get_chain_info` returning an [integer value](https://github.com/odoo/odoo/blob/3485abaa313263ea1946b9bdbffec5928d31fd72/addons/account/models/account_move.py#L3847) If at least one account move is retrieved, `chain_info` contains some values, and the condition `if early_stop and chain_info:` is executed as expected.
- However, if no account moves are found (i.e., zero account moves), `chain_info` is assigned the value 0. In this case:
- The condition `if early_stop and chain_info:` is not executed because `chain_info` has no values.
- Then subsequent condition `if 'unreconciled' in chain_info['warnings']:` is executed, which raises the error `TypeError: 'int'-object is not subscriptable` because `chain_info` is an integer(0) and does't have subscriptable attributes like ['warnings'].
- To resolve this issue, I converted the return values of `_get_chain_info` integer to boolean values
TBG - [1648](https://upgrade.odoo.com/web#id=1648&cids=1&menu_id=107&action=178&model=upgrade.request.traceback.group&view_type=form)
OPW - [4352724](https://www.odoo.com/odoo/project/70/tasks/4352724#)
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-prCreating a new stock replenishment record no longer triggers an error before the user has selected a product or unit of measure. This keeps the replenishment workflow usable and avoids a confusing crash during record creation.
Original PR description
Currently, a traceback occurs when the user tries to create a new stock replenishment record. To reproduce this issue: 1) Install `stock` 2) Create a new record from `operation/replenishment` Error:-…
Currently, a traceback occurs when the user tries to create a new stock replenishment record. To reproduce this issue: 1) Install `stock` 2) Create a new record from `operation/replenishment` Error:- ``` AssertionError: precision_rounding must be positive, got 0.0 ``` This error is occurring because of the recent refactoring from the below commit. https://github.com/odoo/odoo/pull/183833/commits/17d9af14cad0bace48edf2d1b072cc4d12532875 Initially, there was a condition that if there is no product or location, the `_get_qty_to_order` method simply returns False. But because the condition was removed from the above mentioned commit, we get the rounding value as 0.0 as there is no uom when initially creating a new record. This leads to the above traceback when the below line executes with rounding as 0.0 https://github.com/odoo/odoo/blob/74d4503a45c9d4ca741d349c3fce673358d2cc42/addons/stock/models/stock_orderpoint.py#L361-L364 We can resolve either by returning False if there is no product/uom or just add an extra check of rounding. sentry-6088943207
Fixes an issue where clicking crop controls after editing an image could trigger an error and interrupt the editing flow. The editor now avoids saving the image at the wrong moment, so users can crop images more reliably.
Original PR description
**Current behavior before PR:** After modifying an image, clicking any cropper button generated a traceback. this occurred because clicking the button triggered a blur event, and tries to save modified image in saveModifiedImage method. In the saveModifiedImage method, the image src was split. However, since the cropper container was open, the image had its original src rather than the cropped one. As a result, attempting to split the original src caused the traceback. **Desired behavior after PR is merged:** Now, before opening the cropper, the o_modified_image_to_save class will be removed from the image. This ensures that when blur events are triggered by clicking the cropper buttons, the savePendingImages method does not call saveModifiedImage to save the image and once the cropper is closed, the o_modified_image_to_save class will be added back to the image if it is not already present. task:4263575
Point of Sale receipt sending now works reliably by SMS and WhatsApp without triggering an error. Email receipt delivery is also improved because basic receipts are included as attachments, helping customers receive complete proof of purchase.
Original PR description
Before this commit: ========== - There was a traceback error when sending receipts through SMS and WhatsApp. - Basic receipts were not being added as email attachments when sending receipts through email. After this commit: ========== - The traceback error while sending receipts has been resolved, and the receipt sending flow is now seamless. - Basic receipts will now be attached as email attachments when sending receipts through email. task-4212901 Related: - Enterprise: https://github.com/odoo/enterprise/pull/70891
This fix prevents an error when users create a new replenishment entry before selecting a product. It restores a missing check so inventory staff can open the replenishment form normally and continue planning stock needs.
Original PR description
Steps to reproduce: Inventory → Operations → Replenishment → New → Traceback Error Issue: [Last changes](odoo/odoo@28d24a05ca94f0fbecf) in the file removed the condition ensuring product_id before getting its quantity which created the error. fix: Added the removed condtion. opw-4352363 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Project dashboard shortcuts now open the expected views for purchase orders, warehouse transfers, and stock moves. The purchase order counter now excludes empty orders, so the number shown matches the records users see when they click it.
Original PR description
1) Added views for the following top bar actions: - Purchase Orders - To WH - From WH - Stock Moves 2) In project dashboard, the count of purchase orders in the stat button was taking empty purchase orders into account. However, when clicking on it, only the POs containing lines were shown, which is not consistent. We then remove the empty POs from the count, this is also to be consistent with the count of sales orders which does not take the empty SOs into account. task-4313971 version-18.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Subscription invoices are no longer shortened just because an end date falls inside the next billing period. This keeps billing periods and next invoice dates stable when sales teams use end dates to encourage renewals or upsells.
Original PR description
Before this commit, when the end_date occured inside the next period, we
could invoice the prorated part of the period.
Invoice from 5th of November to 5 of December.
End date on the 1st of December.
The invoice would be from the 5th of November to the 1st of December.
As this seems smart, it would disrupt some flows where salesperson would
put an end_date as an incentive to force people pay their
contract/upsells in a fear of service disruption.
With the previous code, the invoice would be prorated and removing the
end_date would mess up with the next_invocie_date and invoicing periods.
taskid: 4358288Fixed subscription closing so backend closures and automatic expirations end contracts as of today when required, instead of extending them to the end of the current billing period. This helps keep contract status and billing timelines accurate for customers and internal teams.
Original PR description
After this commit https://github.com/odoo/enterprise/commit/31033a6863c841d7d0d5e434331c8a34420a3374 the contract could be closed with end_date at the end of the current period. There are several cases when the end_date should still forced as "today": - closing from the backend - expiration cron taksid: 4358288
Fixes errors that could interrupt sending point-of-sale receipts by SMS or WhatsApp. Email receipt delivery is also improved by ensuring basic receipts are included as attachments, making the customer receipt process more reliable.
Original PR description
Before this commit: =========== - There was a traceback error when sending receipts through SMS and WhatsApp. - Basic receipts were not being added as email attachments when sending receipts through email. After this commit: =========== - The traceback error while sending receipts has been resolved, and the receipt sending flow is now seamless. - Basic receipts will now be attached as email attachments when sending receipts through email. task-4212901 Related: - Community: https://github.com/odoo/odoo/pull/181828
This fixes subscription closing so the end date matches the business context. Backend and automated expiration closures end immediately, while customer portal cancellations keep service active until the paid period ends.
Original PR description
After this commit https://github.com/odoo/enterprise/commit/31033a6863c841d7d0d5e434331c8a34420a3374 the contract could be closed with end_date at the end of the current period. There are several cases when the end_date should still forced as "today": - closing from the backend - expiration cron Moreover, when the customer close the contract on the portal, it would put it on closed state directly. We decide to put the end_date to avoid trigger all the closing mechanism right away (stop access to resources, service etc when the service is paid until the end of the period). taksid: 4358288
1 change
Resolved issues and error corrections
This update fixes an issue where the Cost Analysis report inaccurately reflected manufactured quantities and unit costs. The change ensures the report correctly calculates costs based on the actual quantity of products manufactured, improving the accuracy of cost reporting.
Original PR description
## Issue: - The Cost Analysis report does not accurately reflect the quantity manufactured of a product or the correct cost per unit. ## Steps to reproduce: - Create a manufactured product and two components with costs and on hand quantities. - Confirm a manufacturing order for the product. - Adjust the manufactured quantity of the manufactured product. - Notice that the cost analysis report does not reflect the correct quantity manufactured or the correct cost per unit. ## Solution: - Updated the calculation of `mo_qty` to sum the 'quantity' field instead of `product_qty`. opw-4118237