Monday, November 18, 2024
25 changes · 17.0
Enhancements to existing features
This update streamlines the process of handling spreadsheet data, eliminating redundant encoding and decoding steps. This optimization reduces the time it takes to process spreadsheets, specifically improving performance by approximately 70ms. This change enhances the overall responsiveness of the Enterprise module.
Original PR description
This commit removes unnecessary base64 encoding and decoding operations when computing `spreadsheet_data` which contains the serialised json data. Previously, the binary field `spreadsheet_binary_data` was base64-encoded (as is the case with all binary fields), meaning the file was read, encoded to base64, and assigned to `spreadsheet_binary_data`. To retrieve the serialized JSON, it then had to be decoded again. By avoiding this redundant steps, with a spreadsheet file of 16.7Mb, we optimize the time spent in `_compute_spreadsheet_data`: before: ~100ms after: ~30ms Task: 4256155
This update ensures the redirect button label is always present when a redirect URL is set in Odoo Enterprise. This simplifies the user interface by hiding the 'Close' button when a redirect isn't needed, improving clarity and usability. The change also updates the default redirect URL text from 'Open Link' to 'Close'.
Original PR description
This commits makes the redirect button label mandatory when there is a specified redirect URL. It also improves the hiding of the redirect label field when there is no redirect URL specified. task-4174120
Resolved issues and error corrections
Web notifications for group chat messages now display the actual group chat name instead of an incorrect '#False' title. This helps recipients quickly understand which conversation the notification belongs to and reduces confusion.
Original PR description
Current behavior before PR: When a user posted a message in a group chat, the web notification displayed `#False` as the title. This occurred because `record_name` was used as the title but it was empty for channels with `channel_type = 'group'`, as the displayName name is calculated on the UI side when displaying chat in Discuss. Before / After <div style="display: flex;"> <img src="https://github.com/user-attachments/assets/7ad2de52-8cef-41a7-8d63-b19d718725ff" width="48%" style="margin-right: 4%;" /> <img src="https://github.com/user-attachments/assets/452fac6e-3a79-4e53-a09c-4fad57b44856" width="48%" /> </div> Desired behavior after PR is merged: The title of the web notification now correctly displays the group chat name, ensuring recipients see accurate and complete group titles in notifications. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
This update makes the time off splitting process return the newly created leave records after a split. It helps other Odoo modules build on this behavior more reliably without changing the day-to-day user experience.
Original PR description
Return newly created leaves after calling `hr.leave._split_leaves()` to improve inheritability by other modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Updated the regex of the youtube videos to accept some of the latest links as shorts and lives, following the same behavior as in web_editor. Specifically the links generated using the share button. Steps to reproduce: 1. Install eLearning and create a course. 2. Add a new content as video. 3. Take the Youtube livestream url from share > copy. 4. Use this link for the video slide in the course. opw-4278811 I confirm I have signed the CLA and read the PR guidelines at www.odoo.co
Original PR description
Updated the regex of the youtube videos to accept some of the latest links as shorts and lives, following the same behavior as in web_editor. Specifically the links generated using the share button. Steps to reproduce: 1. Install eLearning and create a course. 2. Add a new content as video. 3. Take the Youtube livestream url from share > copy. 4. Use this link for the video slide in the course. opw-4278811 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#185518
This fix adds the missing setup data needed for restaurant and self-order point-of-sale checks to run reliably. It helps prevent build failures in configurations without demo data and in community multi-build environments, improving release confidence without changing customer-facing behavior.
Original PR description
This commit for fixing the failure of in No demo build and Multi-build in community. Tour was introduce in https://github.com/odoo/odoo/pull/162119/commits/832fae8dc2c879cfd1dfb57cfdeb5a5c0c3eebef
A control used to prevent automatic activity creation now works again for employee leave processes. This avoids unwanted follow-up tasks being created when the system or users explicitly request they be skipped.
Original PR description
Since we moved away from activity_schedule in odoo/odoo#107804, the mail_activity_automation_skip context doesn't work anymore and activities get created regardless We add a check at the beginning of the function to make the context flag work again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Small product images and SVG images without built-in dimensions now display consistently at the expected product image size. This prevents missing or tiny images on product forms, improving the visual reliability of product records.
Original PR description
Problem: If the product image size is smaller than `$o-form-picture-size` or is an SVG without intrinsic size, it uses the original image size or displays as 0px in the case of SVGs without intrinsic size. The desired behavior is for the image to always display at `$o-form-picture-size`. Steps to reproduce: - Add a small or SVG image without intrinsic size to a product. - The image will not display correctly. opw-4119433 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Indonesian e-Faktur invoice form now properly shows the transaction code field label and value. This prevents confusion when creating invoices for Indonesian PKP customers and helps users complete tax-related invoice information more clearly.
Original PR description
Previously, the l10n_id_kode_transaksi field was invisible on the invoice form view. This is because the xpath was incorrectly done. This solution is inspired to what is already done in 18.0. Steps to reproduce: - Install l10n_id_efaktur - Select ID company - Create an Indonesian customer with a VAT number, and select boolean field PKP - Create an invoice, select this customer, and add a line with a tax -> the field below Customer has no display name, but the value is visible opw-4315901 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents the contact display widget from crashing for users browsing with Safari. It improves reliability when viewing contact information in Odoo, reducing disruption for affected users.
Original PR description
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
Mail no longer adds extra query text to URL-based attachments. This prevents links that already contain their own query details from being altered incorrectly, helping attachment links open as intended.
Original PR description
Before this PR, query strings were added to the attachment of URL types. This is incorrect since those URLs can already have query strings, and the added query strings don't make sense for non-binary attachments.
Users can now safely use Shift-click selection in list views after moving to another page. This prevents an unexpected error screen and keeps multi-record selection reliable when browsing paginated lists.
Original PR description
Steps:
- Open any list view with more than 1 page
- apply a limit if you don't have enough records
- Toggle first record checkbox
- Click on `o_pager_next`
- Shift click on another record
- Traceback
The problem arises when you change page after using range-selection with the shift key.
Indeed, range-selection uses `this.lastCheckedRecord`, which is the last record clicked on to start the selection, except that if you change page (and if you use a filter), this element may no longer be in the current page.
Currently, the code just checks that this element exists before attempting to create a selection by range.
The fix consists in checking that this element exists in the list of records before attempting anything.
opw-4284708This fixes an issue where German electronic invoice XML files could not be properly detached from an invoice's chatter after sending and printing. Users can now remove the attachment link consistently for both PDF and XML invoice versions, keeping invoice records cleaner and avoiding confusing leftover attachments.
Original PR description
Steps to reproduce: Install the app l10n_de and switch to a German company Create an invoice Send & Print the Invoice with XRechnung PDF and XML versions are stored as attachments in the record (Chatter). Try to delete them form the chatter. When deleting them, the unlink function only removes the link to account.move fields and saves the attachment with a new name: "document detached by user on date". This works fine for the PDF version but not for XML one. This is because `ir_attachment.res_field` is set to `ubl_cii_xml_file` for XML version of the attachment, but when filtering to detach them the filter looks for `ir_attachment.res_field` that are set to `ubl_cii_xml_id`. opw-4273836 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
OdooBot chat messages no longer stay incorrectly marked as unread after a user opens the conversation. This improves message status accuracy and reduces confusion for users relying on unread indicators.
Original PR description
Before this commit, messages sent by OdooBot would remain unread. 1. Log in as demo user 2. Open OdooBot chat, remains unread This happens because the `_set_last_seen_message` method called by the OdooBot reply logic sets the message as seen for the user. This results in the message being marked as read before it is received, preventing it to be marked as read by the client. This commit fixes the issue by preventing the message to be mark as read if the author is not the current user. Also added missing `message_unread_counter_bus_id` from `assignedDefined` that would prevent it to be set by record inserts. task-4295630 opw-4316799
This fix prevents employees from accidentally registering the same check-in or check-out twice by closing the attendance pop-up immediately after the button is clicked. It helps keep attendance records accurate and reduces the need for manual corrections.
Original PR description
Before this commit, a user was able to double click on check-in/check-out with the template's reload. To avoid that the pop-up will be automatically closed when the button will be clicked. 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
Fixed an issue where adding a custom filter to a project burndown chart incorrectly showed an invalid domain error. This lets users refine burndown chart data without being blocked by a validation problem.
Original PR description
Steps to reproduce: - Project app > Any project > ':' Menu > Burndown Chart - Add any custom filter > Click Add - Sticky Note 'Domain is invalid. Please corect it' The burndown chart view is…
Steps to reproduce: - Project app > Any project > ':' Menu > Burndown Chart - Add any custom filter > Click Add - Sticky Note 'Domain is invalid. Please corect it' The burndown chart view is dependent on groupby argument 'date', if you try to remove the groupby block from the search bar an error message will appear to stop you. This works properly when passing through `web_read_group` but here we take a slightly different path. When adding a custom domain to the search bar, we validate that domain by simulating an SQL query using said domain. This request is made independantly of `web_read_group` since it's not intended to be displayed, hence why we don't have the groupby argument. This causes the query building process to fail, so a default value is needed to restore the flow. Since we only want to validate the domain it does not matter what we put in so I used the default search value. opw-4300254 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update corrects a display issue where localization fields from the Uruguay localization (l10n_uy_edi) were incorrectly showing on invoices for other countries. This ensures invoices are presented accurately and consistently, regardless of the selected country setting within Odoo Enterprise. The fix improves the user experience and data integrity.
Original PR description
… other country's invoices
This update enhances the error messages displayed when registering the UY EDI proxy in Odoo. The change provides more detailed information to users, making it easier to troubleshoot issues and resolve registration problems. This improves the overall user experience and reduces potential delays caused by unclear error messages.
This update resolves issues where tests were failing due to reliance on demo data. The changes remove this dependency, making tests more reliable and faster to run, ultimately improving the stability of the Odoo Enterprise platform. Several modules were affected, including stock, accounting, and sales.
Original PR description
Forward-Port-Of: odoo/enterprise#72823
This update corrects missing translations for the Modelo349 tax report specifically for Spanish businesses. Ensuring accurate reporting in Spanish is now a priority, improving compliance and user experience for our Spanish-speaking customers.
Original PR description
This commit fix some missing translations for the modelo349 tax report in spain. no-task
fiscalyear_last_day and fiscalyear_last_month can be defined in order to use fiscal years not aligned on the civil calendar. In enterprise, it works fine (it's overridden there to add functionalities), however, community forgot to make use of these fields, even though they are declared in it. Forward-Port-Of: odoo/odoo#187250
Original PR description
fiscalyear_last_day and fiscalyear_last_month can be defined in order to use fiscal years not aligned on the civil calendar. In enterprise, it works fine (it's overridden there to add functionalities), however, community forgot to make use of these fields, even though they are declared in it. Forward-Port-Of: odoo/odoo#187250
Forward-Port-Of: odoo/odoo#185343
Original PR description
Forward-Port-Of: odoo/odoo#185343
Partner was not created during import because `bank_details` was an iterator instead of a list/collection. So once it was consummed for the search, nothing was created. Moreover, this function is called in the context of a file import which may have a default journal_id which is not the same as the journal of the partner. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187415
Original PR description
Partner was not created during import because `bank_details` was an iterator instead of a list/collection. So once it was consummed for the search, nothing was created. Moreover, this function is called in the context of a file import which may have a default journal_id which is not the same as the journal of the partner. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#187415
Steps to reproduce: 1. Go to website --> forum 2. Click on "New Post," add a title/description, and post the question. 3. A pop-up appears --> close the pop-up. 4. Enter edit mode, resulting in a traceback. Before this fix, the `publicWidget` responsible for attaching the modal in DOM was bound to the `body` element, which led to the removal of the `body` on `widget_stop_request` when trying to open the editor. This commit addresses the issue by creating a dummy element to bind the `Fo
Original PR description
Steps to reproduce: 1. Go to website --> forum 2. Click on "New Post," add a title/description, and post the question. 3. A pop-up appears --> close the pop-up. 4. Enter edit mode, resulting in a traceback. Before this fix, the `publicWidget` responsible for attaching the modal in DOM was bound to the `body` element, which led to the removal of the `body` on `widget_stop_request` when trying to open the editor. This commit addresses the issue by creating a dummy element to bind the `ForumShare` publicWidget instead of the `body`, preventing its removal. Additionally, an event listener has been added to remove the modal from the DOM after it's closed, ensuring no further issues during the editor opening process. task-3834378 Forward-Port-Of: odoo/odoo#181643
Creating new customers inside a pos session without all fields filled, in the backend those fields would be marked as set Steps to reproduce: ------------------- * Create a new customer in the shop and only fill out its name * In the backend, go in the **Contact** App * Create a filter: Tax Id is not set > Observation: The customer just created does not appear in that filter. It is considered as having a tax id (vat) set. Why the fix: ------------ When we take a look at the record
Original PR description
Creating new customers inside a pos session without all fields filled, in the backend those fields would be marked as set Steps to reproduce: ------------------- * Create a new customer in the shop and only fill out its name * In the backend, go in the **Contact** App * Create a filter: Tax Id is not set > Observation: The customer just created does not appear in that filter. It is considered as having a tax id (vat) set. Why the fix: ------------ When we take a look at the record raw data the vat is set to `""` which is considered as set. Comparing this with a contact created from the contact app, the only fields that are set to `""` are the computed fields relying on data which is set to false. Everything else is just set to false. opw-4276003 Forward-Port-Of: odoo/odoo#186883