Daily updates from Odoo
Thursday, January 16, 2025
86 changes
2 changes
Features or functions removed from Odoo
An unused empty file that was accidentally included during a previous code update has been removed. This is a housekeeping change with no expected impact on users or business workflows.
Original PR description
In the forward port #190318 while fixing conflict, a new empty file from another projet was accedentally sled in the commit. This commit removes this empty useless file.
Miscellaneous changes
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
Original PR description
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
14 changes
Resolved issues and error corrections
This update fixes a failing automated test related to keyboard shortcuts in web navigation. It helps keep the web interface test suite reliable, reducing the risk of regressions reaching users.
Original PR description
Fixes test broken by: be23ed0 https://runbot.odoo.com/odoo/runbot.build.error/109595 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Child contacts with portal access can now see the tasks menu when access rules allow them to view related customer tasks. This prevents eligible users from missing project information due to an overly restrictive task count check.
Original PR description
## Issue: - Child contacts of followers were unable to access the tasks menu in the portal home, despite having access according to the access rules. ## Steps to reproduce: 1. Create a parent contact with a child contact. 2. Grant the child contact portal access. 3. Create a task with the parent contact as the customer. 4. Add the parent contact as a follower or send a message in the task chatter. 5. Log in as the child contact in the portal. 6. Notice the tasks menu is unavailable. ## Solution: - The issue originated in `_prepare_home_portal_values`, where the task count was computed with a restrictive domain and sudo instead of relying on the access rules. - Removed the unnecessary domain filter to let the access rules handle it. opw-4306834 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Steps to reproduce: Not reproducible in V16. However, in older versions, it was possible to have multiple finished_moves with different quantities (see https://github.com/odoo/odoo/pull/46718). This fix ensures such issues are avoided in the future and also addresses potential problems for clients migrating from older versions. Example: Two finished_moves with different quantities. Before the fix, both moves would be updated based on the unbuild quantity, resulting in incorrect quantit
Original PR description
Steps to reproduce: Not reproducible in V16. However, in older versions, it was possible to have multiple finished_moves with different quantities (see https://github.com/odoo/odoo/pull/46718). This fix ensures such issues are avoided in the future and also addresses potential problems for clients migrating from older versions. Example: Two finished_moves with different quantities. Before the fix, both moves would be updated based on the unbuild quantity, resulting in incorrect quantities. After the fix, the moves for unbuild will use only the move's quantity. opw-4379204 Forward-Port-Of: odoo/odoo#193777 Forward-Port-Of: odoo/odoo#191908
After merging of this PR [1], video tab will not be visible in media dialog in report as `allowCommandVideo` is false. But this will override `noVideos` option from `params` to false if `allowCommandVideo` is true and video tab will be visible even if `noVideos` is `true`. This PR makes sure that `noVideos` property from `params` should be checked if `allowCommandVideo` is true. [1]: 187251 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Fo
Original PR description
After merging of this PR [1], video tab will not be visible in media dialog in report as `allowCommandVideo` is false. But this will override `noVideos` option from `params` to false if `allowCommandVideo` is true and video tab will be visible even if `noVideos` is `true`. This PR makes sure that `noVideos` property from `params` should be checked if `allowCommandVideo` is true. [1]: 187251 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192838
When using an auto fifo product as part of the repair, the COGS won't be based on the used product To reproduce the issue: 1. Setup auto fifo product 2. Receive 1@10 and 1@20 3. Process a RO: - Invoice method: After repair - Parts: - Add 1 x fifo product 4. Create and post the invoice 5. Open its journal items Error: Cogs are $20 instead of $10 When posting the invoice, we generate the COGS: https://github.com/odoo/odoo/blob/4df156164cf1d2764ba23682beee588777457fd6/
Original PR description
When using an auto fifo product as part of the repair, the COGS won't be based on the used product To reproduce the issue: 1. Setup auto fifo product 2. Receive 1@10 and 1@20 3. Process a RO: -…
When using an auto fifo product as part of the repair, the COGS
won't be based on the used product
To reproduce the issue:
1. Setup auto fifo product
2. Receive 1@10 and 1@20
3. Process a RO:
- Invoice method: After repair
- Parts:
- Add 1 x fifo product
4. Create and post the invoice
5. Open its journal items
Error: Cogs are $20 instead of $10
When posting the invoice, we generate the COGS:
https://github.com/odoo/odoo/blob/4df156164cf1d2764ba23682beee588777457fd6/addons/stock_account/models/account_move.py#L47-L48
We therefore compute the "anglo saxon unit price":
https://github.com/odoo/odoo/blob/4df156164cf1d2764ba23682beee588777457fd6/addons/stock_account/models/account_move.py#L133
However, there isn't any override to handle the RO case, so it leads
to the default mechanism, i.e. the standard price of the product:
https://github.com/odoo/odoo/blob/4df156164cf1d2764ba23682beee588777457fd6/addons/stock_account/models/account_move.py#L294-L295
https://github.com/odoo/odoo/blob/4df156164cf1d2764ba23682beee588777457fd6/addons/stock_account/models/account_move.py#L294-L295
https://github.com/odoo/odoo/blob/7cd7563f6708331bb6baf0e06d07a9f9ee329e38/addons/stock_account/models/product.py#L753-L757
And, since the first product is out, its standard price is now based
on the next candidate: $20
About the `sudo`: an accountman has not any access to `repair`, so
posting such an invoice would raise an error. Since this diff is
specific to Odoo 16, the idea is not to impact any security rules
and rather minimize the changes.
Note: Indeed, `repair` does not depend on `stock_account`, so this
commit could lead to a traceback if the bridge is removed. I delegate
this issue to the error of dependencies. Anyway, removing the bridge
would lead to other bugs. Hopefully, this has been fixed on master [1].
[1] https://github.com/odoo/odoo/commit/f7dbdec11b74f8c7d969763d8c5cf09542a47f86
OPW-4166570
Forward-Port-Of: odoo/odoo#193588
Forward-Port-Of: odoo/odoo#193076Since commit 567b8d676b3b6dc747df4d9bf10e7a91b4cb61bb It used to insert a placeholder when the data is not there but we won't on real report 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#193531
Original PR description
Since commit 567b8d676b3b6dc747df4d9bf10e7a91b4cb61bb It used to insert a placeholder when the data is not there but we won't on real report 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#193531
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
Original PR description
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files ready for import: - [200_products.xlsx](https://github.com/user-attachments/files/17848187/200_products.xlsx) - [200_pricelist_rules.xlsx](https://github.com/user-attachments/files/17848188/200_pricelist_rules.xlsx) Issue ----- Pricelist is imported with 400 price rules. Cause
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files…
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files ready for import: - [200_products.xlsx](https://github.com/user-attachments/files/17848187/200_products.xlsx) - [200_pricelist_rules.xlsx](https://github.com/user-attachments/files/17848188/200_pricelist_rules.xlsx) Issue ----- Pricelist is imported with 400 price rules. Cause ----- The back-end signals there's nothing left to import by having `nextrow` be falsy[^1]. The front-end ignores this, and continues looping until it's taken as many steps as it initially planned. The upfront `totalSteps` calculation is too high when an imported record has a number of nested relational records that's larger than the batch size. Solution -------- If the ORM returns a falsy `nextrow` value, call `stopImport`. opw-4164056 [^1]: see note on f58368210c9c Forward-Port-Of: odoo/odoo#188092
When receiving an ubl file by mail, we need to ensure that the company from where we retrieve the product is the same as the invoice company, otherwise we end up with an UserError ("Incompatible companies on records"). Steps: - Have 2 company (X being id == 1 and Y being id == 2) - Create a product "Locations et leasing opérationnel" with X setas company_id - Create an alias on company Y vendor bills journals - Sent the `bis3_bill_example.xml` located in `addons/account_edi_ubl_cii/tests/tes
Original PR description
When receiving an ubl file by mail, we need to ensure
that the company from where we retrieve the product is the same as
the invoice company, otherwise we end up with an UserError ("Incompatible companies on records").
Steps:
- Have 2 company (X being id == 1 and Y being id == 2)
- Create a product "Locations et leasing opérationnel" with X setas
company_id
- Create an alias on company Y vendor bills journals
- Sent the `bis3_bill_example.xml` located in `addons/account_edi_ubl_cii/tests/test_files/`
to the email alias
- Open the created bill
-> Error in the chatter: "Error importing attachment ... as invoice
(decoder=_import_invoice_ubl_cii)
opw-4444747
Forward-Port-Of: odoo/odoo#193786The docstring of `@route` states that it accepts any iterable for the `methods` argument, but several places in the source code wrongly expected a list, and break if it is a tuple. Forward-Port-Of: odoo/odoo#193733 Forward-Port-Of: odoo/odoo#193621
Original PR description
The docstring of `@route` states that it accepts any iterable for the `methods` argument, but several places in the source code wrongly expected a list, and break if it is a tuple. Forward-Port-Of: odoo/odoo#193733 Forward-Port-Of: odoo/odoo#193621
Forward-Port-Of: odoo/odoo#193775
Original PR description
Forward-Port-Of: odoo/odoo#193775
### Before When creating a new vendor bill through Vendors > 'Example Vendor 1'> Vendor Bills (magic button), if the vendor was changed to 'Example Vendor 2' and the draft saved then it would show up under the 'Example Vendor 1' in the Partner Ledger instead of under the correct 'Example Vendor 2'. This is due to the partner_id being defined in the context when going through the 'Example Vendor 1' view. ### Now During the creation of the account move lines we use a context without the
Original PR description
### Before When creating a new vendor bill through Vendors > 'Example Vendor 1'> Vendor Bills (magic button), if the vendor was changed to 'Example Vendor 2' and the draft saved then it would show up under the 'Example Vendor 1' in the Partner Ledger instead of under the correct 'Example Vendor 2'. This is due to the partner_id being defined in the context when going through the 'Example Vendor 1' view. ### Now During the creation of the account move lines we use a context without the default_partner_id. The Partner Ledger now shows the draft bill entry under the right vendor. opw-4407709 Forward-Port-Of: odoo/odoo#193629 Forward-Port-Of: odoo/odoo#192567
Steps to reproduce the bug: - Create a storable product “C1”: - MTO + Manufacture - BoM: - Component: 1 unit of C2 - Create a storable product “P1” - Component: 1 unit of C1 - Create a MO to produce one unit of P1: - Confirm - A child MO with one unit of C1 is created - Update the qty producing of P1 to 2 - A new MO to produce one unit of C1 is created Problem: The MO of P1 is linked only to the last MO of C1. This occurs because the “created_productio
Original PR description
Steps to reproduce the bug: - Create a storable product “C1”: - MTO + Manufacture - BoM: - Component: 1 unit of C2 - Create a storable product “P1” - Component: 1 unit of C1 - Create a MO to produce…
Steps to reproduce the bug:
- Create a storable product “C1”:
- MTO + Manufacture
- BoM:
- Component: 1 unit of C2
- Create a storable product “P1”
- Component: 1 unit of C1
- Create a MO to produce one unit of P1:
- Confirm
- A child MO with one unit of C1 is created
- Update the qty producing of P1 to 2
- A new MO to produce one unit of C1 is created
Problem:
The MO of P1 is linked only to the last MO of C1.
This occurs because the “created_production_id” field in the stock move of C1 (associated with the MO of P1) is updated to reference the most recent MO of C1. Additionally, since the following fix:
https://github.com/odoo/odoo/commit/c5b3f41fbd442def9e97acb023a00862e7d03eb3#diff-6d86bc8c3e9aa22586656b702849c5bbbb00c9b97ffd08bc0842e0e68f8948f9R74
Each new MO has its own procurement group.
As a result, when using the _get_children method:
- The method retrieves stock moves linked to the current procurement group.
- It uses their created_production_id to fetch the associated procurement group and then retrieves the related production_id.
However, since the two child MOs of C1 belong to different procurement groups, only the latest MO is returned.
opw-4450210
Forward-Port-Of: odoo/odoo#193829
Forward-Port-Of: odoo/odoo#192952Issue: * Accrued Expense Entry shows wrong currency symbol for 'Total in Currency' for multicurrency POs. Steps To Reproduce: * In a multicurrency environmentcreate a PO with a currency different than the one of the company and confirm it. * Receive the product and validate it. * On the PO action wheel, create `Accrued Expense Entry`. * Notice 'Total in Currency' is set to the wrong currency. Solution: * In `_compute_move_vals` I set the move's `currency_id` of the accrual move to t
Original PR description
Issue: * Accrued Expense Entry shows wrong currency symbol for 'Total in Currency' for multicurrency POs. Steps To Reproduce: * In a multicurrency environmentcreate a PO with a currency different than the one of the company and confirm it. * Receive the product and validate it. * On the PO action wheel, create `Accrued Expense Entry`. * Notice 'Total in Currency' is set to the wrong currency. Solution: * In `_compute_move_vals` I set the move's `currency_id` of the accrual move to that of the order's currency. * in `create_entries` I prevent the creation of the accrual move if orders have different currencies. * Please note that there were no issues with currency conversions. opw-4072932 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#177929
19 changes
Enhancements to existing features
The test_web_studio module now includes an explicit access permission configuration. This helps keep automated testing aligned with the expected security setup and reduces the risk of permission-related test issues.
Original PR description
odoo/odoo#192112
Product price display markup was aligned with recent website shop changes by using a standard page element instead of a heading. This helps keep rental and subscription product pages consistent and supports better search engine structure.
Original PR description
change product price tag from h3 to div task-4368329
The activity management component has been moved into a shared foundation used by several Odoo apps. This should make activity-related behavior more consistent across approvals, documents, signing, and VoIP while reducing duplicated maintenance work.
Spreadsheet view components were simplified so they no longer send unnecessary internal updates to other parts of the spreadsheet engine. This reduces unintended interactions and helps keep collaborative spreadsheet behavior more predictable.
Original PR description
The CoreView plugins have a local state that is directly derived from the core data. As such, they should not have any impact on plugins other than themselves, especially not on core plugins. This revision removes the dispatch fro the core view plugins altogether as they don't and should not dispatch anything. Task: 4241403
*: account_followup,account_reports,mrp_account_enterprise, sign,snailmail_account_followup,web_studio This commit allows to only enable when needed the "autoprefixing" feature of CSS rules used for compatibility with (very) old browsers. To do so, it introduces the boolean `t-autoprefix` attribute on `<t t-call-assets="..."/>` in QWeb's templates. As those prefixes (e.g. `-webkit-`, `-moz-`...) are basically only required for wkhtmltopdf compatibility nowadays, only the reports' bundl
Original PR description
*: account_followup,account_reports,mrp_account_enterprise, sign,snailmail_account_followup,web_studio This commit allows to only enable when needed the "autoprefixing" feature of CSS rules used for compatibility with (very) old browsers. To do so, it introduces the boolean `t-autoprefix` attribute on `<t t-call-assets="..."/>` in QWeb's templates. As those prefixes (e.g. `-webkit-`, `-moz-`...) are basically only required for wkhtmltopdf compatibility nowadays, only the reports' bundles stil use it. Also disabling it for the other bundles (backend, frontend...) result into a slight gain in the bundles' size (+/- 20ko uncompressed on a database "all").
Resolved issues and error corrections
The automated tests for spreadsheet-related document features were adjusted to match a recent spreadsheet engine update. This helps keep quality checks reliable and reduces the risk of false test failures during future releases.
Original PR description
Adapt the tests to the new o-spreadsheet update. See https://github.com/odoo/odoo/pull/193691
Miscellaneous changes
How to reproduce: - Install documents_hr_payroll - Go to Marc Demo employee file - Activate debug and click on View:form item of the debug menu - Move the field "work_contact_id" in the sheet tag and make it visible - Return on the Marc Demo employee file - Set a new work contact for Marc Demo (using the field): newContact - Go to the payslip and confirm one of the payslip of Marc - Open HR Payroll directory in the Document App - The payslip of Marc is present, select it and click on "S
Original PR description
How to reproduce: - Install documents_hr_payroll - Go to Marc Demo employee file - Activate debug and click on View:form item of the debug menu - Move the field "work_contact_id" in the sheet tag and…
How to reproduce: - Install documents_hr_payroll - Go to Marc Demo employee file - Activate debug and click on View:form item of the debug menu - Move the field "work_contact_id" in the sheet tag and make it visible - Return on the Marc Demo employee file - Set a new work contact for Marc Demo (using the field): newContact - Go to the payslip and confirm one of the payslip of Marc - Open HR Payroll directory in the Document App - The payslip of Marc is present, select it and click on "Share" The payslip is shared with "Mitchell Admin" and "newContact" so Marc Demo won't be able to see it because it is not shared with the partner of his user. The problem was that the employee work_contact_id partner was used to give access to the payslip (and as contact of the payslip document) while for some employee, the work contact is different than the partner associated with their user. In that case, the payslip is shared with a partner different than the employee user partner and the employee cannot see the payslip. We solve the problem by always sharing the payslip with the partner of the employee user if it exists and we fallback only to the work contact if there is no user associated with the employee. Task-4404015 Forward-Port-Of: odoo/enterprise#77060 Forward-Port-Of: odoo/enterprise#75673
task-4285805 Forward-Port-Of: odoo/enterprise#77208 Forward-Port-Of: odoo/enterprise#76950
Original PR description
task-4285805 Forward-Port-Of: odoo/enterprise#77208 Forward-Port-Of: odoo/enterprise#76950
Description of the issue this commit addresses: The Italian annual tax report lacks an integer rounding feature. --- Desired behavior after this commit is merged: The Italian annual tax report uses the HALF-UP rounding method. --- Community PR: https://github.com/odoo/odoo/pull/164064 Task-3479785 Forward-Port-Of: odoo/enterprise#77142 Forward-Port-Of: odoo/enterprise#62405
Original PR description
Description of the issue this commit addresses: The Italian annual tax report lacks an integer rounding feature. --- Desired behavior after this commit is merged: The Italian annual tax report uses the HALF-UP rounding method. --- Community PR: https://github.com/odoo/odoo/pull/164064 Task-3479785 Forward-Port-Of: odoo/enterprise#77142 Forward-Port-Of: odoo/enterprise#62405
The code currently tries to access `private_key_id_id` which is actually `private_key_id`. opw-4466293 Forward-Port-Of: odoo/enterprise#77159
Original PR description
The code currently tries to access `private_key_id_id` which is actually `private_key_id`. opw-4466293 Forward-Port-Of: odoo/enterprise#77159
Fix preparation display table name computation. Forward-Port-Of: odoo/enterprise#77169
Original PR description
Fix preparation display table name computation. Forward-Port-Of: odoo/enterprise#77169
Remove the workaround introduced in https://github.com/odoo/enterprise/pull/76546 because the root cause has been fixed in the linked community PR. https://github.com/odoo/odoo/pull/193256 Forward-Port-Of: odoo/enterprise#77012
Original PR description
Remove the workaround introduced in https://github.com/odoo/enterprise/pull/76546 because the root cause has been fixed in the linked community PR. https://github.com/odoo/odoo/pull/193256 Forward-Port-Of: odoo/enterprise#77012
This file was not loaded in the manifest and is a duplicated of `/mrp_account_enterprise/views/cost_structure_report.xml` Forward-Port-Of: odoo/enterprise#77177
Original PR description
This file was not loaded in the manifest and is a duplicated of `/mrp_account_enterprise/views/cost_structure_report.xml` Forward-Port-Of: odoo/enterprise#77177
Issue: ------ When printing the reports which are Print Check(Top, Middle and Bottom), the address of that particular report is not being formatted properly which makes the printed report poor formatted/ugly. There are three types/formats of report which are Print Check(Top, Middle and Bottom) none of them are getting printed properly(address). View Ref: [Link](https://github.com/odoo/enterprise/blob/saas-17.4/l10n_us_check_printing/report/print_check.xml#L17) **Note:** Not the blank repor
Original PR description
Issue: ------ When printing the reports which are Print Check(Top, Middle and Bottom), the address of that particular report is not being formatted properly which makes the printed report poor…
Issue: ------ When printing the reports which are Print Check(Top, Middle and Bottom), the address of that particular report is not being formatted properly which makes the printed report poor formatted/ugly. There are three types/formats of report which are Print Check(Top, Middle and Bottom) none of them are getting printed properly(address). View Ref: [Link](https://github.com/odoo/enterprise/blob/saas-17.4/l10n_us_check_printing/report/print_check.xml#L17) **Note:** Not the blank reports like Print Blank Check(Top, Middle and Bottom). Solution: ----------- Add an adequate width to the addresses class i.e; `ckus_payee_addr`. Steps to reproduce:- -------------------- 1. Create a demo db in version 18.0 with `l10n_us_check_printing` module installed. 2. Create a payment record and confirm it. 3. Try printing that payment with any of (top/middle/bottom) Print Check reports. 4. check with the address which would've broken. Reference Screenshots: **Without Fix:**  **With Fix:**  OPW - 4454079 UPG - 2408700 Forward-Port-Of: odoo/enterprise#76706
As of now the gantt popover delete button is added through gantt-popover template which is making it harder to extend its functionality. In this PR we move the button to the ganttPopoverProps. We can pass the button through JS side, thus being to extend it's functionality of reccurence deletion. Made a dedicated hook function to combine the logic used in both form and gantt view in reccurence deletion of shifts. The unschedule gantt popover button is migrated to JS side to preserve the
Original PR description
As of now the gantt popover delete button is added through gantt-popover template which is making it harder to extend its functionality. In this PR we move the button to the ganttPopoverProps. We can pass the button through JS side, thus being to extend it's functionality of reccurence deletion. Made a dedicated hook function to combine the logic used in both form and gantt view in reccurence deletion of shifts. The unschedule gantt popover button is migrated to JS side to preserve the order of buttons in gantt popover. task-4224792 Forward-Port-Of: odoo/enterprise#76937 Forward-Port-Of: odoo/enterprise#71759
Changes in enterprise related to PR https://github.com/odoo/odoo/pull/157968 Added the resource_color as dependency for the widget to display the color task-3801551 Forward-Port-Of: odoo/enterprise#77058 Forward-Port-Of: odoo/enterprise#70453
Original PR description
Changes in enterprise related to PR https://github.com/odoo/odoo/pull/157968 Added the resource_color as dependency for the widget to display the color task-3801551 Forward-Port-Of: odoo/enterprise#77058 Forward-Port-Of: odoo/enterprise#70453
Steps to reproduce: 1. Switch to mobile view. 2. The magnifier button is not working. 3. when adding a member through the share panel, 'people with access' section shows weirdly. 4. Send and discard button display issue on the share panel. Technical Reason: SearchBar is being handled in the control panel and was not passed the searchBarToggler in the toggler attribute, and add a condition on the 'searchBarToggler.component' only shows if documents are not selected. After this Commit:
Original PR description
Steps to reproduce: 1. Switch to mobile view. 2. The magnifier button is not working. 3. when adding a member through the share panel, 'people with access' section shows weirdly. 4. Send and discard button display issue on the share panel. Technical Reason: SearchBar is being handled in the control panel and was not passed the searchBarToggler in the toggler attribute, and add a condition on the 'searchBarToggler.component' only shows if documents are not selected. After this Commit: 1. The magnifier button will hide/display the search bar and the magnifier button will be hidden if we select a document. 2. In the share panel, the 'people with access' section, will show properly. 3. Buttons will be in a proper width. Task-4419375 Forward-Port-Of: odoo/enterprise#76039
Steps to reproduce: 1. press 'Cntrl+a' will select and deselect. 2. after one operation of selecting/deselecting it loses focus. 3. focus moved to the search bar. 4. due to this the 'Cntrl+a' is not working until you click somewhere. 5. select/deselect not working properly. It also fixes issues related to the 'shift+arrow' selection flow 1. Go to the documents list view 2. Select any not-the-last record 3. Hold Shift and hit down arrow 4. The record below is not selected as it should
Original PR description
Steps to reproduce: 1. press 'Cntrl+a' will select and deselect. 2. after one operation of selecting/deselecting it loses focus. 3. focus moved to the search bar. 4. due to this the 'Cntrl+a' is not working until you click somewhere. 5. select/deselect not working properly. It also fixes issues related to the 'shift+arrow' selection flow 1. Go to the documents list view 2. Select any not-the-last record 3. Hold Shift and hit down arrow 4. The record below is not selected as it should Technical Reason: In the Search bar, the attribute autofocus was evaluating 'true' every time because of sending 'undefined' due to this default props set it to 'true'. After this Commit: 1. focus will not be lost. 2. select/deselect will work properly. Task-4413608 Forward-Port-Of: odoo/enterprise#75866
The details panel was incorrectly showing "Shared With Me" instead of "Company". Missing in 9510ae62 or 0f481b67 (forward ports of 23fb26ae), merged so close together on a Christmas and Freeze Eve. Task-4293838 Task-4266789 Forward-Port-Of: odoo/enterprise#77139
Original PR description
The details panel was incorrectly showing "Shared With Me" instead of "Company". Missing in 9510ae62 or 0f481b67 (forward ports of 23fb26ae), merged so close together on a Christmas and Freeze Eve. Task-4293838 Task-4266789 Forward-Port-Of: odoo/enterprise#77139
50 changes
Enhancements to existing features
Brings Korean translation to the recently released accounting modules for the Republic Of Korea. task-4415944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
Brings Korean translation to the recently released accounting modules for the Republic Of Korea. task-4415944 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
The POS session chatter now shows the expected opening amount based on the previous session's closing balance, rather than a manually edited value. This keeps cash opening records and displayed differences accurate for store staff and managers.
Original PR description
- Resolved issue where the "expected opening" amount in the POS session chatter incorrectly displayed the manually modified amount instead of the previous closing balance. - Adjusted the sequence of setting `cash_register_balance_start` to maintain consistent chatter messages with accurate deltas. task-id: 4471816 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
Fixes an issue where the Discuss call sidebar could fail when a participant session was missing expected membership information. This improves reliability for users viewing call participant cards and avoids disruptive error screens.
Original PR description
Since [1], the session getter for the sidebar cards assumes that channelMember is always defined on rtcSessions, this could cause tracebacks. [1]: https://github.com/odoo/odoo/pull/190050
Recruitment application creation now checks a candidate's company before linking records, preventing errors when similar candidates exist in another company. It also allows applications to link to candidates without a company, helping teams process incoming applications more reliably.
Original PR description
Before this commit, the creation of an applicant though `message_new`, It would check for existing candidates but not for the company; however, if the company is different, an error would be raised upon applicant creation and prevent it. This commit adds the company to the candidate check to avoid raising the constraint, and adjusts the said constraint so that it allows linking to candidates with no company set.
Fixes an issue where repeatedly clicking the SEO notification button could open several optimization dialogs at once. The notification now closes properly after the button is clicked, keeping the website publishing flow clearer and less confusing.
Original PR description
Since [1], clicking the button while the SEO toaster was visible could repeatedly open the SEO optimization dialog, resulting in multiple instances of the dialog box being opened. This commit addresses this issue by: - Adding logic to ensure toasters close properly when a button is clicked. (i.e the SEO toaster when you publish a page with missing important SEO informations). [1]: https://github.com/odoo/odoo/commit/45ea6e4a4a5c8e314b110a45198fbe3d57bb996e task-4384773
This fixes an accounting setup issue by ensuring the system only tries to retrieve fields that belong to the company record. It helps prevent errors during configuration or template processing when unrelated fields could otherwise be requested.
Original PR description
We can only attempt to get fields from `res.company` model. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change corrects an automated test setup for restaurant self-order online payments so it works reliably in no-demo test environments. It helps keep release validation stable without changing customer-facing behavior.
Original PR description
The `test_01_online_payment_with_multi_table` fails in runbot when running in "no-demo" mode. This is because it's not using the correct setup for testing restaurant configs. We ensure, in this commit, that the test uses the correct setup for testing by inheriting from the pos_restaurant's TestFrontendCommon. The total amount in the tour is adjusted because the test product from the default setup has no tax. Runbot Error: [111171](https://runbot.odoo.com/odoo/runbot.build.error/111171)
Department employee totals now respect the companies currently active for the user. This prevents misleading counts in multi-company setups and adds test coverage to help keep the behavior reliable.
Original PR description
- edit the `_read_group` domain to include the current active companies Task: 4353391 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Employee profile images are now displayed correctly when using the Employees app on a mobile-sized screen. This fixes a visual issue that made employee records harder to recognize on phones or narrow displays.
Original PR description
Steps to Reproduce: • Install the Employee app. • Switch to mobile view. • Open the Employee app; employee images are not visible. Cause: CSS was not defined for screen sizes smaller than medium. Fix: Added CSS rules for screens smaller than medium to ensure employee images are displayed correctly in mobile view. task-4380126 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now drag selected text from one field and drop it into another field in form views. This fixes a small but frustrating editing issue and makes data entry smoother.
Original PR description
Before this commit: It is not able to drag and drop text between fields in the form view. After this commit: It is possible to drag and drop text between fields in the form view. Task-4286285
This fix makes the full message composer start with the expected empty paragraph when default content is present. It prevents formatting actions like bullet lists from accidentally applying to the whole message, making message editing more predictable for users.
Original PR description
**Problem**: When a `default_body` is added, it contains only a `div` in the editable area. This causes issues with some editor features, such as bullet lists, which do not behave as expected. **Solution**: Ensure the content includes a `<p><br/></p>` by default, selected for proper functionality, aligning with the default behavior of the editor. **Steps to reproduce**: 1. Go to Sales > Send Message > Full Composer. 2. Write content spanning 2+ lines. 3. On a new line, apply a bullet list. 4. Observe that the bullet list is applied to the entire content instead of just the current line. opw-4419775 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error during checkout when a customer buys only services and changes their delivery address. The checkout now handles cases where no delivery option is needed, allowing customers to continue smoothly.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Go to eCommerce; 2. add only services to cart; 3. go to checkout; 4. on payment page, go back to Delivery page; 5. add a second address if needed; 6. change selected address. Issue ----- > Uncaught Promise > Cannot read properties of null Cause ----- The query selector in `_canEnabledMainButton` assumes a radio input is always present on this step, but this is only the case when deliverable products were added to the cart. Solution -------- Skip the remainder of the method if the delivery radio wasn't found. opw-4365246 opw-4422905
Opening the invoice report in the report editor could fail for Kenyan OSCU setups because the report used invalid page structure. The report layout has been corrected so users can open and edit it reliably.
Original PR description
- Install `web_studio` and `l10n_ke_edi_oscu`
- Open the report editor from anywhere
- Search for report_invoice
- Open it
- Traceback
This is caused by the div inside the table, this is incorrect in HTML
See https://html.spec.whatwg.org/multipage/tables.html#the-table-element
replace with a tr/td
opw-4369019Fixed an issue where sharing one error dialog could also trigger sharing actions for other stacked error dialogs. This prevents duplicate link copies and notifications, making error sharing clearer and less confusing for users.
Original PR description
This commit fixes an issue with the sharing functionality of the error dialogs where if multiple of these were stacked onto each other, the share button would trigger the URL copy and notification for all errors instead of only the relevant one.
This update prevents subscription sales orders from comparing empty date fields. It helps avoid unnecessary errors when start or next invoice dates have not yet been set.
Original PR description
The fields start_date and next_invoice_date of sale.order can be null. We only want to compare to dates. So its better to check that the dates are not null before comparing them.
This change updates automated tests for the Documents Spreadsheet pivot side panel to match a recent spreadsheet interaction fix. It helps keep quality checks reliable so future updates do not accidentally reintroduce issues around focusing spreadsheet elements.
Original PR description
The hoot dom helpers rely on a single 'pointerdown' to focus its node which is precisely the behaviour that we act upon in https://github.com/odoo/o-spreadsheet/commit/85aaab61dd3fc4ea2a8c10f9e70b8e7fa650f170
Features or functions removed from Odoo
The Sales Commission module no longer includes a temporary workaround that is no longer needed. The underlying issue has been fixed elsewhere, reducing unnecessary complexity while keeping the expected behavior intact.
Original PR description
Remove the workaround introduced in https://github.com/odoo/enterprise/pull/76546 because the root cause has been fixed in the linked community PR. https://github.com/odoo/odoo/pull/193256
Miscellaneous changes
Steps to reproduce the bug: - Create a workcenter: Problem: All the resource calendar from all the companies are displayed. opw-4478393 Forward-Port-Of: odoo/odoo#193634
Original PR description
Steps to reproduce the bug: - Create a workcenter: Problem: All the resource calendar from all the companies are displayed. opw-4478393 Forward-Port-Of: odoo/odoo#193634
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files ready for import: - [200_products.xlsx](https://github.com/user-attachments/files/17848187/200_products.xlsx) - [200_pricelist_rules.xlsx](https://github.com/user-attachments/files/17848188/200_pricelist_rules.xlsx) Issue ----- Pricelist is imported with 400 price rules. Cause
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files…
Versions -------- - 17.0+ Steps ----- 1. Create a pricelist with 200 price rules; 2. export pricelist to xlsx; 3. delete original pricelist; 4. import pricelist, setting batch size to 100. Test files ready for import: - [200_products.xlsx](https://github.com/user-attachments/files/17848187/200_products.xlsx) - [200_pricelist_rules.xlsx](https://github.com/user-attachments/files/17848188/200_pricelist_rules.xlsx) Issue ----- Pricelist is imported with 400 price rules. Cause ----- The back-end signals there's nothing left to import by having `nextrow` be falsy[^1]. The front-end ignores this, and continues looping until it's taken as many steps as it initially planned. The upfront `totalSteps` calculation is too high when an imported record has a number of nested relational records that's larger than the batch size. Solution -------- If the ORM returns a falsy `nextrow` value, call `stopImport`. opw-4164056 [^1]: see note on f58368210c9c Forward-Port-Of: odoo/odoo#193817 Forward-Port-Of: odoo/odoo#188092
Description of the issue this PR addresses: I. Commit [1] handled cases of pressing enter at the edge of an anchor, which is a child of an unbreakable element. The commit inserted the `br`'s after anchors; however, it missed the situation where the anchor tags are block elements nested inside an unbreakable element inside a `li`. In this specific case, inserting two `br` tags after a anchor block resulted in the creation of two new lines. This PR handles that case by only inserting one `
Original PR description
Description of the issue this PR addresses: I. Commit [1] handled cases of pressing enter at the edge of an anchor, which is a child of an unbreakable element. The commit inserted the `br`'s after…
Description of the issue this PR addresses: I. Commit [1] handled cases of pressing enter at the edge of an anchor, which is a child of an unbreakable element. The commit inserted the `br`'s after anchors; however, it missed the situation where the anchor tags are block elements nested inside an unbreakable element inside a `li`. In this specific case, inserting two `br` tags after a anchor block resulted in the creation of two new lines. This PR handles that case by only inserting one `br` tag after the anchor, rather than both. II. Previously when changing selection between links in website, when clicking on a link the previous link used to get selected. This commit makes sure that when changing selection in between links it selects the correct link. III. This PR ensures that the link popover closes when the cursor moves outside the link. [1]: https://github.com/odoo/odoo/commit/df6f8dd0c54c40ea7edbd3821ae068d79b1b7af7 task-3631910 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192761 Forward-Port-Of: odoo/odoo#171469
Before this commit, if there was a custom one2many field with the same related field as an existing one, it would cause issues in PoS when capturing an order. For example, if there was a custom field in pos.order with a related field of order_id, adding products to the order would not show them in the order summary. opw-4462991 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193041
Original PR description
Before this commit, if there was a custom one2many field with the same related field as an existing one, it would cause issues in PoS when capturing an order. For example, if there was a custom field in pos.order with a related field of order_id, adding products to the order would not show them in the order summary. opw-4462991 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193041
Before this commit, when a time off request based on extra hours was set to draft, a new overtime record with negative duration was created. This commit makes sure that the record is only created when the time off request is in the state confirm or validate. task-4096548 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189711 Forward-Port-Of: odoo/odoo#185962
Original PR description
Before this commit, when a time off request based on extra hours was set to draft, a new overtime record with negative duration was created. This commit makes sure that the record is only created when the time off request is in the state confirm or validate. task-4096548 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#189711 Forward-Port-Of: odoo/odoo#185962
_* = website_crm, website_project, website_hr_recruitment - This commit reverts [#128964 ](https://github.com/odoo/odoo/pull/128964)because the feature has been made in generic instead of doing it in project and helpdesk which is caused some issues in other models using website form feature. Also, the feature adds more complexity to just add a warning in the task description and in a message linked to the task generated to notify the user the task has been generated from an external submiss
Original PR description
_* = website_crm, website_project, website_hr_recruitment - This commit reverts [#128964 ](https://github.com/odoo/odoo/pull/128964)because the feature has been made in generic instead of doing it in project and helpdesk which is caused some issues in other models using website form feature. Also, the feature adds more complexity to just add a warning in the task description and in a message linked to the task generated to notify the user the task has been generated from an external submission (when the email set in the website form is not the one set on the user who submits the form) since the feature used the email set to search the partner to set on the task. task-4295363 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192322
**Behaviour before PR:** In website, in some snippets font-size of paragraph like elements is not displayed correctly in toolbar. This issue happens because in `getFontSizeDisplayValue` method if there is no font-size class applied to element then it will set the value of `--font-size-base` css variable which is `16px`. **Behaviour after PR is merged:** Now, `getFontSizeDisplayValue` method will set font-size using `getComputedStyle` if there is no font related class is applied to that
Original PR description
**Behaviour before PR:** In website, in some snippets font-size of paragraph like elements is not displayed correctly in toolbar. This issue happens because in `getFontSizeDisplayValue` method if there is no font-size class applied to element then it will set the value of `--font-size-base` css variable which is `16px`. **Behaviour after PR is merged:** Now, `getFontSizeDisplayValue` method will set font-size using `getComputedStyle` if there is no font related class is applied to that element. task-4420329 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#191577
Versions -------- - 16.0 (fix issue) - 17.0+ (skip useless constraint) Commit 3871ae2c6c45 enabled automated m2m CRUD in 17.0+ Steps ----- 1. Create an automated action on a Model with tags (e.g. Contact); 2. set trigger to On Creation; 3. in data to write, have evaluation type to Value; 4. fill in the value (e.g. 1); 5. create a record that would trigger the automation. Issue ----- > ValueError: Wrong value for res.partner.category_id: 1 Cause ----- In the `eval_value`
Original PR description
Versions -------- - 16.0 (fix issue) - 17.0+ (skip useless constraint) Commit 3871ae2c6c45 enabled automated m2m CRUD in 17.0+ Steps ----- 1. Create an automated action on a Model with tags (e.g.…
Versions -------- - 16.0 (fix issue) - 17.0+ (skip useless constraint) Commit 3871ae2c6c45 enabled automated m2m CRUD in 17.0+ Steps ----- 1. Create an automated action on a Model with tags (e.g. Contact); 2. set trigger to On Creation; 3. in data to write, have evaluation type to Value; 4. fill in the value (e.g. 1); 5. create a record that would trigger the automation. Issue ----- > ValueError: Wrong value for res.partner.category_id: 1 Cause ----- In the `eval_value` method, the `many2many` type doesn't get covered. Solution -------- 1. Have `eval_value` handle `many2many` values (linking them to relevant record, and existing as a single expression per column). 2. Undo 09a6df204f2a which disallowed writing by reference for many2many fields. This change makes writing by reference possible as well, and allows you to select the desired record, instead of having to manually fill in its ID. opw-4054461 Forward-Port-Of: odoo/odoo#193610 Forward-Port-Of: odoo/odoo#190047
Fonctionnal changes: - Add a `Clear cache` button in debug mode to allow Android and IOS devices to clear the cache easily. - Ensure that the splitting and transferring of orders works correctly when the order is sent to the server. Technical changes: - Ensure that change quantities are numbers (technical change). - Do not send items that wasn't sent to the preparation display when reaching the receipt screen. - When deleting all orderlines with backspace on the product_screen and cl
Original PR description
Fonctionnal changes: - Add a `Clear cache` button in debug mode to allow Android and IOS devices to clear the cache easily. - Ensure that the splitting and transferring of orders works correctly when the order is sent to the server. Technical changes: - Ensure that change quantities are numbers (technical change). - Do not send items that wasn't sent to the preparation display when reaching the receipt screen. - When deleting all orderlines with backspace on the product_screen and clicking on release table, cancel the order if it was sent to the server Forward-Port-Of: odoo/odoo#193024
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
Original PR description
Devices detected through usb don't always have there manufactured and product name which can be retrieved. For example, our foot pedal in the office doesn't which leads to it having a name `"None - None"` in Odoo. After this PR if a device doesn't have a product name / manufacturer name it will be saved as `"Unknown input device"` task-4472585 Forward-Port-Of: odoo/odoo#193295 Forward-Port-Of: odoo/odoo#193277
Since commit 567b8d676b3b6dc747df4d9bf10e7a91b4cb61bb It used to insert a placeholder when the data is not there but we won't on real report 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#193531
Original PR description
Since commit 567b8d676b3b6dc747df4d9bf10e7a91b4cb61bb It used to insert a placeholder when the data is not there but we won't on real report 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#193531
To run tours or unit tests, we instrument Chrome and run it headlessly. One of the arguments passed while doing so is the "window size" it needs to use to emulate desktop-like or mobile-like screen sizes. Newer versions of Chrome sometimes introduce slight variation between the Chrome's window size and its viewport size (due to changes in the interface layout...). While often not a deal-breaker, Chrome 128 forces a min-width for the window greater than the breakpoint we use for smaller/
Original PR description
To run tours or unit tests, we instrument Chrome and run it headlessly. One of the arguments passed while doing so is the "window size" it needs to use to emulate desktop-like or mobile-like screen…
To run tours or unit tests, we instrument Chrome and run it headlessly. One of the arguments passed while doing so is the "window size" it needs to use to emulate desktop-like or mobile-like screen sizes. Newer versions of Chrome sometimes introduce slight variation between the Chrome's window size and its viewport size (due to changes in the interface layout...). While often not a deal-breaker, Chrome 128 forces a min-width for the window greater than the breakpoint we use for smaller/mobile-like testing (e.g. 375px, which matches a small smartphone). This commit changes the way we instrument Chrome to use a specific size by using the DevTools' Emulated Device (aka. "responsive mode"). It allows to apply a very specific viewport's size independently of the actual Chrome's window size, which makes it way more predictable than before. Note: this change is part of the preparation to support the "new" headless mode, which becomes the default starting with Chrome 128. Reference: - https://chromedevtools.github.io/devtools-protocol/tot/Emulation/#method-setDeviceMetricsOverride Forward-Port-Of: odoo/odoo#193847 Forward-Port-Of: odoo/odoo#193696
Description of the issue/feature this PR addresses: This PR addresses the issue where the currency column repeats in view_move_line_payment_tree view when there are multiple active currencies. This can lead to confusion and clutter in the user interface. Current behavior before PR: Before this PR, when multiple active currencies are set up, the currency column is duplicated in view_move_line_payment_tree view, displaying the same information multiple times. Desired behavior after PR is m
Original PR description
Description of the issue/feature this PR addresses: This PR addresses the issue where the currency column repeats in view_move_line_payment_tree view when there are multiple active currencies. This can lead to confusion and clutter in the user interface. Current behavior before PR: Before this PR, when multiple active currencies are set up, the currency column is duplicated in view_move_line_payment_tree view, displaying the same information multiple times. Desired behavior after PR is merged: After merging this PR, the currency column will appear only once when the optional hide setting is enabled, even with multiple active currencies, resulting in a cleaner and more readable report. [Video](https://drive.google.com/file/d/1bL8L88y81HomX6Q9MkErmOGVDWHdE4_r/view) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193189 Forward-Port-Of: odoo/odoo#192784
Before this commit, when splitting an order, the preparation changes were not correctly applied to the new order and modified on the original one. This commit fix the issue. Forward-Port-Of: odoo/odoo#193734
Original PR description
Before this commit, when splitting an order, the preparation changes were not correctly applied to the new order and modified on the original one. This commit fix the issue. Forward-Port-Of: odoo/odoo#193734
Steps to reproduce: Not reproducible in V16. However, in older versions, it was possible to have multiple finished_moves with different quantities (see https://github.com/odoo/odoo/pull/46718). This fix ensures such issues are avoided in the future and also addresses potential problems for clients migrating from older versions. Example: Two finished_moves with different quantities. Before the fix, both moves would be updated based on the unbuild quantity, resulting in incorrect quantit
Original PR description
Steps to reproduce: Not reproducible in V16. However, in older versions, it was possible to have multiple finished_moves with different quantities (see https://github.com/odoo/odoo/pull/46718). This fix ensures such issues are avoided in the future and also addresses potential problems for clients migrating from older versions. Example: Two finished_moves with different quantities. Before the fix, both moves would be updated based on the unbuild quantity, resulting in incorrect quantities. After the fix, the moves for unbuild will use only the move's quantity. opw-4379204 Forward-Port-Of: odoo/odoo#193777 Forward-Port-Of: odoo/odoo#191908
Steps to reproduce: - Go to a form view with a one2many with a handle widget - Move a line in the one2many that make Odoo crash with the onchange To generate a faulty view, create a form view with a one2many and add an automation "On UI change" to make the resequence crash. Current behaviour ----------------- After the error being thrown, the user will not be able to resequence this line again. Expected Behaviour ------------------ After the error, the user will still be able to r
Original PR description
Steps to reproduce: - Go to a form view with a one2many with a handle widget - Move a line in the one2many that make Odoo crash with the onchange To generate a faulty view, create a form view with a one2many and add an automation "On UI change" to make the resequence crash. Current behaviour ----------------- After the error being thrown, the user will not be able to resequence this line again. Expected Behaviour ------------------ After the error, the user will still be able to resequence this line Forward-Port-Of: odoo/odoo#190318 Forward-Port-Of: odoo/odoo#157539
Steps to reproduce ================== - Open any project - Create many project stages (80+) - Switch to the list view - Group by stage - Switch to to next page => The pager keeps increasing Cause of the issue ================== `stage_id` has a group_expand: `_read_group_stage_ids` This method is used to include empty stages in the result for the kanban view, so that we can drag tasks to an empty stage. Solution ======== Add a context key `project_kanban` and only add em
Original PR description
Steps to reproduce ================== - Open any project - Create many project stages (80+) - Switch to the list view - Group by stage - Switch to to next page => The pager keeps increasing Cause of the issue ================== `stage_id` has a group_expand: `_read_group_stage_ids` This method is used to include empty stages in the result for the kanban view, so that we can drag tasks to an empty stage. Solution ======== Add a context key `project_kanban` and only add empty stages in that case. opw-4408061 Forward-Port-Of: odoo/odoo#193488 Forward-Port-Of: odoo/odoo#192492
Interfaces/Drivers inherit from an `Interface`/`Driver` class. These parent classes should not be registered as an actual interface/driver. This is now filterered at instanciation in order to avoid looping over useless elements later. Forward-Port-Of: odoo/odoo#193510
Original PR description
Interfaces/Drivers inherit from an `Interface`/`Driver` class. These parent classes should not be registered as an actual interface/driver. This is now filterered at instanciation in order to avoid looping over useless elements later. Forward-Port-Of: odoo/odoo#193510
Fixes an issue where splitting an order line with a decimal quantity (e.g., 2.5) would cause indefinite increments in the split bill screen. This adds a check to ensure the split quantity does not exceed the original order line quantity. task-id: 4461861 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:
Original PR description
Fixes an issue where splitting an order line with a decimal quantity (e.g., 2.5) would cause indefinite increments in the split bill screen. This adds a check to ensure the split quantity does not exceed the original order line quantity. task-id: 4461861 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#193514
The cloc_exclude entry of the manifest was activated for data modules*, and it works for records with a new id. But it fails for records with external ids from another module, as it tries to lookup for a record with an xmlid like `new_module.external_module.id`, which is not a valid xmlid. This commit fixes the issue by first checking if the record to exclude from cloc is from another module or not, before creating the ir_model_data entry. *https://github.com/odoo/odoo/commit/a47de680de149
Original PR description
The cloc_exclude entry of the manifest was activated for data modules*, and it works for records with a new id. But it fails for records with external ids from another module, as it tries to lookup for a record with an xmlid like `new_module.external_module.id`, which is not a valid xmlid. This commit fixes the issue by first checking if the record to exclude from cloc is from another module or not, before creating the ir_model_data entry. *https://github.com/odoo/odoo/commit/a47de680de149a60dd479c4c0b14f2c1bf5afcbe opw-4472893 Forward-Port-Of: odoo/odoo#193592
Steps to reproduce: - Open planning app and click on New. - A form is opened and searched for a material resource in the Resource field ex. Crane - An empty photo icon is displayed in the selection bar. Issue: - An empty photo icon is being displayed instead of a wrench. Cause: - Many2XAutocomplete which adds an image in the many2one selection field is not modified to display - the wrench icon in the many2one_avatar_resource_field. Solution: - A similar modification is do
Original PR description
Steps to reproduce: - Open planning app and click on New. - A form is opened and searched for a material resource in the Resource field ex. Crane - An empty photo icon is displayed in the selection bar. Issue: - An empty photo icon is being displayed instead of a wrench. Cause: - Many2XAutocomplete which adds an image in the many2one selection field is not modified to display - the wrench icon in the many2one_avatar_resource_field. Solution: - A similar modification is done in many2many_avatar_resource_field through class which extends Many2XAutocomplete which can be imported and added into components of many2one_avatar_resource_field. fix the alignment between of icon and text in many2many_avatar_resource. task-3801551 Forward-Port-Of: odoo/odoo#193083 Forward-Port-Of: odoo/odoo#157968
Steps to reproduce: - Go to the "/blog/astronomy-2/what-if-they-let-you-run-the-hubble-5" page. - Click on the "Mobile Preview" button. - Bug: The breadcrumb is broken. In stable versions, we fixed this in the least intrusive way possible to avoid making significant layout changes to existing databases. **BEFORE:** <kbd></kbd> **AFTER:** <kbd></kbd> **AFTER:** <kbd></kbd> In master version, in mobile view, we replaced the breadcrumb with a "< All Blogs" button to return to the blogs list, similar to what is done in "website_sale" and "website_event". opw-4457408 Forward-Port-Of: odoo/odoo#193508
Steps: - Go to the 'Activity Plans' section. - Select a company in the company widget. - Activity plans were not filtered based on the selected company. Issues: - Activity plans were not filtered correctly by the selected company, showing plans from unrelated companies. Fix: - Added domain to display activity plans assigned to the selected company. - Added domain to display global activity plans when no company is selected. Task - 4441838 Description of the issue/feature this P
Original PR description
Steps: - Go to the 'Activity Plans' section. - Select a company in the company widget. - Activity plans were not filtered based on the selected company. Issues: - Activity plans were not filtered correctly by the selected company, showing plans from unrelated companies. Fix: - Added domain to display activity plans assigned to the selected company. - Added domain to display global activity plans when no company is selected. Task - 4441838 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: Forward-Port-Of: odoo/odoo#192171
### Before -When the eFactura status was fetched and there was an invoice content error it was not displayed. This issue was due to both the overlooking of: - the 'nok' status (sent back by the Romanian authorities regarding the presence of errors in the invoice content) - the file provided in the zip that would contain the errors -The error message shown would also only contain the first error even if many were present. ### Now -If the status fetched contains 'nok' and is theref
Original PR description
### Before -When the eFactura status was fetched and there was an invoice content error it was not displayed. This issue was due to both the overlooking of: - the 'nok' status (sent back by the Romanian authorities regarding the presence of errors in the invoice content) - the file provided in the zip that would contain the errors -The error message shown would also only contain the first error even if many were present. ### Now -If the status fetched contains 'nok' and is therefore signaling the presence of invoice content errors, then the apposite error file is chosen instead of the file with the electronic signature. This allows for following logic to account for errors, to retrieve the error message and to provide the error file as the downloadable document. -The pop up shows all the errors with an increased width to account for more content. task-4306506 Forward-Port-Of: odoo/odoo#190618
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.6.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193722
Original PR description
Update the OWL lib. Release notes: https://github.com/odoo/owl/releases/tag/v2.6.0 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#193722
Steps to Reproduce: ----------------------------------------------- 1. Install the `planning` module. 2. Create a shift from `8:00 AM to 9:30 AM` for any resource. The allocated hours will show as `1:30`. 3. Go to the list view and print the planning report. 4. In the report, you will notice that the allocated hours are rounded up to `2` Issue: ----------------------------------------------- - The allocated hours are being rounded up to a higher value but it should match
Original PR description
Steps to Reproduce:
-----------------------------------------------
1. Install the `planning` module.
2. Create a shift from `8:00 AM to 9:30 AM` for any resource. The allocated
hours will show as `1:30`.
3. Go to the list view and print the planning report.
4. In the report, you will notice that the allocated hours are rounded
up to `2`
Issue:
-----------------------------------------------
- The allocated hours are being rounded up to a higher value but it should match
with the UI and stay consistent.
Cause:
-----------------------------------------------
- The `ceil` function is being used, which rounds the value up to the next
higher number.
Fix:
-----------------------------------------------
- In this commit we removed the `ceil` function to ensure that the allocated
hours are not rounded up.
task-4416792
Forward-Port-Of: odoo/enterprise#77110
Forward-Port-Of: odoo/enterprise#76198task-4295363 Forward-Port-Of: odoo/enterprise#76449
Original PR description
task-4295363 Forward-Port-Of: odoo/enterprise#76449
This pull request is marked as a work in progress and does not include enough detail to identify a specific business change. Based on the available information, the impact and affected areas are unclear and should be reviewed once the description or file changes are provided.
Original PR description
TODO: PR message
* is l10n_{au,be,ch,hk,lu,ma,us}_hr_payroll - When miltiple companies it shows `X Localization` block only in payroll settings Where X is the cuntry of the current chosien company Task: 4409568 Forward-Port-Of: odoo/enterprise#75683
Original PR description
* is l10n_{au,be,ch,hk,lu,ma,us}_hr_payroll
- When miltiple companies it shows `X Localization` block only in payroll settings Where X is the cuntry of the current chosien company
Task: 4409568
Forward-Port-Of: odoo/enterprise#75683This file was not loaded in the manifest and is a duplicated of `/mrp_account_enterprise/views/cost_structure_report.xml` Forward-Port-Of: odoo/enterprise#77177
Original PR description
This file was not loaded in the manifest and is a duplicated of `/mrp_account_enterprise/views/cost_structure_report.xml` Forward-Port-Of: odoo/enterprise#77177
Before this commit, when editing a default value for a field, it was always setting th default on the company of the user (as set on the user), not on the current company the user is logged into. This was largely misleading. After this commit, we get and set the default on the current company. Some work need to be done in master to improve those flows. opw-4427384 Forward-Port-Of: odoo/enterprise#77015 Forward-Port-Of: odoo/enterprise#76819
Original PR description
Before this commit, when editing a default value for a field, it was always setting th default on the company of the user (as set on the user), not on the current company the user is logged into. This was largely misleading. After this commit, we get and set the default on the current company. Some work need to be done in master to improve those flows. opw-4427384 Forward-Port-Of: odoo/enterprise#77015 Forward-Port-Of: odoo/enterprise#76819
task-4285805 Forward-Port-Of: odoo/enterprise#77108 Forward-Port-Of: odoo/enterprise#76950
Original PR description
task-4285805 Forward-Port-Of: odoo/enterprise#77108 Forward-Port-Of: odoo/enterprise#76950
Changes in enterprise related to PR https://github.com/odoo/odoo/pull/157968 Added the resource_color as dependency for the widget to display the color task-3801551 Forward-Port-Of: odoo/enterprise#76835 Forward-Port-Of: odoo/enterprise#70453
Original PR description
Changes in enterprise related to PR https://github.com/odoo/odoo/pull/157968 Added the resource_color as dependency for the widget to display the color task-3801551 Forward-Port-Of: odoo/enterprise#76835 Forward-Port-Of: odoo/enterprise#70453
1 change
Resolved issues and error corrections
This update resolves a technical issue preventing the Web Studio module from functioning correctly. The fix ensures that necessary components are properly included, restoring the module's core capabilities. This ensures Web Studio continues to operate reliably for users.