Tuesday, August 27, 2024
19 changes · 17.0
Enhancements to existing features
Users can now see a caret when hovering over many-to-one and many-to-many selection fields, making it clearer that autocomplete choices are available. This improves discoverability and reduces confusion when adding related values in configuration rules.
Original PR description
Before this commit, the user was not able to see the caret icon to indicate autocomplete dropdown in many2one and many2many values. Steps to reproduce: - open documents and then navigate to actions from the configuration. - click on any action and add a rule for any many2many field. - then try to add many2many values to that rule. Observed behavior: No caret is displayed when adding the many2many values. Expected behavior: Now a caret is displayed on hover indicating a dropdown while adding many2many and many2one values. After this commit, the user will be able to see the caret icon to indicate autocomplete dropdown in many2one and many2many values. Task-3777903
The Point of Sale IoT image now includes simple shortcuts for starting, stopping, and restarting services. This makes device maintenance quicker and reduces the need for staff or support teams to use longer system commands.
Original PR description
Added start/stop/restart aliases to the IoT image to simplify the use of systemctl commands.
Odoo now generates IoT Box connection links using regular web address parameters instead of pipe separators. This makes the links more compatible with standard tools and easier to process reliably.
Original PR description
URL generated by Odoo to connect an IoT Box used pipes to separate important data. We now use regular search params: `?param1=value1¶m2=value2`. Community PR: [https://github.com/odoo/odoo/pull/177936](https://github.com/odoo/odoo/pull/177936) Task: 4116429
This update removes an unnecessary cursor indicator that was appearing when hovering over selection fields in the sidebar and report editor areas. The cursor was creating a visually awkward effect, and this change provides a cleaner, more polished user experience when working with these interface elements.
Original PR description
This commit ensures that the caret is not displayed on hover in `RecordSelector` , `MultiRecordSelector` components when they are present in sidebars and report editors. Displaying the caret in sidebar RecordSelectors creates an awkward and visually unappealing effect. This issue arises because, in sidebars, the entire input area is a RecordAutocomplete with padding and margin. Task-3777903
Resolved issues and error corrections
Installing the Spanish Point of Sale localization now checks whether the required sales journal already exists before creating it. This prevents setup failures for Spanish companies that already have a journal with the same code, making module installation smoother.
Original PR description
When the l10n_es_pos module is installed, the post_init_hook attempts to create an account journal for each Spanish company using a chart template. However, the method does not verify whether the journal already exists for the company, leading to potential duplication errors. Steps to Reproduce: - Create a journal for a Spanish company with the code 'SINV'. - Install the Point of Sale module and the l10n_es_pos module. - An error is raised because the journal 'SINV' already exists. Solution: This fix adds a check to ensure the journal does not already exist before attempting to create it. opw-4108466
Miscellaneous changes
When using a fiscal position that map account. If you use automatic stock valuation and make an order in the PoS, the account used where not mapped correctly for all the account move lines. Steps to reproduce: ------------------- * Turn on automatic stock valuation for the category `All` * The category use account A and account B for expense and income * Create a fiscal position that matches account A and B to any other account * Open PoS and make an order > Observation: Go back to the
Original PR description
When using a fiscal position that map account. If you use automatic stock valuation and make an order in the PoS, the account used where not mapped correctly for all the account move lines. Steps to reproduce: ------------------- * Turn on automatic stock valuation for the category `All` * The category use account A and account B for expense and income * Create a fiscal position that matches account A and B to any other account * Open PoS and make an order > Observation: Go back to the order and look at the move lines linked to the order. One of the lines still use an account that hasn't been mapped Why the fix: ------------ We make sure that when creating the stock valuation lines the account are correctly mapped using `order_id.fiscal_position_id.map_account` opw-4086609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177369
This fix prevents project task searches from returning unintended results when the main search criteria is empty. Additional filters will no longer broaden results on their own, helping keep task-related views and selections accurate.
Original PR description
When `_search_on_comodel` is called with no `domain` and no `additional_domain`, it returns `False` (see added documentation for more explanation). However, when it is called with no `domain`, but an actual `additional_domain`, it returns something because both domains are merged before the `search`. Yet the `additional_domain` should filter the result even more, not expand it. Fix: First return `False` if there's no `filtered_domain`. Otherwise, and only then, merge both domains before the `search`. task-3251630 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The point of sale IoT device build now includes an extra dependency needed by some files to run correctly. This helps prevent setup or runtime failures in newly built device images.
Original PR description
Somes files need freezegun to run in master. We add this module in the new image 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
This fix prevents Odoo from changing empty template elements into a different format when template inheritance moves content around. It helps keep generated views consistent and avoids unnecessary differences or display issues after Studio-related template changes.
Original PR description
When calling apply_inheritance_specs and moving a node (before after or inside), we merge the text content of the adjacents nodes. If the parent and target node both have no text, we should not set the text to an empty string. When a node has no text, it is serialized as follows: `<node/>` But if it has an empty string, it has the following representation: `<node></node>` In the linked PR, we now apply the studio inheritance manually, and since we use the resulting tree directly instead of parsing the result, the `remove_blank_text` option of the parser has no effect. This causes existing tests to show some difference. opw-3819667
Reloading a sale order in the Point of Sale now keeps each POS order line connected to its original sale order line. This prevents missing references that could affect order tracking, reporting, or follow-up processing.
Original PR description
Before this commit, reloading a sale order imported into the POS would result in the loss of the link between the POS order line and the sale order line. opw-4120046 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The help text for quote attachments now clearly explains that documents added inside a quote also appear on the sale order PDF. This prevents customer confusion by matching the description to the actual behavior.
Original PR description
Changed the note on the attached_on field to properly note that the Inside quote option will include the document on the pdf of the quotation and sale order instead of just the quotation. Previously only said that it would be on the quote and caused confusion for customers when it would also show on the sale order. opw-4106894 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update removes an unnecessary error notification that was appearing when users clicked the "Pair" button to connect IoT devices. Previously, users would see a "No new IoT Box found" message even when the pairing process was working correctly. This fix improves the user experience by eliminating this confusing notification.
Original PR description
Once we clicked the "Pair" button, a notification showing "No new IoT Box found." was displayed. We want to avoid that.
This fix removes portal users from appearing in the assignee search dropdown when assigning tasks in the Project module. Portal users cannot be assigned to tasks, so filtering them out provides a cleaner and more accurate user experience when selecting task assignees.
Original PR description
This commit fixes the group_expand in porject_entreprise when searching for a assignees (thus on the res.users model). The problem was that the portal users were also displayed, which makes no sense as they cannot be assigned to tasks. taskid:3703637
This update fixes the formatting of debit/credit indicators in German tax reports exported to CSV format. The letters in column B of DateV exports are now properly displayed in uppercase, ensuring compliance with German accounting standards and improving compatibility with accounting software that processes these files.
Original PR description
The s/h in column B of the export of the csv for DateV should be in uppercase. task-4131986 Forward-Port-Of: odoo/enterprise#68844 Forward-Port-Of: odoo/enterprise#68795
This update fixes a technical issue in the room module where presence notifications were not being properly synchronized, causing test failures. The fix ensures that presence updates are only sent to users who need them, improving system reliability and test stability without affecting end-user functionality.
Original PR description
In the community counterpart of this PR, a debounce is added to the addition of bus channels in order to batch them as much as possible. The room module uses the `waitForSubscribe` bus helper but never awaits it which trigger errors in other tests. This PR fixes this issue. backport of https://github.com/odoo/enterprise/pull/68099 community: https://github.com/odoo/odoo/pull/176580
* PROPBLEM: since https://github.com/odoo/odoo/pull/173719 we have moved from init to post_init which will make timesheet_task_id of hr.leave.type can't set value because in post_init company.leave_timesheet_task_id will be set * SOLUTION: fill it in post_init instead 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 Fo
Original PR description
* PROPBLEM: since https://github.com/odoo/odoo/pull/173719 we have moved from init to post_init which will make timesheet_task_id of hr.leave.type can't set value because in post_init company.leave_timesheet_task_id will be set * SOLUTION: fill it in post_init instead 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 Forward-Port-Of: odoo/odoo#177008
Before this commit, recurrent events created with the 'All Day' option were duplicating the first event of the recurrence in Google side. This was happening because we wrongly synchronized the single event with Google before the synchronization of its recurrence (which already synchronize the events in Google side itself). After this commit, the recurrence is created normally using the 'All Day' option. We achieve that by skipping the useless synchronization we were doing in the single event:
Original PR description
Before this commit, recurrent events created with the 'All Day' option were duplicating the first event of the recurrence in Google side. This was happening because we wrongly synchronized the single event with Google before the synchronization of its recurrence (which already synchronize the events in Google side itself). After this commit, the recurrence is created normally using the 'All Day' option. We achieve that by skipping the useless synchronization we were doing in the single event: only the recurrence must be synchronized in this specific flow. task-3768121 Forward-Port-Of: odoo/odoo#166885
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the base_import module, import an XLSX file with empty cells - You will notice that all empty cells are read as "None" - Click on test, will give this error : "Column debit contains incorrect values (value: None)" Cause: ----- Since (#169245) openpyxl is used instead of xlrd for parsing xlsx files, the empty cells are parsed as None, not as empty string (as it was in xlrd). then this None is cast to t
Original PR description
Steps to reproduce: ------------------- - Have xlrd >= 2.0 and openpyxl 3.1.2 - Using the base_import module, import an XLSX file with empty cells - You will notice that all empty cells are read as "None" - Click on test, will give this error : "Column debit contains incorrect values (value: None)" Cause: ----- Since (#169245) openpyxl is used instead of xlrd for parsing xlsx files, the empty cells are parsed as None, not as empty string (as it was in xlrd). then this None is cast to the string "None", causing issues. Fix: ----- An additional check added to check if the cell is empty (value is None) and set it as empty string. opw-4132402 Forward-Port-Of: odoo/odoo#177770
Steps to reproduce: - Install timesheets, project and accounting - Enable "Analytic accounting" in accounting settings - Accounting > Accounting > Analytic items - Goup by Billing type - 2 different 'Materials' Change was made in 3d3f4109a06445b6ce9606770085c763ea206b35. This is ambiguous and clashes with the previously used items in 15.0. https://github.com/odoo/odoo/blob/ec106bfaaede527857a028bf1956b309aad3dc51/addons/sale_timesheet/models/account.py#L17 opw-4080234 --- I confir
Original PR description
Steps to reproduce: - Install timesheets, project and accounting - Enable "Analytic accounting" in accounting settings - Accounting > Accounting > Analytic items - Goup by Billing type - 2 different 'Materials' Change was made in 3d3f4109a06445b6ce9606770085c763ea206b35. This is ambiguous and clashes with the previously used items in 15.0. https://github.com/odoo/odoo/blob/ec106bfaaede527857a028bf1956b309aad3dc51/addons/sale_timesheet/models/account.py#L17 opw-4080234 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177388