Monday, September 30, 2024
148 changes
Enhancements to existing features
The Hoot library used by Odoo's web module has been moved out of development status and marked as version 1.0.0. This signals that the library is now considered stable for official use, improving confidence for teams relying on it in web testing and tooling.
Original PR description
Remove "dev" status of the Hoot library and marks it as the official first version. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This fixes a small usability issue in the HTML editor where hovering over the disabled remove formatting button did not show its explanatory tooltip. Users now get clearer feedback about the unavailable action, while the button still looks and behaves disabled.
Original PR description
Issue: ====== hover over remove format button when disabled doesn't show tooltip. Origin of the issue: ==================== Since the disabled button will have the class .disabled which will add `pointer-events:none` to the button so when hovering nothing happens. Solution: ========= - Add `pointer-events:auto` to show the tooltip on hover. - Add `cursor:auto` to show the usual cursor and not the pointer when hover. - Style the `.disabled:active` button the same as the `.disabled` so that clicking on the button doesn't change the style which gives the impressions that something happened.
Features or functions removed from Odoo
The partner autocomplete app will no longer be installed automatically as part of other setup flows. This gives businesses more control over whether to enable the feature and avoids adding it unless it is explicitly needed.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Button to close conversation and start a call are too small and close to each other. This means attempt to close the conversation can lead to accidentally starting a call, which scare all members of the conversation. This commit increases the size of these buttons and show borders so that it is less likely to click on start a call when the intent is to close the conversation. Before / After <img width="365" alt="Screenshot 2024-09-29 at 22 22 17" src="https://github.com/user-attachments/a
Original PR description
Button to close conversation and start a call are too small and close to each other. This means attempt to close the conversation can lead to accidentally starting a call, which scare all members of the conversation. This commit increases the size of these buttons and show borders so that it is less likely to click on start a call when the intent is to close the conversation. Before / After <img width="365" alt="Screenshot 2024-09-29 at 22 22 17" src="https://github.com/user-attachments/assets/7781eb6f-20e4-4ef2-ac0a-be50b39869ee"> <img width="366" alt="Screenshot 2024-09-29 at 22 21 56" src="https://github.com/user-attachments/assets/eede8d9c-891a-4cda-8dca-853b155ed6c3"> Forward-Port-Of: odoo/odoo#182017
This fix stops users from dragging selected table cells out of a table in the HTML editor, which previously could cause an error. It improves editing stability by preventing an unsupported action that led to a crash.
Original PR description
Before this commit: in a table, select last two cells of first row and drag drop it to a p element out of the table, a traceback is raised After this commit: the dragging on the table cells is disabled --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes a banner editor test run consistently by ensuring needed resources are loaded before the test action continues. It reduces random test failures, helping keep development and release checks more dependable without changing customer-facing behavior.
Original PR description
This commits fix an indeterministic test error. The indeterministic error was made by a getBundle triggered by a click, the solution is get the bundle ourself and await it.
This fixes an issue where website test helpers could fail when used outside a full HTTP test environment. The change makes tests fall back to the configured web port when no running server is available, improving reliability for internal testing without affecting normal users.
Original PR description
`MockRequest` calls `HttpCase.base_url()` even though it can be used outside of http cases. odoo/odoo#180461 made consistency a requirement as it retrieves the actually bound port from a running server. Make `http_port()` return `None` if no server is running (rather than error), and have `MockRequest` fallback on ~the old behaviour (of just retrieving the http_port from the config) in that case. Technically we could probably hardcode `8069` to limit e.g. issues when running with `http_port=0`, but odds are none of that is really relevant.
Duplicating embedded actions now avoids saving two conflicting action targets at the same time. This prevents errors for users when copying embedded actions that use a predefined Python method.
Original PR description
Before this commit, when the user tries to duplicate a embedded action containing the field `python_method` set, the `action_id` should not given otherwise an error will be raised because the `check_only_one_action_defined` constraint will not be respected because we will have 2 actions to call for a same embedded action. This commit makes sure the `action_id` field is not set if `python_method` is given. task-4191101
When staff book a restaurant table and return to the floor plan, the table now correctly appears as occupied. This helps avoid seating confusion and gives staff an accurate view of table availability.
Original PR description
Before this commit: === - After booking a table and returning to the floor plan, the table was not marked as full. After this commit: === - After booking a table and returning to the floor plan, the table is now correctly marked as full. Task-4210770
Deleting some Point of Sale demo orders could fail because related order lines and payments were missing default identifiers. This fix adds default UUID values so demo POS records can be removed cleanly, improving reliability for testing and demonstrations.
Original PR description
In this commit: ================= Fix traceback when deleting demo records in POS. When deleting some demo orders in the POS, a traceback was raised because the lines of the orders did not had an order linked to it. This was because they did not have an uuid. We now have default uuid values for orders, order lines and pos payments. Task: 4212901 Related: https://github.com/odoo/enterprise/pull/70925
Duplicating a bill no longer carries over payments matched to the original bill. This prevents the same payment from appearing linked to both the original and copied bill, reducing accounting confusion.
Original PR description
The matched_payment_ids field value is being copied when duplicating a bill. This causes the payment from the original bill to get linked to the new bill as well, which is unexpected. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue in the HTML editor where creating a table in an empty column could show repeated column hints in every table cell. The hint now appears only in the intended first paragraph, making the editing experience cleaner and less confusing.
Original PR description
Before this commit: creating a table in an empty column, all the table cells have the column hint After this commit: only the first p node under the col div has the column hint --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The replenishment view now keeps the horizon value selected by the user when they leave and return to the view. This prevents repeated manual re-entry and makes stock planning workflows more consistent.
Original PR description
To reproduce: - Open replenishment view - Change horizon value in the panel to 5 - Open any other view and reopen replenishment view Current behavior: Horizon is reset back to 0. Expected behavior: Horizon will remember the last value (5 in this example). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Several website building blocks now use the correct grid settings, so their layouts display more consistently across screen sizes. This helps pages built with these snippets look as intended and reduces manual layout adjustments for website editors.
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#180771
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 Forward-Port-Of: odoo/odoo#180771
Since https://github.com/odoo/odoo/pull/121963, there are tooltips on search panel items when the user hovers them. However, it is not very convenient since the user needs to hover precisely the span which contains the item name for the tooltip to pop up. This commit simply moves up the data-tooltip attribute in the elements hierarchy so that it will show for the whole button instead of only the title. This also fixes a bug with the tooltip position in the charts of account search panel as a sid
Original PR description
Since https://github.com/odoo/odoo/pull/121963, there are tooltips on search panel items when the user hovers them. However, it is not very convenient since the user needs to hover precisely the span which contains the item name for the tooltip to pop up. This commit simply moves up the data-tooltip attribute in the elements hierarchy so that it will show for the whole button instead of only the title. This also fixes a bug with the tooltip position in the charts of account search panel as a side effect. task-3917084 Forward-Port-Of: odoo/odoo#181721 Forward-Port-Of: odoo/odoo#180776
Before: All event from last year to the next 2 years were fetched. This might cause timeout depending on the amount of events. After this commit: Reuse the system parameter to allow limiting to a set value Note: This does not need to be done on google as the fetch limit is already present, see: https://github.com/odoo/odoo/pull/66250/files#diff-f1bbd37c3355f798d3f2d89ccc00c778aa4faa4c6709b6d66cc9650ad0d553b6 opw-4077113 Forward-Port-Of: odoo/odoo#181613
Original PR description
Before: All event from last year to the next 2 years were fetched. This might cause timeout depending on the amount of events. After this commit: Reuse the system parameter to allow limiting to a set value Note: This does not need to be done on google as the fetch limit is already present, see: https://github.com/odoo/odoo/pull/66250/files#diff-f1bbd37c3355f798d3f2d89ccc00c778aa4faa4c6709b6d66cc9650ad0d553b6 opw-4077113 Forward-Port-Of: odoo/odoo#181613
### Steps to reproduce: - Create a project - Create a task in this project and add a subtask for this task - Navigate to the kanban view for projects - Notice that the count of tasks shows 2 but you will just see only one task when clicking on this project ### Current behavior before PR: This is happening because when calculating the count of tasks we are just considering the tasks that has that project_id without checking anything else. https://github.com/odoo/odoo/blob/17.0/addo
Original PR description
### Steps to reproduce: - Create a project - Create a task in this project and add a subtask for this task - Navigate to the kanban view for projects - Notice that the count of tasks shows 2 but you will just see only one task when clicking on this project ### Current behavior before PR: This is happening because when calculating the count of tasks we are just considering the tasks that has that project_id without checking anything else. https://github.com/odoo/odoo/blob/17.0/addons/project/models/project_project.py#L56:L62 But when showing the tasks we are just showing the main tasks not the sub-tasks. ### Desired behavior after PR is merged: We are now checking if this task should be displayed or not and if it won't be displayed we don't count it. This is a backport of [commit](https://github.com/odoo/odoo/pull/160476/commits/1fc1f6f54ebadcda1ef090e1f73a05be85373c03) opw-4201309 Forward-Port-Of: odoo/odoo#181892 Forward-Port-Of: odoo/odoo#181410
Instead of only allowing selection by limited account type, the system allows selection by group. 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#181370 Forward-Port-Of: odoo/odoo#181327
Original PR description
Instead of only allowing selection by limited account type, the system allows selection by group. 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#181370 Forward-Port-Of: odoo/odoo#181327
Load taxes in an end script when all modules are loaded ``` Traceback (most recent call last): File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1313, in preload_registries registry = Registry.new(dbname, update_module=update_module) File "<decorator-gen-16>", line 2, in new File "/home/odoo/src/odoo/17.0/odoo/tools/func.py", line 87, in locked return func(inst, *args, **kwargs) File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 114, in new o
Original PR description
Load taxes in an end script when all modules are loaded ``` Traceback (most recent call last): File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1313, in preload_registries registry =…
Load taxes in an end script when all modules are loaded
```
Traceback (most recent call last):
File "/home/odoo/src/odoo/17.0/odoo/service/server.py", line 1313, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/17.0/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 114, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 476, in load_modules
processed_modules += load_marked_modules(env, graph,
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 364, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/17.0/odoo/modules/loading.py", line 232, in load_module_graph
migrations.migrate_module(package, 'post')
File "/home/odoo/src/odoo/17.0/odoo/modules/migration.py", line 240, in migrate_module
migrate(self.cr, installed_version)
File "/home/odoo/src/odoo/17.0/addons/l10n_uk/migrations/1.1/post-migrate.py", line 7, in migrate
env['account.chart.template'].try_loading('uk', company)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 153, in try_loading
return self._load(template_code, company, install_demo)
File "/home/odoo/src/odoo/17.0/addons/account/models/chart_template.py", line 212, in _load
self._post_load_data(template_code, company, template_data)
File "/home/odoo/src/odoo/17.0/addons/l10n_uk/models/template_uk.py", line 38, in _post_load_data
result = super()._post_load_data(template_code, company, template_data)
File "/home/odoo/src/enterprise/17.0/account_reports/models/chart_template.py", line 31, in _post_load_data
company._get_and_update_tax_closing_moves(fields.Date.today(), include_domestic=True)
File "/home/odoo/src/enterprise/17.0/account_reports/models/res_company.py", line 163, in _get_and_update_tax_closing_moves
report, tax_closing_options = tax_closing_move._get_report_options_from_tax_closing_entry()
File "/home/odoo/src/enterprise/17.0/account_reports/models/account_move.py", line 264, in _get_report_options_from_tax_closing_entry
report_options = tax_report.with_context(allowed_company_ids=company_ids).get_options(previous_options=options)
File "/home/odoo/src/enterprise/17.0/account_reports/models/account_report.py", line 1670, in get_options
initializer(options, previous_options=previous_options)
File "/home/odoo/src/enterprise/17.0/account_reports/models/account_report.py", line 1619, in _init_options_custom
self.env[custom_handler_model]._custom_options_initializer(self, options, previous_options)
File "/home/odoo/src/odoo/17.0/odoo/api.py", line 534, in __getitem__
return self.registry[model_name](self, (), ())
File "/home/odoo/src/odoo/17.0/odoo/modules/registry.py", line 213, in __getitem__
return self.models[model_name]
KeyError: 'l10n_uk.tax.report.handler'
```
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#181154Currently, we only check delivered quantities in a Sale Order based on the `usage` of the destination location of the related delivery. This means that in the case of Inter-company transactions, we won't consider them as deliveries, as its delivery location will be 'Inter-Company Transit', which itself is a 'transit' location. Test in odoo/enterprise#70663 Task-4207132 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#1
Original PR description
Currently, we only check delivered quantities in a Sale Order based on the `usage` of the destination location of the related delivery. This means that in the case of Inter-company transactions, we won't consider them as deliveries, as its delivery location will be 'Inter-Company Transit', which itself is a 'transit' location. Test in odoo/enterprise#70663 Task-4207132 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#181857 Forward-Port-Of: odoo/odoo#181412
This commit removes unnecessary whitespace in the localization files. No functional changes have been introduced, only whitespace adjustments. #169577 Forward-Port-Of: odoo/odoo#181767 Forward-Port-Of: odoo/odoo#179975
Original PR description
This commit removes unnecessary whitespace in the localization files. No functional changes have been introduced, only whitespace adjustments. #169577 Forward-Port-Of: odoo/odoo#181767 Forward-Port-Of: odoo/odoo#179975
Issue: ===== Written html code inside the forum post gets rendered in the readonly view. Steps to reproduce the issue: ============================= - Create a new forum post - Write `<p>abc</p>` - Save - The `p` element disappears (it got rendered, you can check it by inspecting the element). Origin of the issue and solution: ================================= Let's first name the `p` element added by the editor as `pe` to differenciate between them. The issue is divided
Original PR description
Issue: ===== Written html code inside the forum post gets rendered in the readonly view. Steps to reproduce the issue: ============================= - Create a new forum post - Write `<p>abc</p>` -…
Issue: ===== Written html code inside the forum post gets rendered in the readonly view. Steps to reproduce the issue: ============================= - Create a new forum post - Write `<p>abc</p>` - Save - The `p` element disappears (it got rendered, you can check it by inspecting the element). Origin of the issue and solution: ================================= Let's first name the `p` element added by the editor as `pe` to differenciate between them. The issue is divided into 2 subproblems: - We need to save the correct value: currently if we have written in the editor `<p>abc</p>`, it will save the value `<pe><p>abc</p></pe>` which means that the two `p` element will be handled the same either both will appear as a string in the readonly view or will be rendered which is not right. To solve the issue, we need to override the `value` of the text area and not the html before the submit. By doing this the textarea.value will be equal to `<pe><p>abcdef</p></pe>` which is the correct value. - Now the second problem is when we edit the post , it will render again the `p` element that we wrote. The fetched template actually have the correct value inside the textarea, but seems like the browser when rendering it, it will convert the value to `<pe><p>abd</p></pe>` which is not right, and if we use textarea.html it will encode the `<pe>` element which is wrong too. To get the original value, we fetch if again and use it in the options of the wysiwyg. opw-4148163 Forward-Port-Of: odoo/odoo#181626 Forward-Port-Of: odoo/odoo#179854
The task description of a task generated after receiving an email from an email alias should be the body of the email (from the message thread). We differentiate this case from the case where the task is generated in another way (e.g. manually or triggered by another module), in which we should not populate the task description. related-https://github.com/odoo/odoo/pull/108360 task-4207145 version-16.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/subm
Original PR description
The task description of a task generated after receiving an email from an email alias should be the body of the email (from the message thread). We differentiate this case from the case where the task is generated in another way (e.g. manually or triggered by another module), in which we should not populate the task description. related-https://github.com/odoo/odoo/pull/108360 task-4207145 version-16.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#181806 Forward-Port-Of: odoo/odoo#181572
Prevent tip product from being taxed rb error: 76973, 76972, 77055, 77054 Forward-Port-Of: odoo/odoo#181771
Original PR description
Prevent tip product from being taxed rb error: 76973, 76972, 77055, 77054 Forward-Port-Of: odoo/odoo#181771