Monday, March 18, 2024
24 changes · saas-17.1
Resolved issues and error corrections
This update fixes an issue where the 'dropship' option was missing from the 'Deliver To' dropdown in RFQs. The change ensures users can correctly select dropshipping for new purchase orders, aligning with previous functionality. This improves the user experience for dropshipping workflows.
Original PR description
**Current behavior:** When making a new RFQ, dropship is not an available selection for the 'Deliver To' option. **Expected behavior:** As on previous versions, you should 'dropship' should be selectable here which reveals a sub-selection to select the customer who should receive the shipment. **Steps to reproduce:** 1. Enable `Dropshipping` in Purchase settings as well as `Storage Locations` in Inventory settings 2. Create a new RFQ, observe that in the 'Deliver To' dropdown there is no way to select a dropship option **Cause of the issue:** Dropshipping was made into a discrete `stock.picking.type`.code and the domain that constrains the selection menu options was not updated to accomodate this change. **Fix:** Update the domain to show picking types that have the dropship code. opw-3764617 Forward-Port-Of: odoo/odoo#155529
This update resolves a bug in the Website Editor that prevented users from correctly resizing columns within the editor iframe. The issue stemmed from a change in how the editor's preview was structured, specifically after version 16.0. This fix ensures proper column resizing functionality.
Original PR description
**[FIX] web_editor: fix resize column outside of the iframe** Steps to reproduce the bug: - Enter Website edit mode. - Drag and drop an "Image-Text" snippet onto the page. - Grab the right edge of…
**[FIX] web_editor: fix resize column outside of the iframe** Steps to reproduce the bug: - Enter Website edit mode. - Drag and drop an "Image-Text" snippet onto the page. - Grab the right edge of the right column of the snippet and extend it to the right until it overflows the iframe and hovers over the editor panel. - Release the mouse, then hover over the iframe again. - Bug: The "mouseUp" event was not triggered, and the column resizing still occurs. This bug occurs because the "mouseUp" event was attached to the <body> of the iframe and not to the window of the iframe. Indeed, for mouse events to be triggered outside of an iframe, they need to be attached to the iframe's window. This fix is not necessary before the version 16.0. Before V16.0, the page preview and the options panel shared the same window. It's only since this commit [1], where we moved the page preview into an iframe, that the bug occurs. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b taks-3562970 Forward-Port-Of: odoo/odoo#157627 Forward-Port-Of: odoo/odoo#156529
This update ensures website images automatically adjust to different screen sizes, preventing overflow issues when the default thumbnail style is removed. By adding the 'img-fluid' class, images will now scale correctly, providing a better user experience across devices. This is a simple fix that improves visual consistency.
Original PR description
Add `img-fluid` class so that image remains responsive when `Shape: Thumbnail` is not applied. task-3266862 Forward-Port-Of: odoo/odoo#118916
This update fixes an issue where changing the label of a link within the website editor would remove any associated styling. The fix ensures that style changes to link labels are correctly preserved, improving the user experience when customizing website content. This resolves a visual inconsistency and allows for more flexible content design.
Original PR description
Issue: ====== When you update the link button label from the sidebar it loses its style. Steps to reproduce the issue: ============================= - Got to website editor - Insert a text block - Added a button in the text block and any label - Click on the button to edit it from the sidebar - Change font size or font color or any style you want - Update the label - The style is lost Origin of the issue: ==================== When updating the label, we search for the first child that has that text, but when we have `ZWS start` it will be considered as the first child and then we update the inner text of the `a` element so we loose the span of the text which has the custom styles. Solution: ========= We search for the first child which is not `ZWS` task-3721686 Forward-Port-Of: odoo/odoo#155038
This update fixes a technical issue preventing users from correctly configuring newsletter subscription blocks. Specifically, the 'Display Thanks Button' option was causing errors when combined with certain 'On Success' settings. This change ensures a smoother user experience when setting up newsletter forms.
Original PR description
When configuring a Newsletter Block snippet to display a subscription form, the option to decide whether a message must be displayed is only available when "On Success" is set to "Show Message" through the button beside that option. Unfortunately, the general option for the "Thanks" message is not disabled for other "On Success" values, for which no outcome can display a message. Trying to combine these triggered an error. This commit fixes this problem by hiding the "Display Thanks Button" option when the "Form Subscription" template is selected. Steps to produce: - Install `website_mass_mailing`. - Drop a "Newsletter Block" snippet. - Change template to "Form Subscription". - Click on "Subscribe" button. - Change "On Success" to "Nothing". - Click on "Display Thanks Button". => An error was displayed. task-3748574 Forward-Port-Of: odoo/odoo#157517
This update resolves an issue where submenus wouldn't display properly when the website's navigation switched to 'Hover' mode. The fix adjusts the offset settings within Bootstrap to ensure submenus appear as expected when hovering over menu items, improving the user experience.
Original PR description
Steps to reproduce: - Go to website > Switch the navbar to "Hover" mode (see: `Submenus` > `On Hover`). - Create a submenu and drag it under a navbar menu item > The submenu will always disappear…
Steps to reproduce: - Go to website > Switch the navbar to "Hover" mode (see: `Submenus` > `On Hover`). - Create a submenu and drag it under a navbar menu item > The submenu will always disappear before being reached after the hover. Since Bootstrap does not provide a built-in way to use the "hover" as a dropdown trigger, a custom implementation was used to handle the "show on hover" scenario (see: `hoverableDropdown`). This code also relies on the submenus being correctly positioned on hover. Starting from [1], the public `menuDirection` widget was completely removed (used to align website navbar submenus in an optimal way) and was replaced by a patch that allows Bootstrap to position dropdowns dynamically inside a navbar (using Popper). A side effect of this patch is the use of BS default offset config to set the positions, leading to a small gap that automatically hides the submenus when hovered. The goal of this commit is to prevent this issue by simply forcing the offset to 0 when the dropdowns are inside a navbar. [1]: https://github.com/odoo/odoo/commit/8689241f86e2d4ddb4e4510951f92b80e115b914 opw-3766516 Forward-Port-Of: odoo/odoo#157804 Forward-Port-Of: odoo/odoo#157281
This update fixes an issue where PDF attachments uploaded via the chatter's drag-and-drop feature weren't correctly displayed in the PDF viewer. The fix ensures that attachments uploaded through the dropzone are properly loaded, improving the user experience when viewing invoices.
Original PR description
Steps to reproduce ================== - Go to Accounting > Customer Invoices - Open any record with no attachments - Drag & drop a pdf attachment on the chatter => The PDF viewer is empty Cause of the issue ================== When uploading an attachment from the FileUploader, the parent view is reloaded. This is not the case when uploading an attachment from the dropzone. opw-3748853 Forward-Port-Of: odoo/odoo#157232
This update fixes a bug where the product configurator wasn't shown for products with only custom attributes, preventing users from customizing these items when adding them to their cart. Now, the configurator will automatically open for any product with configurable attributes, streamlining the customization process for simple products.
Original PR description
Before this commit, the product configurator dialog was not shown when adding to the cart, a product with only no variant attribute values, using the buy button on the '/shop' page. Now, if the product has configurable attributes, the product configurator dialog is shown. opw-3736469 Forward-Port-Of: odoo/odoo#157737
This update resolves an issue where the calendar month view incorrectly displayed event start times before 9:00 AM. The fix ensures that event start times are accurately shown, regardless of the event creation time, by setting the event duration. This improves the overall usability of the calendar feature.
Original PR description
The `test_calendar_month_view_start_hour_displayed` makes sure that start hour is displayed in calendar month view. The test was failing before 09:00 AM because after creating the event, it sets the start time to 10:00 without setting the stop time or duration. So when creating this event before 09:00 with a default duration of 1 hour, the stop time would be before 10:00, and it would raise an error. This commit aims to fix this issue by adding a step to set the duration of the event, avoiding the potential error. fixes runbot-59850 Forward-Port-Of: odoo/odoo#157263
A technical issue preventing users from opening the P&L report when using a specific grouping option has been resolved. This fix corrects a typo in a database constraint, ensuring the report functionality works as intended. The change was a result of a minor oversight during a report improvement.
Original PR description
Steps to reproduce: - accounting report > P&L > net profit: set the 'groupby' to 'account_id' - save - try to open the P&L -> Invalid Operation Cause: During the improvement of the report a small change has been forgotten The `groupby` has been changed to `user_groupby` https://github.com/odoo/enterprise/commit/99c82df3d24209de12e2442fd15d2472d9e968f6#diff-bc8d6ed5aa6dab6b7ba46566170cdb7297104580d9b8d6c7081f72e3c2a5a9c4R187-R191 and we forgot to change the `api.constrains`'s args opw-3714626 Forward-Port-Of: odoo/odoo#156879
This update ensures that employees and users automatically have an avatar displayed when a picture isn't manually set. Previously, a blank space was shown. This enhancement provides a more professional and consistent user experience, especially for new internal users.
Original PR description
Improve avatar picture : if no picture is set, initials will be displayed. task : 3637523 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#147446
This update fixes an issue where notes on sale orders weren't consistently formatted in the sale order report. The change ensures that notes are properly aligned and readable, improving the clarity and professionalism of the reports generated for sales data. This enhances the user experience when reviewing sales information.
Original PR description
opw-3725405 Forward-Port-Of: odoo/odoo#157859
This update fixes a visual issue where 'false' was incorrectly displayed next to recipients in the system when their email address was missing. Now, users without email addresses are shown with their name followed by '(no email address)', improving the user experience and ensuring accurate recipient information is presented.
Original PR description
'false' is displayed in the popover next to the recipients in the absence of an email address as well as the title of the recipients If the partner has no email, it should show something like "[name] (no email address)]" task-3787703 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#157850 Forward-Port-Of: odoo/odoo#157431
Miscellaneous changes
Versions -------- - saas-16.4+ Steps ----- 1. Create a pricelist wich shows discounts; 2. create a SO using this pricelist; 3. add a non-subscription-based product; 4. modify its discount; 5. confirm the SO. Issue ----- The manually modified discount gets overwritten by the pricelist one. Cause ----- Commit 71f15a9af4063bfb960b4706c3f237e69dd28e16 started protecting the discount field in `action_confirm` to protect it from recomputation when a start date would be added. This
Original PR description
Versions -------- - saas-16.4+ Steps ----- 1. Create a pricelist wich shows discounts; 2. create a SO using this pricelist; 3. add a non-subscription-based product; 4. modify its discount; 5. confirm the SO. Issue ----- The manually modified discount gets overwritten by the pricelist one. Cause ----- Commit 71f15a9af4063bfb960b4706c3f237e69dd28e16 started protecting the discount field in `action_confirm` to protect it from recomputation when a start date would be added. This was adequate for earlier versions, but commit 4ac62c700826ce1b38307641f91b7c9ce4f91d54 added a line setting `subscription_state` to `False` for any SO that isn't an upsell or subscription. As this field is also a dependent of `_compute_subscription`, a recompute is triggered. Solution -------- Move the `with self.env.protecting` clause up, before the for-loop which modifies `subscription_state`. opw-3646915 Forward-Port-Of: odoo/enterprise#58437
Ensure an avatar is generated based on the employee/user name if no image is provided at the record creation (for internal users only). TaskID: 3637523 Forward-Port-Of: odoo/enterprise#58646
Original PR description
Ensure an avatar is generated based on the employee/user name if no image is provided at the record creation (for internal users only). TaskID: 3637523 Forward-Port-Of: odoo/enterprise#58646
Replace outdated realpath usage with odoo tools.file_open. Allows file_open to locate file from addons path rather than looking up through realpath. This will resolve potential issues with realpath not finding the proper path of files in certain situations (like a symlink). Worth noting that file_open uses abspath instead of realpath anyway. Forward-Port-Of: odoo/enterprise#58766 Forward-Port-Of: odoo/enterprise#58305
Original PR description
Replace outdated realpath usage with odoo tools.file_open. Allows file_open to locate file from addons path rather than looking up through realpath. This will resolve potential issues with realpath not finding the proper path of files in certain situations (like a symlink). Worth noting that file_open uses abspath instead of realpath anyway. Forward-Port-Of: odoo/enterprise#58766 Forward-Port-Of: odoo/enterprise#58305
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on Confirm then Plan 4. Go to Shop Floor, click on "Register [the By-Product]" - Not the button with the units 6. Click on either "Import Lots" or "Generate Serials" 7. Enter a Lot/Serial number and click on "Generate" 8. Traceback error: > loc_dest = self.env['stock.location'].br
Original PR description
### Steps to reproduce issue: 1. Create a Product with Lots/Serials tracking 2. Create a BoM with an operation and add Product as By-Product 3. Create a Manufacturing Order using the BoM, click on…
### Steps to reproduce issue:
1. Create a Product with Lots/Serials tracking
2. Create a BoM with an operation and add Product as By-Product
3. Create a Manufacturing Order using the BoM, click on Confirm then Plan
4. Go to Shop Floor, click on "Register [the By-Product]"
- Not the button with the units
6. Click on either "Import Lots" or "Generate Serials"
7. Enter a Lot/Serial number and click on "Generate"
8. Traceback error:
> loc_dest = self.env['stock.location'].browse(default_vals['location_dest_id'])
> KeyError: 'location_dest_id'
### Explanation:
When going through the Shop Floor, the context is missing a lot of elements that are normally passed in the manufacturing order form. https://github.com/odoo/odoo/blob/338173e231355d265ddc88bcef5e9b0a608e248e/addons/mrp/views/mrp_production_views.xml#L432-L437
### Suggested fix:
`default_dest_location_id` is the missing element causing the traceback but fixing it reveals that `default_location_id` is also missing, we then add it to the context as well.
Test is done in Enterprise while fix is in Community.
opw-3719439
Forward-Port-Of: odoo/enterprise#57789In https://github.com/odoo/enterprise/pull/58054 by mistake one record has been removed, and one xml id has been changed. Which is errorious for stable. To solve the issue, we add back records. We added back l10n_lu_employees_atn_transport, in case it is referenced, but we make sure that it won't be added in in the payslip computation. Forward-Port-Of: odoo/enterprise#58658
Original PR description
In https://github.com/odoo/enterprise/pull/58054 by mistake one record has been removed, and one xml id has been changed. Which is errorious for stable. To solve the issue, we add back records. We added back l10n_lu_employees_atn_transport, in case it is referenced, but we make sure that it won't be added in in the payslip computation. Forward-Port-Of: odoo/enterprise#58658
Before this commit, when a salesperson canceled a renewal quotation, and reset it to draft, the subscription_state '2_renewal' was lost. It would affect the sale_order_log upon confirmation of that renewal and the sale.order.log would not be correct. In that case, there would be a missign transfer log. taskid: 3651477 Forward-Port-Of: odoo/enterprise#58490
Original PR description
Before this commit, when a salesperson canceled a renewal quotation, and reset it to draft, the subscription_state '2_renewal' was lost. It would affect the sale_order_log upon confirmation of that renewal and the sale.order.log would not be correct. In that case, there would be a missign transfer log. taskid: 3651477 Forward-Port-Of: odoo/enterprise#58490
Currently, we have some code repeating in SixDriver, WorldlineDriver_L and WOrldlineDriver_W. The goal of this PR is to move this code to a parent class for easier maintenance and better code strcture Additionally, it applies the code to every ctypes dependant terminal driver, adding some features like "smart sleep" or rejecting double request processing when the terminal is busy for every single of them task-3707945 Forward-Port-Of: odoo/enterprise#58368 Forward-Port-Of: odoo/enterpri
Original PR description
Currently, we have some code repeating in SixDriver, WorldlineDriver_L and WOrldlineDriver_W. The goal of this PR is to move this code to a parent class for easier maintenance and better code strcture Additionally, it applies the code to every ctypes dependant terminal driver, adding some features like "smart sleep" or rejecting double request processing when the terminal is busy for every single of them task-3707945 Forward-Port-Of: odoo/enterprise#58368 Forward-Port-Of: odoo/enterprise#57064
Add an userError to prevent the user selecting quantity quality check Type with manufacturing operation types. opw-3770822 Forward-Port-Of: odoo/enterprise#57802
Original PR description
Add an userError to prevent the user selecting quantity quality check Type with manufacturing operation types. opw-3770822 Forward-Port-Of: odoo/enterprise#57802
Steps to reproduce: - Create a child company/branch - Create a child Bank Journal for the Child Company - Set on demo use the default company as the child company - Connect with demo - In the Accounting Dashboard try to open the Child Bank Issue: Access Error opw-3746324 Forward-Port-Of: odoo/enterprise#57145
Original PR description
Steps to reproduce: - Create a child company/branch - Create a child Bank Journal for the Child Company - Set on demo use the default company as the child company - Connect with demo - In the Accounting Dashboard try to open the Child Bank Issue: Access Error opw-3746324 Forward-Port-Of: odoo/enterprise#57145
Steps to reproduce: ------------------- - being in Europe/Brussel timezone; - create a contract based on attendance from 1st to 31st January; - create two attendancescfot the employee linked to this contract: - 5th January from 8am to 4pm for example (A) - 31st January from 00:30am to 8:30pm (B) - create a payslip for the employee from 1st to 30th January; Issue: ------ The attendance count on the smart button on the payslip and the number of records on the list view (when th
Original PR description
Steps to reproduce: ------------------- - being in Europe/Brussel timezone; - create a contract based on attendance from 1st to 31st January; - create two attendancescfot the employee linked to this…
Steps to reproduce:
-------------------
- being in Europe/Brussel timezone;
- create a contract based on attendance from 1st to 31st January;
- create two attendancescfot the employee linked to this contract:
- 5th January from 8am to 4pm for example (A)
- 31st January from 00:30am to 8:30pm (B)
- create a payslip for the employee from 1st to 30th January;
Issue:
------
The attendance count on the smart button on the payslip and the number of records on the list view (when the smart button is clicked) are not the same.
Cause:
------
The domain that determines attendance uses a condition on the `check_in` field, which is a datetime field, and compares it with a date. For attendance B, we will compare 2024-30-01 23:30:00 with 2024-30-01 23:59:59.
As a result, attendance B will validate this condition.
Solution:
---------
Make this information consistent by using the same logic and taking account of timezones.
Add a method that allows you to retrieve all attendances linked to a payslip. Use this to generate the domain that will select the correct records (based on their id) in the list view.
Note:
-----
`_read_group` manages timezones and therefore
`check_in:day` for attendance B returns 2024-31-01.
opw-3794161
Forward-Port-Of: odoo/enterprise#58587
Forward-Port-Of: odoo/enterprise#58431Steps to reproduce: - Install l10n_hk_hr_payroll Current behaviour: - Time off type name contain year value Expected behaviour: - Time off type name should not contain year value Explanation: - Year changed will not update the time off type name, therefore better to not include the year value inside the name X-original-commit: 224aa76 Forward-Port-Of: odoo/enterprise#58717
Original PR description
Steps to reproduce: - Install l10n_hk_hr_payroll Current behaviour: - Time off type name contain year value Expected behaviour: - Time off type name should not contain year value Explanation: - Year changed will not update the time off type name, therefore better to not include the year value inside the name X-original-commit: 224aa76 Forward-Port-Of: odoo/enterprise#58717