Tuesday, October 8, 2024
83 changes
20 changes
Resolved issues and error corrections
Reloading an import records page now keeps the selected business object, so users are returned to the correct import screen instead of seeing an error or being redirected. This makes record imports more reliable when users refresh the browser or change interface settings during the process.
Original PR description
- In any APP (We would use CRM for the example); - On a multi-record view (Kanban, List, or other); - Click the action menu; - Click on “Import records” dropdown; - Reload the view (either reload the browser, or activate the debug, or change to dark mode on the user menu). Before this commit, an exception was raised, and the default multi-record view was loaded. This occurs because, the client action base import required a model (found in the context) that was lost when reloading. Now, the model is put in the query string of the URL (as active_model), in that way, when reloading, the client action base import will have the needed model. Note that, this is also the behavior of the stock TraceabilityReport client action [1]. opw-3959254 [1] : https://github.com/odoo/odoo/commit/8b3deab679bfee844ccd84c7f4f6f831921365d3
Reloading an import screen now keeps users on the same import page instead of briefly showing an error and sending them back to the list or kanban view. This preserves the user's workflow and prevents confusion during record imports.
Original PR description
- Go to CRM app - Click on the action menu --> Import records --> Import screen will appear - Reload the page a traceback will occur which will disappear quickly (you can see it in console) - It redirects you back to the kanban view which is not correct Before this commit, on reloading the import screen page a traceback was occuring which redirects back to the kanban/list view. This occurs because the ImportAction lost the current model at reload (resModel). Now, the ImportAction will update the state of action using updateActionState prop, to add the resModel to the url (as a query param), and be able to restore the full state at reload. Task-3959254 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Pivot table header menus now close again after choosing a grouping option. This prevents users from adding multiple groupings from a stale menu state, which could lead to incorrect pivot table results.
Original PR description
Before https://github.com/odoo/odoo/pull/137691, select a groupby in the dropdown of a pivot header would close the dropdown. Now the dropdown stays open and it is possible to add several row/col groupbys at the same time but the pivot model is not updated correctly because the update of the model is based on the groupId of the header for which the dropdown was opened. The simpler/best solution to that problem is to restore the previous behavior. Task ID: 3985217
Miscellaneous changes
Steps to reproduce: - On a fresh DB install only project_hr_expense(Uninstall project_sale_expense). - Create a expense on a project. - Go to Project Updates/ Dashboard - i.e., project right side panel Issue: - You can see that there is no action click on Expense while there should be. Reason: - Incorrect configuration of attaching ids into the action causing this. Solution: - Fixed the incorrect in which action is being generated. Technical: - The issue only occurs w
Original PR description
Steps to reproduce:
- On a fresh DB install only project_hr_expense(Uninstall project_sale_expense).
- Create a expense on a project.
- Go to Project Updates/ Dashboard - i.e., project right side panel
Issue:
- You can see that there is no action click on Expense while there should be.
Reason:
- Incorrect configuration of attaching ids into the action causing this.
Solution:
- Fixed the incorrect in which action is being generated.
Technical:
- The issue only occurs when the project_hr_expense module is installed. If the project_sale_expense module is installed,
the issue does not reproduce because the expense action is handled properly.
task-4175573
Forward-Port-Of: odoo/odoo#182431
Forward-Port-Of: odoo/odoo#17971718 changes
Enhancements to existing features
This update reorganizes how Odoo applies small compatibility adjustments to third-party libraries, making them easier to identify and troubleshoot. It reduces the risk of inconsistent behavior across modules by ensuring these adjusted libraries are loaded consistently wherever they are used.
44 changes
Enhancements to existing features
Mail suggestions and mentioned messages now use different icons for conversation threads and channels. This makes it easier for users to quickly recognize the type of discussion they are selecting or viewing.
Original PR description
**Current behavior before PR:** Channels and threads shared the same icon in the suggestion list and mentioned messages, making it difficult to visually differentiate between them. **Desired behavior after PR is merged:** This PR aims to display separate icons for threads and channels in the suggestion list and mentioned messages, improving clarity and differentiation between the two. Backport of #181742 Task-4203558 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Resolved issues and error corrections
This fix resolves a user experience issue where the vendor dropdown menu would not close immediately when selecting an option to create a new vendor. Previously, users had to click twice to close the dropdown. Now it closes automatically on the first interaction, making the invoice extraction process smoother and more intuitive.
Original PR description
The vendor dropdown does not close when a extract box is clicked and a creation dialog opens. It would only close after the first click. In this commit the dropdown is closed straight away. Forward-Port-Of: odoo/enterprise#71039
Currently, a traceback is occurring when the user tries to export a translation without selecting the model when the export type is `model` To reproduce this issue: 1) Try to export a translation without a model with the export type as `model` Error:- ``` KeyError: False ``` We can see that the model is not required when exporting a translation when the export type is `model`. This leads to a Keyerror from the below line https://github.com/odoo/odoo/blob/ce786882fe8527864
Original PR description
Currently, a traceback is occurring when the user tries to export a translation without selecting the model when the export type is `model` To reproduce this issue: 1) Try to export a translation without a model with the export type as `model` Error:- ``` KeyError: False ``` We can see that the model is not required when exporting a translation when the export type is `model`. This leads to a Keyerror from the below line https://github.com/odoo/odoo/blob/ce786882fe852786441ab86d9311aecc143cf57d/odoo/addons/base/wizard/base_export_language.py#L43-L44 Making the model as required in a stable version if the export type is `model` in XML is not stable friendly. So raising a `Usererror` will resolve this issue in stable. Note:- Will make the model as required if the export_type is `model` in master in xml sentry-5686584762 Forward-Port-Of: odoo/odoo#181114
Issues: The test I created here had an inheritance which was in enterprise, as pointed by gawa https://github.com/odoo/odoo/pull/168930#issuecomment-2340200503 Solution: Correct the test to remove the inheritance. opw-3921156 Forward-Port-Of: odoo/odoo#179761
Original PR description
Issues: The test I created here had an inheritance which was in enterprise, as pointed by gawa https://github.com/odoo/odoo/pull/168930#issuecomment-2340200503 Solution: Correct the test to remove the inheritance. opw-3921156 Forward-Port-Of: odoo/odoo#179761
**This is a back-port of a hotfix done during the OXP. See the original commit message below:** `websocket.WebSocketApp` doesn't set any fingerprint header, like no user-agent or origin, ... It can lead to issues when using a proxy firewall, such as HAProxy, as it could lead to the fingerpint to be 00000000-00000000-00000000-00000000, which can be seen as not legitimate, and the requests to be rejected for that reason. By setting a user-agent, we overcome this limitation --- I conf
Original PR description
**This is a back-port of a hotfix done during the OXP. See the original commit message below:** `websocket.WebSocketApp` doesn't set any fingerprint header, like no user-agent or origin, ... It can lead to issues when using a proxy firewall, such as HAProxy, as it could lead to the fingerpint to be 00000000-00000000-00000000-00000000, which can be seen as not legitimate, and the requests to be rejected for that reason. By setting a user-agent, we overcome this limitation --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182562
Currently the IoT Box accepts maximum the default nginx size of 1MB per request. This can be an issue when sending over heavy files to print. This PR increases the limit to 10MB and backports the PR #157733 in v17.0 as this version will be the base for our new image Forward-Port-Of: odoo/odoo#181202
Original PR description
Currently the IoT Box accepts maximum the default nginx size of 1MB per request. This can be an issue when sending over heavy files to print. This PR increases the limit to 10MB and backports the PR #157733 in v17.0 as this version will be the base for our new image Forward-Port-Of: odoo/odoo#181202
Maybe not the right approach, but to put the issue over the table at least. Users can copy paste their html signatures from whatever source, and that can lead to buggy behaviors when that signatures are used in the editor. For this case, users copy-pasted from outlook their html signature containing nested comments like this ``` <!--<![endif]--> ``` This lead to a buggy behavior of the web_editor whenever those signatures were loaded in the template. For example, in the invoice s
Original PR description
Maybe not the right approach, but to put the issue over the table at least. Users can copy paste their html signatures from whatever source, and that can lead to buggy behaviors when that signatures are used in the editor. For this case, users copy-pasted from outlook their html signature containing nested comments like this ``` <!--<![endif]--> ``` This lead to a buggy behavior of the web_editor whenever those signatures were loaded in the template. For example, in the invoice sending template. In that case, the web_editor will rollback any attemped change in the mail composer when that code is loaded into the composer body editor. The issue is that those nested comments are detected incorrectly. So better simply ignore them as they don't add up any value. cc @Tecnativa TT51068 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182382
When automatic entries are generated, a sequence number should not be assigned on them as long as they are on draft state. This is done because it may be confusing to see a sequenced name for a move in draft. This commit ensures that the name of the entries is 'Draft' (or '/') when the move is generated. A sequence number will be assigned once the move is posted. Before this commit, it was possible to generate a draft move with a sequence number when doing an automatic transfer in the future or
Original PR description
When automatic entries are generated, a sequence number should not be assigned on them as long as they are on draft state. This is done because it may be confusing to see a sequenced name for a move in draft. This commit ensures that the name of the entries is 'Draft' (or '/') when the move is generated. A sequence number will be assigned once the move is posted. Before this commit, it was possible to generate a draft move with a sequence number when doing an automatic transfer in the future or with accrued orders. task-4069862 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#181779
Steps to reproduce: 1. Open the course content. 2. Exit the full screen. 3. Try to comment on the content. 4. The Send button on comments not working Technical Reason: In portal_chatter_post, a ValidationError was shown in the terminal: "Only a single review can be posted per course." This occurred because it was checking the 'res_id' in the 'slide.channel' model while being in the 'slide.slide' model. After this Commit: The send button on the comment should work properly on the cont
Original PR description
Steps to reproduce: 1. Open the course content. 2. Exit the full screen. 3. Try to comment on the content. 4. The Send button on comments not working Technical Reason: In portal_chatter_post, a ValidationError was shown in the terminal: "Only a single review can be posted per course." This occurred because it was checking the 'res_id' in the 'slide.channel' model while being in the 'slide.slide' model. After this Commit: The send button on the comment should work properly on the content. Task-4213443 Forward-Port-Of: odoo/odoo#182153
**How to reproduce:** - Go to website, then on events - Open edit mode - Select 'Template Badge' - Select List from dropdown - Open a mobile view **Specifications:** Template badge is overlapped with the event details, change its position for mobile view. Add it above location. **After this PR:** Template Badge's position will be changed in mobile view and will no longer be overlapped by the content. Task-4210363 Forward-Port-Of: odoo/odoo#182323
Original PR description
**How to reproduce:** - Go to website, then on events - Open edit mode - Select 'Template Badge' - Select List from dropdown - Open a mobile view **Specifications:** Template badge is overlapped with the event details, change its position for mobile view. Add it above location. **After this PR:** Template Badge's position will be changed in mobile view and will no longer be overlapped by the content. Task-4210363 Forward-Port-Of: odoo/odoo#182323
Before this commit, due to the commit https://github.com/odoo/odoo/commit/a5e27d8f6fad33f9dcd6121b42d4698009627bfd, when the user goes to list view of timesheets, he could be disconnect due to a many rpc calls made to get the projects for which we only allow to create and edit task (because some fields could be required). This commit moves most of changes made in https://github.com/odoo/odoo/commit/a5e27d8f6fad33f9dcd6121b42d4698009627bfd in enterprise since only with hr_timesheet module
Original PR description
Before this commit, due to the commit https://github.com/odoo/odoo/commit/a5e27d8f6fad33f9dcd6121b42d4698009627bfd, when the user goes to list view of timesheets, he could be disconnect due to a many rpc calls made to get the projects for which we only allow to create and edit task (because some fields could be required). This commit moves most of changes made in https://github.com/odoo/odoo/commit/a5e27d8f6fad33f9dcd6121b42d4698009627bfd in enterprise since only with hr_timesheet module installed, we will never get a project for which we don't want to allow the quick create on task_id field. Impacted versions: 17.0+ task-4221621 Forward-Port-Of: odoo/odoo#182303
Steps to reproduce =================== - Create a survey having MCQ-type questions. - Create a live session. - Copy & paste the link into another browser. - Start giving the answer. - Try to submit the answer which is mandatory in MCQ. - The alert box overlaps the options. This PR addresses the issue and adds the margin between the options and the alert box. Task-4231590 Forward-Port-Of: odoo/odoo#182532
Original PR description
Steps to reproduce =================== - Create a survey having MCQ-type questions. - Create a live session. - Copy & paste the link into another browser. - Start giving the answer. - Try to submit the answer which is mandatory in MCQ. - The alert box overlaps the options. This PR addresses the issue and adds the margin between the options and the alert box. Task-4231590 Forward-Port-Of: odoo/odoo#182532
**Steps to reproduce:** - Install Accounting - Create an invoice with any product - Go to "Journal Items" tab - Input a label for the payment term line (it should be empty) - Confirm the invoice **Issue:** The input label of the payment term line is replaced by the "Payment Reference" of the invoice. For bills, it is replaced by an empty string as there is no default value for the payment reference. **Solution:** Only use the payment reference of the invoice as label for the paymen
Original PR description
**Steps to reproduce:** - Install Accounting - Create an invoice with any product - Go to "Journal Items" tab - Input a label for the payment term line (it should be empty) - Confirm the invoice **Issue:** The input label of the payment term line is replaced by the "Payment Reference" of the invoice. For bills, it is replaced by an empty string as there is no default value for the payment reference. **Solution:** Only use the payment reference of the invoice as label for the payment term line if it has not been modified manually. This can be done by checking that their values in _origin are similar. opw-4173634 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182568 Forward-Port-Of: odoo/odoo#182136
before this PR: In a multi-company environment, the GST E-Invoice (India) option appears for all companies, regardless of the company's country after this PR: on Journal, GST E-Invoice (India) option appears for only Indian companies Forward-Port-Of: odoo/odoo#181153
Original PR description
before this PR: In a multi-company environment, the GST E-Invoice (India) option appears for all companies, regardless of the company's country after this PR: on Journal, GST E-Invoice (India) option appears for only Indian companies Forward-Port-Of: odoo/odoo#181153
a bug was reported that when there were multiple available pricelists, the sequence provided by the admin wasn't taken into consideration. This fix returns the first available pricelist based on the model's order, instead of based on the creation order. > [EBC] pricelist country detection issue with more than 2 pricelists: > https://drive.google.com/file/d/1eHlCqA_2CW2HB_IvGlOscQhXZVi_Owq3/view?usp=sharing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/sub
Original PR description
a bug was reported that when there were multiple available pricelists, the sequence provided by the admin wasn't taken into consideration. This fix returns the first available pricelist based on the model's order, instead of based on the creation order. > [EBC] pricelist country detection issue with more than 2 pricelists: > https://drive.google.com/file/d/1eHlCqA_2CW2HB_IvGlOscQhXZVi_Owq3/view?usp=sharing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182100
Steps to reproduce : - Add a second language in your website settings. - Drop a "Text" block in a new page. - Add a highlight to some text > Save. - Switch to the translation mode. - Select the highlighted text > The text highlight options are shown. - Select a text without any option > The highlight options remain displayed. Starting from [1], we allow using text options (text animations & text highlights) in the translation mode, mainly by allowing the creation of snippet editors
Original PR description
Steps to reproduce : - Add a second language in your website settings. - Drop a "Text" block in a new page. - Add a highlight to some text > Save. - Switch to the translation mode. - Select the…
Steps to reproduce : - Add a second language in your website settings. - Drop a "Text" block in a new page. - Add a highlight to some text > Save. - Switch to the translation mode. - Select the highlighted text > The text highlight options are shown. - Select a text without any option > The highlight options remain displayed. Starting from [1], we allow using text options (text animations & text highlights) in the translation mode, mainly by allowing the creation of snippet editors if the target is a text option snippet. Another fix (from [2]) was added later to exceptionally authorize the editor's creation for "invisible" elements in translate mode, with a small adaptation on `_activateSnippet()` to prevent activating invisible snippets when their related sidebar buttons are clicked. This code unintentionally leads to keeping the old editors created for a text snippet when switching to another one in the DOM. To fix this behaviour, we still need to ensure existing editors are destroyed so we only create the ones we need in translate mode. [1]: https://github.com/odoo/odoo/commit/3a149e36f7e6deaf156a7ee35e654aad61cf2e5d [2]: https://github.com/odoo/odoo/commit/67efd1d98072f36caf9c473e97984631eb6bc8a3 task-3975683 Forward-Port-Of: odoo/odoo#174458 Forward-Port-Of: odoo/odoo#168642
**Current behavior before PR:** The pencil icon for editing the channel image was not visible on hover due to a wrongly written condition, preventing users from updating the image in the form view. **Desired behavior after PR is merged:** This PR fixes the issue by ensuring that the pencil icon now appears on hover, allowing users to edit the channel image directly from the form view. Task-4224182 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com
Original PR description
**Current behavior before PR:** The pencil icon for editing the channel image was not visible on hover due to a wrongly written condition, preventing users from updating the image in the form view. **Desired behavior after PR is merged:** This PR fixes the issue by ensuring that the pencil icon now appears on hover, allowing users to edit the channel image directly from the form view. Task-4224182 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182486
When installing an industry from the database, the list of dependencies to install is displayed in the dialog box. This is not clear nor necessary for the user and is therefore removed. Also, a message better alerts the user about loading demo data on a database. task-4096849 Forward-Port-Of: odoo/odoo#180035
Original PR description
When installing an industry from the database, the list of dependencies to install is displayed in the dialog box. This is not clear nor necessary for the user and is therefore removed. Also, a message better alerts the user about loading demo data on a database. task-4096849 Forward-Port-Of: odoo/odoo#180035
Original PR description
Monkeypatching is not a good practice, but it's in some cases necessary. This is especiallly true when relying on third party modules. Reasons may vary: - to adjust for compatibility between versions…
Monkeypatching is not a good practice, but it's in some cases necessary.
This is especiallly true when relying on third party modules.
Reasons may vary:
- to adjust for compatibility between versions
- to fix a small detail without reworking the external module.
In Odoo, there are several places in which monkeypatching is done.
This PR aims to put most of the monkeypatching together and to make clear at a glance which external modules are subject to it, and how.
Until now, the modules present here are of broad interest, and may belong to the `base` module.
There are cases in which a single Odoo module will require a third-party monkeypatched module that will get installed as `external_dependencies` in the `__manifest__.py` file.
We can leave the monkeypatching in that module, but we suggest using the `register` function here to make it at least visible at runtime, so that from the Odoo shell we can query them for troubleshooting:
```py
>>> from odoo.tools.monkeypatch import monkeypatches
>>> from pprint import pprint
>>> pprint(monkeypatches)
{'OpenSSL': <function monkeypatch_OpenSSL at 0x7fd7d8db3b50>,
'PyPDF2': <function monkeypatch_PyPDF2 at 0x7fd7d8db3be0>,
'xlsx': <function monkeypatch_xlsx at 0x7fd7d8db3c70>,
'xlsxwriter': <function monkeypatch_xlsxwriter at 0x7fd7d8db3d00>,
'xlwt': <function monkeypatch_xlwt at 0x7fd7d8db3d90>,
'xmlrpc': <function monkeypatch_xmlrpc at 0x7fd7d8db3e20>}
```
All the monkeypatching will be done so that import <module> will already load the monkeypatched module.
Modules will have a new `<module>.__is_monkeypatched__` attribute set to True.
This will remove the need to import from odoo.tools.misc.<module> and also ensure that people not aware of the monkeypatching use the wrong version.
Community PR: https://github.com/odoo/odoo/pull/98996Resolved issues and error corrections
Odoo Studio and related apps now avoid creating outdated view rules when customizing screens. This helps keep customizations compatible with current platform standards and reduces the risk of future display or upgrade issues.
Original PR description
*= account_asset, account_consolidation, account_disallowed_expenses_fleet, account_reports_cash_basis, appointment, documents, helpdesk, l10n_ph_reports, planning, whatsapp This PR consist of two commits: 32c4dc22980c2b723e68a68e417afe3efaebe6a6 - This commit will prevent using deprecated xpath. f01b2e58841fe247d44102055413bbbcea2586e2 - This commit will change studio xpath api such that it no longer generates custom views using deprecated xpath. Specifications: `contains(@class...` => `hasclass(...` Community PR: https://github.com/odoo/odoo/pull/174139 Task - 3820162
Code cleanup and technical improvements
This change renames several internal JavaScript models so their names align with related server-side names. It helps keep the codebase clearer and easier to maintain, with no expected change to day-to-day user workflows.
Original PR description
Enterprise counter-part. Part of task-3605717 https://github.com/odoo/odoo/pull/182364
This update simplifies how Odoo determines its internal root path by treating it as a runtime value rather than a configurable option. It supports a broader technical cleanup and should not change how users work with the system.
Original PR description
This commit is part of a larger refactor, see associated PR. While `root_path` was defined as an option, in reality it cannot be set nor via the CLI, nor via the config file. Its value is fully defined at runtime and isn't modified anywhere. Companion of https://github.com/odoo/odoo/pull/126099
Miscellaneous changes
…ing by SO in portal When grouping by SO in the helpdesk ticket portal list view, the group headers were invisible. That was cause by changing the groupby options from ``sale_line_id`` to ``sale_order_id`` without changing the condition in the template that would draw the group headers. In this commit we change the condition to ``groupby == 'sale_order_id``. task-4213896 Forward-Port-Of: odoo/enterprise#70890
Original PR description
…ing by SO in portal When grouping by SO in the helpdesk ticket portal list view, the group headers were invisible. That was cause by changing the groupby options from ``sale_line_id`` to ``sale_order_id`` without changing the condition in the template that would draw the group headers. In this commit we change the condition to ``groupby == 'sale_order_id``. task-4213896 Forward-Port-Of: odoo/enterprise#70890
If an Amazon order has more than one item it was creating for each item an own shipping line even if it had not even a shipping price defined per item line. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#70940
Original PR description
If an Amazon order has more than one item it was creating for each item an own shipping line even if it had not even a shipping price defined per item line. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#70940
Before this PR: - When a partner had no invoices to report but was still included in the data with an empty VAT list (e.g., 'partner_vat': []), this caused a JSON schema error when submitting the data to the government portal. Issue: - The government schema does not accept empty key-value pairs for partner VATs, resulting in submission failures. After this PR: - The key-value pair for partner VAT is only included if there are valid invoice entries associated with the partner. This preve
Original PR description
Before this PR: - When a partner had no invoices to report but was still included in the data with an empty VAT list (e.g., 'partner_vat': []), this caused a JSON schema error when submitting the data to the government portal. Issue: - The government schema does not accept empty key-value pairs for partner VATs, resulting in submission failures. After this PR: - The key-value pair for partner VAT is only included if there are valid invoice entries associated with the partner. This prevents empty entries from being added to the JSON payload, avoiding schema errors. Code change: - A condition was added to check if the partner has invoice data before appending the VAT key to the JSON structure. Task ID: 4239740 Forward-Port-Of: odoo/enterprise#71419
Change ----- UX improvement: a "Saved" message is displayed when leaving the template only if it is active, as it can be confusing for the user to not be able to find it (archived records are not visible by default). This happens when uploading a pdf as a document to sign. opw-4207093 Forward-Port-Of: odoo/enterprise#71078
Original PR description
Change ----- UX improvement: a "Saved" message is displayed when leaving the template only if it is active, as it can be confusing for the user to not be able to find it (archived records are not visible by default). This happens when uploading a pdf as a document to sign. opw-4207093 Forward-Port-Of: odoo/enterprise#71078
[IMP] l10n_mx_edi: Remove support of round_per_line Now the round globally is fully working and since we enforced the round_globally in Mexico, let's force all Mexican users to use the round globally. [FIX] l10n_mx_edi: Fix global invoice taxes aggregator with round globally When the global invoice is made on multiple invoices, aggregating rounded values lead to rounding issues. That's the case for "Subtotal" in the test case added in this commit: Suppose 5 invoices having a singl
Original PR description
[IMP] l10n_mx_edi: Remove support of round_per_line Now the round globally is fully working and since we enforced the round_globally in Mexico, let's force all Mexican users to use the round…
[IMP] l10n_mx_edi: Remove support of round_per_line Now the round globally is fully working and since we enforced the round_globally in Mexico, let's force all Mexican users to use the round globally. [FIX] l10n_mx_edi: Fix global invoice taxes aggregator with round globally When the global invoice is made on multiple invoices, aggregating rounded values lead to rounding issues. That's the case for "Subtotal" in the test case added in this commit: Suppose 5 invoices having a single invoice line with 16% price included tax. The unit price are: 2803.0, 1842.0, 2798.0, 3225.0, 3371.0. 2803 + 1842 + 2798 + 3225 + 3371 = 14039 14039 / 1.16 = 12102.586206897 ≃ 12102.59 Before this commit, when aggregating each 'Subtotal' of CFDI file, one per invoice: 2416.38 + 1587.93 + 2412.07 + 2780.17 + 2906.03 = 12102.58 [IMP] l10n_mx_edi: Cleanup dead code When introducing the dispatching on the negative lines long time ago, we added a config parameter to disable it. Now, it doesn't make any sense to disable it and the config parameter is gone so the method always returns True. Let's remove it. Forward-Port-Of: odoo/enterprise#71370
Currently, even tough the quick_create view are defined in the code base, and defines on the kanban view, the quick create view is not used. Step to reproduce: - Install helpdesk - Open helpdesk app - Open the 'all tickets' or the 'My tickets' view - Select the kanban view - Click on the 'new' button A ticket view form is opened. Expected behavior : the quick create view form should be open in the kanban view. Source of the issue: the 'on_create' attribute is missing in the kanba
Original PR description
Currently, even tough the quick_create view are defined in the code base, and defines on the kanban view, the quick create view is not used. Step to reproduce: - Install helpdesk - Open helpdesk app - Open the 'all tickets' or the 'My tickets' view - Select the kanban view - Click on the 'new' button A ticket view form is opened. Expected behavior : the quick create view form should be open in the kanban view. Source of the issue: the 'on_create' attribute is missing in the kanban definition task - 4047630 version 15.0 - master Forward-Port-Of: odoo/enterprise#71220 Forward-Port-Of: odoo/enterprise#66491
Steps to reproduce: - Create a QP (quantity and pass/fail, also define a failure location) on a product on receipt picking type. - Create a receipt order with any quantity of this product. - Open the picking from the barcode app. - Open the quality wizard. - Fail the check. - From the second wizard, set a partial quantity and a failure location. - Confirm the wizard. - Validate the transfer. Current behavior: Only the passed quantity is added to the stock, and a backorder is created
Original PR description
Steps to reproduce: - Create a QP (quantity and pass/fail, also define a failure location) on a product on receipt picking type. - Create a receipt order with any quantity of this product. - Open the picking from the barcode app. - Open the quality wizard. - Fail the check. - From the second wizard, set a partial quantity and a failure location. - Confirm the wizard. - Validate the transfer. Current behavior: Only the passed quantity is added to the stock, and a backorder is created with the failed quantity. Expected behavior: The whole quantity should be added to the stock with each line moved to its corresponding location. Forward-Port-Of: odoo/enterprise#70629
The vendor dropdown does not close when a extract box is clicked and a creation dialog opens. It would only close after the first click. In this commit the dropdown is closed straight away. Forward-Port-Of: odoo/enterprise#71039
Original PR description
The vendor dropdown does not close when a extract box is clicked and a creation dialog opens. It would only close after the first click. In this commit the dropdown is closed straight away. Forward-Port-Of: odoo/enterprise#71039
This commit adds the possibility in studio to change the default_order attribute on kanban views. Task-3953827 Forward-Port-Of: odoo/enterprise#71356
Original PR description
This commit adds the possibility in studio to change the default_order attribute on kanban views. Task-3953827 Forward-Port-Of: odoo/enterprise#71356
Inside the document folder of a project, create a new folder that is access_internal='view' and access_via_link='none'. Inside that folder create a document that is access_via_link='view'. From the Documents application standpoint, you created a document that cannot be discovered by a public user, unless he get the access-token to that file. But you can access the file via the Project's documents even without the access token, because the conditional `res_id`, `res_model`, `access_vi
Original PR description
Inside the document folder of a project, create a new folder that is access_internal='view' and access_via_link='none'. Inside that folder create a document that is access_via_link='view'. From the…
Inside the document folder of a project, create a new folder that is access_internal='view' and access_via_link='none'. Inside that folder create a document that is access_via_link='view'. From the Documents application standpoint, you created a document that cannot be discovered by a public user, unless he get the access-token to that file. But you can access the file via the Project's documents even without the access token, because the conditional `res_id`, `res_model`, `access_via_link` are met. It means that if you're a logged-in portal user you won't see that file as the `user_permission` is correctly `none`. But you can disconnect, become a public user, and get access to the file. --- An explored solution was to create a dedicated "shared" folder for every project/task, and to place all publicly discoverable files within that folder. Files that should be shared on a link-only manner would be placed elsewhere would not be listed but for the portal users. This solution was rejected because it created too many folders. --- The solution here is to restrict accessing documents to logged-in users, so that the single always-valid `user_permission` field can be used and there's no need to re-engineer something for public users. Forward-Port-Of: odoo/enterprise#70814
Before this commit, auditing a groupby line generated from a custom groupby crashed, because the custom groupby field was assumed to be a field of account.move.line, which it obviously wasn't (that's the very reason custom groupby exist for !). We solve that by calling the domain builder defined for this groupby in order to generate its audit domain. This bug is not reproducible in standard Odoo. Custom groupby on reports were implemented to support the 18.0 refactoring of the Intrastat Re
Original PR description
Before this commit, auditing a groupby line generated from a custom groupby crashed, because the custom groupby field was assumed to be a field of account.move.line, which it obviously wasn't (that's the very reason custom groupby exist for !). We solve that by calling the domain builder defined for this groupby in order to generate its audit domain. This bug is not reproducible in standard Odoo. Custom groupby on reports were implemented to support the 18.0 refactoring of the Intrastat Report, and are at the moment only used there. The Intrastat report does not support audit by clicking the amounts, so it's not subject to the bug. This feature will likely be used more in the future, though. Forward-Port-Of: odoo/enterprise#71102
As the Fixed Establishment is no more an obligation for the government, we remove this information from the xml export of the OSS sales report opw-3981681 Forward-Port-Of: odoo/enterprise#71130 Forward-Port-Of: odoo/enterprise#66876
Original PR description
As the Fixed Establishment is no more an obligation for the government, we remove this information from the xml export of the OSS sales report opw-3981681 Forward-Port-Of: odoo/enterprise#71130 Forward-Port-Of: odoo/enterprise#66876
#### Before this PR: 'Share Availabilities' button was placed out of screen in mobile view. Related Commits - https://github.com/odoo/enterprise/commit/94c376f19b49033eb1c3d8544a6905960ee1ca05, https://github.com/odoo/enterprise/commit/017cf2479044c2ed360917e79eab5f1a0838d6aa #### After this PR: Share button is placed at bottom of screen, like v17.0 Task-4210037 Forward-Port-Of: odoo/enterprise#71163
Original PR description
#### Before this PR: 'Share Availabilities' button was placed out of screen in mobile view. Related Commits - https://github.com/odoo/enterprise/commit/94c376f19b49033eb1c3d8544a6905960ee1ca05, https://github.com/odoo/enterprise/commit/017cf2479044c2ed360917e79eab5f1a0838d6aa #### After this PR: Share button is placed at bottom of screen, like v17.0 Task-4210037 Forward-Port-Of: odoo/enterprise#71163
#### Purpose: The purpose of this task is to add graph view directly from 'Messages' Stat Button. #### Before this PR: When users navigate to 'WhatsApp Messages' from a template's Stat button, only the List View is displayed. Thus, users have to add filters in all 'WhatsApp Messages' to get accurate graph view for a particular template. #### After this PR: Users can access both List and Graph view through 'Messages' stat button. Task-4145998 Forward-Port-Of: odoo/enterprise#69167
Original PR description
#### Purpose: The purpose of this task is to add graph view directly from 'Messages' Stat Button. #### Before this PR: When users navigate to 'WhatsApp Messages' from a template's Stat button, only the List View is displayed. Thus, users have to add filters in all 'WhatsApp Messages' to get accurate graph view for a particular template. #### After this PR: Users can access both List and Graph view through 'Messages' stat button. Task-4145998 Forward-Port-Of: odoo/enterprise#69167
The website generator now includes the access token needed for the 18.0 server connection. This helps ensure the tool can continue reaching the service it depends on to generate websites.
Original PR description
Add the token necessary to get access to the WSS server.
A new automated test was added to help confirm that payment auto-validation works as expected. This reduces the risk of future changes disrupting payment processing behavior, with no direct change for end users.
Original PR description
This commit adds a unit test for payments auto validation. task- 4213193
Resolved issues and error corrections
A spelling mistake in the invoice PDF report was corrected. This improves the professionalism and clarity of customer-facing invoice documents without changing how invoicing works.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes a visual issue in the Discuss sidebar where the selected conversation could lose its background color and show only an outline. The change restores the expected highlight, making it clearer which item is currently active without affecting the previous hover-status fix.
Original PR description
Follow-up of https://github.com/odoo/odoo/pull/182394 PR above fixed an issue where mouse-hovering IM status lead to buggy background color. This happens because the IM status requires `bg-inherit`…
Follow-up of https://github.com/odoo/odoo/pull/182394 PR above fixed an issue where mouse-hovering IM status lead to buggy background color. This happens because the IM status requires `bg-inherit` in order to determine the right background color to crop the avatar. Buttons have specific bg-color that cannot simply be overidden with `bg-inherit`, so this was defined in SCSS with higher specificity. A consequence of increasing the specificity of this rule was that it became more specific than the one for active item, so the active item in discuss sidebar had no background color but only the outline. This commit fixes the issue by increasing the stylerule specificity of active item background color, so that this is higher than the `bg-inherit`. The specific bg-inherit is still important to fix the issue in PR above. Before / After  
This fixes an issue in Point of Sale that prevented custom extensions from saving additional related sales records. Businesses using customized POS workflows can now add and store extra order details more reliably.
Original PR description
At the moment it is not possible to add new X2many relations to a model inside the `SERIALIZABLE_MODELS` list. I would like to add an One2many relation to the `pos.order` model: ```python class…
At the moment it is not possible to add new X2many relations to a model inside the `SERIALIZABLE_MODELS` list.
I would like to add an One2many relation to the `pos.order` model:
```python
class PosOrder(models.Model):
_inherit = "pos.order"
example_items = fields.One2many("example.item", "order_id")
```
```javascript
import { Base } from "@point_of_sale/app/models/related_models";
import { registry } from "@web/core/registry";
export class ExampleItem extends Base {
static pythonModel = "example.item";
setup(vals) {
super.setup(vals);
}
// ...
}
registry.category("pos_available_models").add(ExampleItem.pythonModel, ExampleItem);
```
A call to [`order.serialize`](https://github.com/abichinger/odoo/blob/f9de1eef6dd403157c0222dc75de85c8b7b59e3c/addons/point_of_sale/static/src/app/models/related_models.js#L191) throws the following error:
```
Trying to create a non serializable record example.item
```
After this PR is merged it is possible to add new models to the list of serializable models:
```javascript
import { SERIALIZABLE_MODELS } from "@point_of_sale/app/models/related_models"
SERIALIZABLE_MODELS.push("example.item")
```
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update prevents an error when importing records that use a custom property field linked to another record type but missing its target setup. It also makes import errors for numeric property fields clearer, helping users understand and correct import files faster.
Original PR description
## [FIX] core: fix traceback when importing many2one Property without comodel It is possible to create a Property field as many2one but without choosing a model. But it generates a Traceback in the import. ## [IMP] core: improve error message for import of Properties int/float.
This fix adds a standard identification header when Odoo hardware drivers open websocket connections. It helps prevent legitimate hardware-related connections from being blocked by proxy firewalls, improving reliability in protected network environments.
Original PR description
**This is a forward-port of a fix that was manually committed to saas-17.4 during the OXP:** `websocket.WebSocketApp` doesn't set any fingerprint header, like no user-agent or origin, ... It can lead to issues when using a proxy firewall, such as HAProxy, as it could lead to the fingerpint to be 00000000-00000000-00000000-00000000, which can be seen as not legitimate, and the requests to be rejected for that reason. By setting a user-agent, we overcome this limitation 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
Users who end a call while camera or screen sharing permission is still pending will no longer see an error after responding to the permission prompt. This improves reliability in Odoo Discuss calls by safely handling cases where the call is no longer active.
Original PR description
Fixed an issue where an error is thrown if the call is ended before accepting/rejecting the camera or screen access. After ending the call, accepting or rejecting access would trigger an error due to the absence of a check for whether the call is still active. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update fixes visual issues in website product carousels so product images and text display correctly. It also removes an unwanted mobile scrollbar caused by carousel arrows, improving the shopping experience on smaller screens.
Original PR description
This commit fixes two layout issues: 1. In the dynamic products snippet: using the layout "centered", the image was overlapping the text of the card due to having no height set for the image. 2. On…
This commit fixes two layout issues: 1. In the dynamic products snippet: using the layout "centered", the image was overlapping the text of the card due to having no height set for the image. 2. On the dynamic carousel snippet: on mobile, a scrollbar was appearing because of the arrow buttons. task-4215589 | | Before | After | |--------|--------|--------| | Image issue |  | <img width="1394" alt="Capture d’écran 2024-10-08 à 09 01 46" src="https://github.com/user-attachments/assets/ba710372-dd08-4854-8cfd-c8c999197dca"> | | Scroll issue |  | <img width="447" alt="Capture d’écran 2024-10-08 à 09 02 25" src="https://github.com/user-attachments/assets/415aa9f3-94fd-45e1-9743-ad1ac0a3a205"> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes an automated live chat test more consistent by ensuring the page is focused before a keyboard shortcut is used. It reduces random test failures, helping maintain confidence in the live chat functionality without changing the user experience.
Original PR description
In this commit, we click on element to set the focus on window before press ctrl+k. This fix an undeterministic error. 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 change fixes the setup for web development tooling so it works correctly with Odoo 18 and future versions. It helps teams maintain code quality checks consistently before changes are submitted, reducing avoidable issues in development.
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
Fixed a display issue where section headers were hidden when customers grouped helpdesk tickets by sales order in the portal. This makes grouped ticket lists easier to read and navigate for portal users.
Original PR description
…ing by SO in portal When grouping by SO in the helpdesk ticket portal list view, the group headers were invisible. That was cause by changing the groupby options from ``sale_line_id`` to ``sale_order_id`` without changing the condition in the template that would draw the group headers. In this commit we change the condition to ``groupby == 'sale_order_id``. task-4213896
Code cleanup and technical improvements
Restaurant point-of-sale order transfers were streamlined by removing a hidden shared state that made the process harder to maintain. This reduces the chance of transfer-related issues and makes future improvements safer, with little direct change for everyday users.
Original PR description
Backport of https://github.com/odoo/odoo/pull/179363 In pos restaurant when doing a transfer we set the order to transfer in a key of `pos` and then whenever we have a click handler we have to check if there is an order to transfer or not and adapt the code accordingly. This is inconvenient and error prone. In this commit we adapt the code such that we no longer need to store this global state and that the transfering logic is handled in a sequential way. task: 4167376 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Before this commit, there was an issue where a partner associated with a draft order might not be loaded. This could lead to users having to re-enter the customer's information if the page was refreshed. opw-4207881 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182625
Original PR description
Before this commit, there was an issue where a partner associated with a draft order might not be loaded. This could lead to users having to re-enter the customer's information if the page was refreshed. opw-4207881 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182625
Before this commit, the product screen displayed an image of one of the product's variants, contrary to the expectation of showing the product template image. This commit corrects the behavior to ensure the product template image is displayed. opw-4234351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182610
Original PR description
Before this commit, the product screen displayed an image of one of the product's variants, contrary to the expectation of showing the product template image. This commit corrects the behavior to ensure the product template image is displayed. opw-4234351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182610
Steps: --- - Open POS Restaurant - Edit floor & click on a table - Rapidly click add table multiple times - Multiple tables with the same number are created - Duplicate tables also overlap the original table completely Issue: --- Duplicate tables should not be created. Cause: --- The "Add" button that creates the table calls an async function. Rapid clicks make new calls even before the promises are successful. FIX: --- Disable the button and creation until the previous tabl
Original PR description
Steps: --- - Open POS Restaurant - Edit floor & click on a table - Rapidly click add table multiple times - Multiple tables with the same number are created - Duplicate tables also overlap the original table completely Issue: --- Duplicate tables should not be created. Cause: --- The "Add" button that creates the table calls an async function. Rapid clicks make new calls even before the promises are successful. FIX: --- Disable the button and creation until the previous table is created so that rapid clicks are handled. task-3956310 Forward-Port-Of: odoo/odoo#182410 Forward-Port-Of: odoo/odoo#169937
Currently, if you change the number of customers in the restaurant, the final order will show a 0 as the number of guests. Steps to reproduce: ------------------- * Go to the **Point of sale** App * Open restaurant session * Select a table, add items on the order * Change the guest count * Send order to kitchen > Observation: Guest count resets to 1 * Pay the order * Select the order outside the session > Observation: Guest count is 0 Why the fix: ------------ After the refacto
Original PR description
Currently, if you change the number of customers in the restaurant, the final order will show a 0 as the number of guests. Steps to reproduce: ------------------- * Go to the **Point of sale** App *…
Currently, if you change the number of customers in the restaurant, the final order will show a 0 as the number of guests. Steps to reproduce: ------------------- * Go to the **Point of sale** App * Open restaurant session * Select a table, add items on the order * Change the guest count * Send order to kitchen > Observation: Guest count resets to 1 * Pay the order * Select the order outside the session > Observation: Guest count is 0 Why the fix: ------------ After the refactoring https://github.com/odoo/odoo/commit/2a5f1abf2e98ee09fa7a912b87d71879b5ff260b, we use the same field structure as in python. Therefore, when we load/create a pos order we use `this.customerCount` is undefined since in python the field is called `customer_count`. https://github.com/odoo/odoo/blob/ae0b903b753decab1592df09a1e3cf1baa55f566/addons/pos_restaurant/static/src/overrides/models/pos_order.js#L8 By changing `this.customerCount` for `this.customer_count` we not only retreive the correct field when loading an order in the session but we also send the correct information to the backend. opw-4182891 Enterprise: https://github.com/odoo/enterprise/pull/71328 Forward-Port-Of: odoo/odoo#182529
### Steps to reproduce the issue: 1. Create a Parent Company and a Branch Company 2. In the Parent Company, click on the "Branches" Smart Button 3. From there, create another Branch Company 4. On save, this error appears: > odoo.exceptions.UserError: Incompatible companies on records: > - [Company Name] belongs to company [Company Name] and 'Address' (partner_id: [Company Name]) belongs to another company. ### Explanation: When accessing its branches, the context key `def
Original PR description
### Steps to reproduce the issue: 1. Create a Parent Company and a Branch Company 2. In the Parent Company, click on the "Branches" Smart Button 3. From there, create another Branch Company 4. On…
### Steps to reproduce the issue: 1. Create a Parent Company and a Branch Company 2. In the Parent Company, click on the "Branches" Smart Button 3. From there, create another Branch Company 4. On save, this error appears: > odoo.exceptions.UserError: Incompatible companies on records: > - [Company Name] belongs to company [Company Name] and 'Address' (partner_id: [Company Name]) belongs to another company. ### Explanation: When accessing its branches, the context key `default_parent_id` is set to the Parent Company's `id`. It is used to make sure the Branch Company has the Parent Company as `parent_id`. https://github.com/odoo/odoo/blob/4d5195d6756d47c33929fffa972ee801bb833622/odoo/addons/base/models/res_company.py#L423-L426 It is not removed when creating the Branch Partner, and this value will be used to assign a `parent_id` to the Branch Partner through `get_default`, this alone could create an out of range error if there is no `res.partner` with the same `id` as the Parent Company. https://github.com/odoo/odoo/blob/fbf95d3c4655b23554fe5dfa136382472041c195/odoo/addons/base/models/res_partner.py#L193-L197 https://github.com/odoo/odoo/blob/71b6eeed0a648934525cd758afebdb87500ec939/odoo/models.py#L1488-L1491 If there is a Parent Partner, it will give its `company_id` to the Branch Partner. Afterwards, `stock.warehouse` is created with the Branch Company as `company_id` and the Branch Partner as `partner_id`. https://github.com/odoo/odoo/blob/78e44dc5a3dee67956f380fa468bab02692ce5ac/addons/stock/models/res_company.py#L202-L207 During its creation, `stock.warehouse` will call `_check_company` and, when `res.partner.company_id` is not in `stock.warehouse.company_id.parent_ids`, will report the inconsistency. https://github.com/odoo/odoo/blob/71b6eeed0a648934525cd758afebdb87500ec939/odoo/models.py#L4068-L4073 https://github.com/odoo/odoo/blob/71b6eeed0a648934525cd758afebdb87500ec939/odoo/models.py#L185-L189 ### Fix reasoning: Removing the problematic context key `default_parent_id` during the creation of the Branch Partner will avoid any out of range error and most importantly will not assign a default value to the Partner when it should not have one. opw-4194396 Forward-Port-Of: odoo/odoo#182565 Forward-Port-Of: odoo/odoo#182342
Following the commit https://github.com/odoo/odoo/commit/236120ad5de2c87494c662dc3149457d68e887da, which aimed to prevent displaying a variant's price as the product template price to avoid confusion, an issue arose where the pricelist was not considered for products without variants. This commit resolves the issue by ensuring the pricelist is applied correctly, especially when the variant's price matches the product template's price. opw-4205688 --- I confirm I have signed the CLA and re
Original PR description
Following the commit https://github.com/odoo/odoo/commit/236120ad5de2c87494c662dc3149457d68e887da, which aimed to prevent displaying a variant's price as the product template price to avoid confusion, an issue arose where the pricelist was not considered for products without variants. This commit resolves the issue by ensuring the pricelist is applied correctly, especially when the variant's price matches the product template's price. opw-4205688 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182729
Some pot files were out of date/missing, some .po files were out of date/missing/missing translations --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182341 Forward-Port-Of: odoo/odoo#182056
Original PR description
Some pot files were out of date/missing, some .po files were out of date/missing/missing translations --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182341 Forward-Port-Of: odoo/odoo#182056
When computing the cheapest line of an order to apply a discount on it, combo line should be considered as one product as it is done in the sale app. Steps to reproduce: ------------------- * Setup a combo product * Setup a discount program that applies on the cheapest line * Open a PoS and add the combo product > Observation: The discount would be applied on the cheapest product of the combo instead of the whole combo Why the fix: ------------ When we look for the cheapest line an
Original PR description
When computing the cheapest line of an order to apply a discount on it, combo line should be considered as one product as it is done in the sale app. Steps to reproduce: ------------------- * Setup a combo product * Setup a discount program that applies on the cheapest line * Open a PoS and add the combo product > Observation: The discount would be applied on the cheapest product of the combo instead of the whole combo Why the fix: ------------ When we look for the cheapest line and we encounter a combo product we sum all the lines of the combo to compute it's total price opw-4033960 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182411 Forward-Port-Of: odoo/odoo#180482
Currently, a traceback is occurring when the user tries to export a translation without selecting the model when the export type is `model` To reproduce this issue: 1) Try to export a translation without a model with the export type as `model` Error:- ``` KeyError: False ``` We can see that the model is not required when exporting a translation when the export type is `model`. This leads to a Keyerror from the below line https://github.com/odoo/odoo/blob/ce786882fe8527864
Original PR description
Currently, a traceback is occurring when the user tries to export a translation without selecting the model when the export type is `model` To reproduce this issue: 1) Try to export a translation without a model with the export type as `model` Error:- ``` KeyError: False ``` We can see that the model is not required when exporting a translation when the export type is `model`. This leads to a Keyerror from the below line https://github.com/odoo/odoo/blob/ce786882fe852786441ab86d9311aecc143cf57d/odoo/addons/base/wizard/base_export_language.py#L43-L44 Making the model as required in a stable version if the export type is `model` in XML is not stable friendly. So raising a `Usererror` will resolve this issue in stable. Note:- Will make the model as required if the export_type is `model` in master in xml sentry-5686584762 Forward-Port-Of: odoo/odoo#182673 Forward-Port-Of: odoo/odoo#181114
Manual back porting the part of 02f78498972a6fc7d560c0e6c0a5b3bf63eb58d3 that add common for account journal dashbaord tests. opw-4182523 Forward-Port-Of: odoo/odoo#182436 Forward-Port-Of: odoo/odoo#182182
Original PR description
Manual back porting the part of 02f78498972a6fc7d560c0e6c0a5b3bf63eb58d3 that add common for account journal dashbaord tests. opw-4182523 Forward-Port-Of: odoo/odoo#182436 Forward-Port-Of: odoo/odoo#182182
a bug was reported that when there were multiple available pricelists, the sequence provided by the admin wasn't taken into consideration. This fix returns the first available pricelist based on the model's order, instead of based on the creation order. > [EBC] pricelist country detection issue with more than 2 pricelists: > https://drive.google.com/file/d/1eHlCqA_2CW2HB_IvGlOscQhXZVi_Owq3/view?usp=sharing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/sub
Original PR description
a bug was reported that when there were multiple available pricelists, the sequence provided by the admin wasn't taken into consideration. This fix returns the first available pricelist based on the model's order, instead of based on the creation order. > [EBC] pricelist country detection issue with more than 2 pricelists: > https://drive.google.com/file/d/1eHlCqA_2CW2HB_IvGlOscQhXZVi_Owq3/view?usp=sharing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182100
Adding unit test to ensure that the behaviour fixed by PR https://github.com/odoo/odoo/pull/181752 persists in the future --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#181792
Original PR description
Adding unit test to ensure that the behaviour fixed by PR https://github.com/odoo/odoo/pull/181752 persists in the future --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#181792
Starting from `18.0`, text highlight effects are used for snippets customizations in themes, which means snippets can be provided with highlighted content (in a minimal format) that allows the JS code to rebuild the SVGs later when it's needed: ``` <span class="o_text_highlight o_text_highlight_[highlightId]" style="--text-highlight-width: ...; --text-highlight-color: ...;"> text content ... </span> ``` The highlights code provides some tools to adapt them when the content
Original PR description
Starting from `18.0`, text highlight effects are used for snippets customizations in themes, which means snippets can be provided with highlighted content (in a minimal format) that allows the JS…
Starting from `18.0`, text highlight effects are used for snippets
customizations in themes, which means snippets can be provided with
highlighted content (in a minimal format) that allows the JS code to
rebuild the SVGs later when it's needed:
```
<span class="o_text_highlight o_text_highlight_[highlightId]"
style="--text-highlight-width: ...; --text-highlight-color: ...;">
text content ...
</span>
```
The highlights code provides some tools to adapt them when the content
is changed: add & remove text, resize… But It doesn't handle the case
of a dropped snippet with highlights.
The goal of this commit is to be able to build the highlights of a
snippet once dropped.
Remark: The behavior fixed in this commit wasn't possible until `18.0`
(with themes snippets using highlights) but we target `17.0` to handle
every possible customization that uses the effects before themes
refactoring.
task-4215788
Forward-Port-Of: odoo/odoo#182465
Forward-Port-Of: odoo/odoo#182208Steps to reproduce: - Go to a website blog post page > Drop a "Table of Content" snippet inside the blog post content. - Switch to translation mode > Try to translate a TOC title > The corresponding navigation label won't be automatically updated. - Save > The translation will be applied depending on whether the title and the navbar item have exactly the same content or not [*]. Starting from [1], the translation of a "Table of Content" navigation label was automatically applied
Original PR description
Steps to reproduce: - Go to a website blog post page > Drop a "Table of Content" snippet inside the blog post content. - Switch to translation mode > Try to translate a TOC title > The corresponding…
Steps to reproduce:
- Go to a website blog post page > Drop a "Table of Content" snippet
inside the blog post content.
- Switch to translation mode > Try to translate a TOC title > The
corresponding navigation label won't be automatically updated.
- Save > The translation will be applied depending on whether the title
and the navbar item have exactly the same content or not [*].
Starting from [1], the translation of a "Table of Content" navigation
label was automatically applied (only the text content) when the
corresponding title was translated, and the user was also warned when
trying to edit them directly in "translation" mode.
This implementation relied on the field observers mechanism to
synchronize translations for the table of content navigation and content
headers.
Unfortunately, the field mutations handler doesn't take translation
fields into consideration when they are part of another field's DOM:
1. Before trying to set the updated field value on its duplicates in the
DOM, the handler is using `_pauseOdooFieldObservers()` to `disconnect()`
all the observers of other fields to prevent receiving mutations from
its own updates.
2. In translation mode, and when the updated field has some inner
translation `<span/>`s, their observers will be disconnected too, and
their mutations will never be linked to the right target.
3. Finally, the `_observeOdooFieldChanges()` is used to observe the
fields again.
Let's take the following example:
```
<div data-oe-model="...">
<span data-oe-translation-initial-sha="...">Text Content</span>
</div>
```
In this case, two observers are created, one for the `[data-oe-model]`
(`O1`) and the other for the `[data-oe-translation-initial-sha]` (`O2`).
When editing the "Text Content" of the `<span/>`, `O1` will be triggered
(for the parent field) and will temporarily disconnect all other fields
observers (including (`O2`)) and as a consequence, `O2` won't be able to
synchronize the value of the translation field on the ones with the same
`data-oe-translation-initial-sha` (which is the same situation as in a
"Table of Content" block).
The goal of this commit is to simply prevent disconnecting inner
translation field observers to allow the translation synchronization
inside a parent field DOM.
[*]: Remark: when a TOC title and its navigation item have different DOM
(e.g., the font color of the title changed), the code from [1] will
always temporarily set the same `data-oe-translation-initial-sha` on
both of them (and restore the original ones before saving), which
explains the different translation values when the field observers are
not working correctly.
[1]: https://github.com/odoo/odoo/commit/5776a358e1b42186d2c26c9bc25010a12811f416
opw-3990039
opw-3888871
Forward-Port-Of: odoo/odoo#178439
Forward-Port-Of: odoo/odoo#176198This **PR** introduces new TDS rates in accordance with the Union Budget 2024. **task**-4138335 Forward-Port-Of: odoo/odoo#181797
Original PR description
This **PR** introduces new TDS rates in accordance with the Union Budget 2024. **task**-4138335 Forward-Port-Of: odoo/odoo#181797
Steps to reproduce =================== - Create a survey having MCQ-type questions. - Create a live session. - Copy & paste the link into another browser. - Start giving the answer. - Try to submit the answer which is mandatory in MCQ. - The alert box overlaps the options. This PR addresses the issue and adds the margin between the options and the alert box. Task-4231590 Forward-Port-Of: odoo/odoo#182532
Original PR description
Steps to reproduce =================== - Create a survey having MCQ-type questions. - Create a live session. - Copy & paste the link into another browser. - Start giving the answer. - Try to submit the answer which is mandatory in MCQ. - The alert box overlaps the options. This PR addresses the issue and adds the margin between the options and the alert box. Task-4231590 Forward-Port-Of: odoo/odoo#182532
**How to reproduce:** - Go to website, then on events - Open edit mode - Select 'Template Badge' - Select List from dropdown - Open a mobile view **Specifications:** Template badge is overlapped with the event details, change its position for mobile view. Add it above location. **After this PR:** Template Badge's position will be changed in mobile view and will no longer be overlapped by the content. Task-4210363 Forward-Port-Of: odoo/odoo#182323
Original PR description
**How to reproduce:** - Go to website, then on events - Open edit mode - Select 'Template Badge' - Select List from dropdown - Open a mobile view **Specifications:** Template badge is overlapped with the event details, change its position for mobile view. Add it above location. **After this PR:** Template Badge's position will be changed in mobile view and will no longer be overlapped by the content. Task-4210363 Forward-Port-Of: odoo/odoo#182323
Maybe not the right approach, but to put the issue over the table at least. Users can copy paste their html signatures from whatever source, and that can lead to buggy behaviors when that signatures are used in the editor. For this case, users copy-pasted from outlook their html signature containing nested comments like this ``` <!--<![endif]--> ``` This lead to a buggy behavior of the web_editor whenever those signatures were loaded in the template. For example, in the invoice s
Original PR description
Maybe not the right approach, but to put the issue over the table at least. Users can copy paste their html signatures from whatever source, and that can lead to buggy behaviors when that signatures are used in the editor. For this case, users copy-pasted from outlook their html signature containing nested comments like this ``` <!--<![endif]--> ``` This lead to a buggy behavior of the web_editor whenever those signatures were loaded in the template. For example, in the invoice sending template. In that case, the web_editor will rollback any attemped change in the mail composer when that code is loaded into the composer body editor. The issue is that those nested comments are detected incorrectly. So better simply ignore them as they don't add up any value. cc @Tecnativa TT51068 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#182382
Issues: The test I created here had an inheritance which was in enterprise, as pointed by gawa https://github.com/odoo/odoo/pull/168930#issuecomment-2340200503 Solution: Correct the test to remove the inheritance. opw-3921156 Forward-Port-Of: odoo/odoo#179761
Original PR description
Issues: The test I created here had an inheritance which was in enterprise, as pointed by gawa https://github.com/odoo/odoo/pull/168930#issuecomment-2340200503 Solution: Correct the test to remove the inheritance. opw-3921156 Forward-Port-Of: odoo/odoo#179761
Steps to reproduce: - On a fresh DB install only project_hr_expense(Uninstall project_sale_expense). - Create a expense on a project. - Go to Project Updates/ Dashboard - i.e., project right side panel Issue: - You can see that there is no action click on Expense while there should be. Reason: - Incorrect configuration of attaching ids into the action causing this. Solution: - Fixed the incorrect in which action is being generated. Technical: - The issue only occurs w
Original PR description
Steps to reproduce:
- On a fresh DB install only project_hr_expense(Uninstall project_sale_expense).
- Create a expense on a project.
- Go to Project Updates/ Dashboard - i.e., project right side panel
Issue:
- You can see that there is no action click on Expense while there should be.
Reason:
- Incorrect configuration of attaching ids into the action causing this.
Solution:
- Fixed the incorrect in which action is being generated.
Technical:
- The issue only occurs when the project_hr_expense module is installed. If the project_sale_expense module is installed,
the issue does not reproduce because the expense action is handled properly.
task-4175573
Forward-Port-Of: odoo/odoo#182431
Forward-Port-Of: odoo/odoo#179717If an Amazon order has more than one item it was creating for each item an own shipping line even if it had not even a shipping price defined per item line. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#70940
Original PR description
If an Amazon order has more than one item it was creating for each item an own shipping line even if it had not even a shipping price defined per item line. Info: @wt-io-it Forward-Port-Of: odoo/enterprise#70940
Change ----- UX improvement: a "Saved" message is displayed when leaving the template only if it is active, as it can be confusing for the user to not be able to find it (archived records are not visible by default). This happens when uploading a pdf as a document to sign. opw-4207093 Forward-Port-Of: odoo/enterprise#71078
Original PR description
Change ----- UX improvement: a "Saved" message is displayed when leaving the template only if it is active, as it can be confusing for the user to not be able to find it (archived records are not visible by default). This happens when uploading a pdf as a document to sign. opw-4207093 Forward-Port-Of: odoo/enterprise#71078
This is the second part of the pr renaming `customerCount` to `customer_count`. Why the fix: ------------ After the refactoring https://github.com/odoo/odoo/commit/2a5f1abf2e98ee09fa7a912b87d71879b5ff260b, we use the same field structure as in python. Therefore, when we load/create a pos order we use `this.customerCount` is undefined since in python the field is called `customer_count`. https://github.com/odoo/odoo/blob/ae0b903b753decab1592df09a1e3cf1baa55f566/addons/pos_restaurant/static/
Original PR description
This is the second part of the pr renaming `customerCount` to `customer_count`. Why the fix: ------------ After the refactoring https://github.com/odoo/odoo/commit/2a5f1abf2e98ee09fa7a912b87d71879b5ff260b, we use the same field structure as in python. Therefore, when we load/create a pos order we use `this.customerCount` is undefined since in python the field is called `customer_count`. https://github.com/odoo/odoo/blob/ae0b903b753decab1592df09a1e3cf1baa55f566/addons/pos_restaurant/static/src/overrides/models/pos_order.js#L8 By changing `this.customerCount` for `this.customer_count` we not only retreive the correct field when loading an order in the session but we also send the correct information to the backend. opw-4182891 Community: https://github.com/odoo/odoo/pull/182529 Forward-Port-Of: odoo/enterprise#71328
The vendor dropdown does not close when a extract box is clicked and a creation dialog opens. It would only close after the first click. In this commit the dropdown is closed straight away. Forward-Port-Of: odoo/enterprise#71039
Original PR description
The vendor dropdown does not close when a extract box is clicked and a creation dialog opens. It would only close after the first click. In this commit the dropdown is closed straight away. Forward-Port-Of: odoo/enterprise#71039
Before this PR: - When a partner had no invoices to report but was still included in the data with an empty VAT list (e.g., 'partner_vat': []), this caused a JSON schema error when submitting the data to the government portal. Issue: - The government schema does not accept empty key-value pairs for partner VATs, resulting in submission failures. After this PR: - The key-value pair for partner VAT is only included if there are valid invoice entries associated with the partner. This preve
Original PR description
Before this PR: - When a partner had no invoices to report but was still included in the data with an empty VAT list (e.g., 'partner_vat': []), this caused a JSON schema error when submitting the data to the government portal. Issue: - The government schema does not accept empty key-value pairs for partner VATs, resulting in submission failures. After this PR: - The key-value pair for partner VAT is only included if there are valid invoice entries associated with the partner. This prevents empty entries from being added to the JSON payload, avoiding schema errors. Code change: - A condition was added to check if the partner has invoice data before appending the VAT key to the JSON structure. Task ID: 4239740 Forward-Port-Of: odoo/enterprise#71419
Some pot files were out of date/missing, some .po files were out of date/missing/missing translations. Also delete unnecessary fr_BE.po files that didn't have any translations in them Forward-Port-Of: odoo/enterprise#71208 Forward-Port-Of: odoo/enterprise#71027
Original PR description
Some pot files were out of date/missing, some .po files were out of date/missing/missing translations. Also delete unnecessary fr_BE.po files that didn't have any translations in them Forward-Port-Of: odoo/enterprise#71208 Forward-Port-Of: odoo/enterprise#71027
`createRecord` overrides the list view controller method but only for mobile mode. Steps to reproduce: - Go to Fields Service app. - Open the list view. - Click the new button to create a task > ** Nothing happens **. opw-4225488 Forward-Port-Of: odoo/enterprise#71375
Original PR description
`createRecord` overrides the list view controller method but only for mobile mode. Steps to reproduce: - Go to Fields Service app. - Open the list view. - Click the new button to create a task > ** Nothing happens **. opw-4225488 Forward-Port-Of: odoo/enterprise#71375
Before this commit, auditing a groupby line generated from a custom groupby crashed, because the custom groupby field was assumed to be a field of account.move.line, which it obviously wasn't (that's the very reason custom groupby exist for !). We solve that by calling the domain builder defined for this groupby in order to generate its audit domain. This bug is not reproducible in standard Odoo. Custom groupby on reports were implemented to support the 18.0 refactoring of the Intrastat Re
Original PR description
Before this commit, auditing a groupby line generated from a custom groupby crashed, because the custom groupby field was assumed to be a field of account.move.line, which it obviously wasn't (that's the very reason custom groupby exist for !). We solve that by calling the domain builder defined for this groupby in order to generate its audit domain. This bug is not reproducible in standard Odoo. Custom groupby on reports were implemented to support the 18.0 refactoring of the Intrastat Report, and are at the moment only used there. The Intrastat report does not support audit by clicking the amounts, so it's not subject to the bug. This feature will likely be used more in the future, though. Forward-Port-Of: odoo/enterprise#71102
As the Fixed Establishment is no more an obligation for the government, we remove this information from the xml export of the OSS sales report opw-3981681 Forward-Port-Of: odoo/enterprise#71130 Forward-Port-Of: odoo/enterprise#66876
Original PR description
As the Fixed Establishment is no more an obligation for the government, we remove this information from the xml export of the OSS sales report opw-3981681 Forward-Port-Of: odoo/enterprise#71130 Forward-Port-Of: odoo/enterprise#66876
#### Before this PR: 'Share Availabilities' button was placed out of screen in mobile view. Related Commits - https://github.com/odoo/enterprise/commit/94c376f19b49033eb1c3d8544a6905960ee1ca05, https://github.com/odoo/enterprise/commit/017cf2479044c2ed360917e79eab5f1a0838d6aa #### After this PR: Share button is placed at bottom of screen, like v17.0 Task-4210037 Forward-Port-Of: odoo/enterprise#71163
Original PR description
#### Before this PR: 'Share Availabilities' button was placed out of screen in mobile view. Related Commits - https://github.com/odoo/enterprise/commit/94c376f19b49033eb1c3d8544a6905960ee1ca05, https://github.com/odoo/enterprise/commit/017cf2479044c2ed360917e79eab5f1a0838d6aa #### After this PR: Share button is placed at bottom of screen, like v17.0 Task-4210037 Forward-Port-Of: odoo/enterprise#71163