Friday, October 6, 2023
67 changes · master
Enhancements to existing features
Accounting reports can now keep custom grouping settings separately from the default report setup. This supports enterprise reporting needs while reducing the risk of overwriting standard configuration.
Original PR description
This field is needed by the enterprise counterpart of this commit. It is used to store custom-defined groupby on the report lines without overriding the standard value that's given in data files. Task 3413437
Sales order line discounts are now shown in the mobile kanban view when a discount exists. This helps sales users review pricing details more accurately on mobile devices without switching views.
Original PR description
Before this commit, the discount was not displayed on SOL in mobile view. This commit adds the discount when it exists. task-3111127
Duplicating a point of sale combo product now also copies the items included in that combo. This prevents staff from having to manually rebuild combo contents after creating a duplicate, reducing setup errors and saving time.
Original PR description
before this commit, on duplicating a combo product, the combo lines are not copied to new records after this commit, the combo lines will get copied during the duplicate --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change lets Odoo automatically fill ordering fields in selected XML data files, so report lines can follow the same order as they appear on screen. It reduces repetitive maintenance work across many country localization files and makes the setup easier to read and update.
HR demo data now better represents a realistic company structure for showcasing the organization chart. Departments have clearer hierarchy, colors, and assigned managers, making demos easier to understand and more useful for business presentations.
Original PR description
This demo will help us in organization chart In this PR - Demo data was included for the Organization chart view within the employee form view - Created a department hierarchy, and assigned colors to each department - Added the manager to each department task-3510243
New demo accounting records make it easier to test and demonstrate automatic reconciliation in different common scenarios. This helps teams validate receivable and payable workflows using sample customers and vendors such as Azure Interior and Deco Addict.
Original PR description
Adds demo data for auto-reconcile. We now have data that can auto reconcile: - in both modes (zero total balance or opposite balance one-by-one) - on payable and receivable accounts - by filtering on Azure Interior and/or Deco Addict task-id:3517768
Sales order users can no longer create a new referrer directly from the referrer field. This simplifies data entry and helps ensure referrers are selected from existing partner records instead of being created unnecessarily.
Original PR description
In this PR, remove create option on refferred_id from sale order form view since it is not required on referred field. task-3369999
The customer subscription portal now uses a single "View details" action instead of separate download and print buttons. This simplifies the customer experience and makes it clearer where to go for subscription information.
Original PR description
task-3484125
The subscription portal now shows a single button to view subscription details instead of separate download and print options. This streamlines the customer experience and makes it clearer where users should go to review subscription information.
Original PR description
quack
The Documents app code was reorganized and cleaned up to make it easier for teams to understand and maintain. This is an internal improvement that prepares the module for future changes without introducing new business features.
The payroll demo data now includes examples that make the employee organization chart easier to showcase in the employee form. This helps evaluators and teams better understand reporting relationships during demonstrations or testing.
Original PR description
In this PR - demo data was included for the Organization chart view within the employee form view task-3510243
Financial report definitions across many country-specific Odoo modules now have their sequence fields populated automatically. This improves consistency in how localized accounting reports are ordered and maintained, with minimal direct impact for end users.
Original PR description
Linked to https://github.com/odoo/odoo/pull/85750
This update appears to adjust the employee appraisal survey area, likely improving how appraisal-related surveys are handled. The available details are limited, so the business impact seems modest and focused on HR appraisal workflows.
Belgian payroll tests and demo data were updated to stay aligned with changes in employee leave allocation handling. This helps ensure payroll calculations and validations continue to work reliably after the underlying leave management update, with a related correction for Indian payroll salary rule configuration.
Original PR description
Due to the refactoring of the hr.leave.allocation model, some tests are to be adapted. task-2675380
Resolved issues and error corrections
This fixes a crash that occurred when users selected "Get View" from the debug menu. The debug tool now handles the updated view format correctly, helping administrators and support teams inspect views without interruption.
Original PR description
Since commit [1], there was a crash when the user clicked on the "Get View" item in the debug menu (in any views). This was because the arch now received by the views in props is an XmlDocument, whereas before it was a string. [1] odoo/odoo@cc3a3a328db913da76573404967e1190f40bcc98 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
Code cleanup and technical improvements
This change replaces a temporary internal shortcut with the supported way to access web app information. It reduces maintenance risk in the web interface without changing day-to-day user behavior.
Original PR description
In a previous commit, we temporarily used the `__OWL__DEVTOOLS__` global variable to access the list of all apps. This was obviously not something that we want to do, so we introduced a proper hook in Owl. This commit changes the code to use the static apps object from the App class. 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
Miscellaneous changes
Forward-Port-Of: odoo/odoo#137393 Forward-Port-Of: odoo/odoo#137223
Original PR description
Forward-Port-Of: odoo/odoo#137393 Forward-Port-Of: odoo/odoo#137223
Original PR description
Motivations: * `sequence` is not super intuitive for new devs * It makes "useless" noise in data files * It is redundant when what we want to see in the file is the same as what we want to see on the…
Motivations: * `sequence` is not super intuitive for new devs * It makes "useless" noise in data files * It is redundant when what we want to see in the file is the same as what we want to see on the user screen. Do you understand anything related to sequences in here? https://github.com/odoo/odoo/blob/15.0/addons/l10n_lu/data/account_tax_report_line.xml Explicit is not always better than implicit. * It is not implicit like using `id` it is natural and visual and saves a lot of chore for adding and maintaining sequences. Implementation * It is optional, with the option set on root xml tags _________________ In * `odoo/addons/l10n_*`, we are gaining 2k+ lines of xml on `account.tax.report.line` * `enterprise/l10n_*`, we are gaining 3k+ lines of xml on `account.financial.html.report.line` This could be applied to other records like menuitems, or other models similar where it makes sense to declare in the same order as what we want to see on the user screen. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies how Odoo Enterprise locates and opens internal files across accounting, payroll, delivery, HR, localization, and related apps. It removes redundant file checks, which helps keep the codebase cleaner and may slightly improve reliability and maintainability without changing user-facing workflows.
Original PR description
Enterprise part of odoo/odoo#135607
Replace all the calls to `get_resource_path` to the better `file_path` or directly use `file_open` when possilbe.
`file_open` is already checking that the file exists and is within the addons-path. Code like:
```
path = get_resource_path('base', 'static/img', 'avatar.png')
file_open(path)
```
was checking twice that the file exists and made redundant checksSales reports now group by the main product record rather than separating results by individual product variants. This makes product-level reporting match user expectations, while a separate grouping option remains available for product variants when that detail is needed.
Original PR description
Group by "Product" was grouping by product variant instead of product template. opw-3477918 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users who switch dark mode while working in the website backend now remain in the backend after the page reloads. This avoids unintentionally sending them to the public website page and makes the editing experience smoother.
Original PR description
*enterprise Since this task in community adds the user menu in the navbar, it is now possible to toggle the dark mode from the website backend. However, (1) toggling the dark mode reloads the page, and (2) since [commit 1], nothing in the displayed URL differentiates the frontend from the backend in the website app, meaning that reloading the page from the backend actually leads to the frontend page. This commit patches the `color_scheme_service` in order to remain in the backend if it is toggled from the website app. [commit 1]: https://github.com/odoo/odoo/commit/1c18b79972c3b0a97197b98390e0ba9fda703585 task-3381773
The recruitment document digitization message now uses "Resume" instead of "CV" when users do not have enough credits. This makes the wording clearer and more consistent for applicants and recruiters, with no functional change.
Original PR description
Change replaces word "CV" with word "Resume" in error message telling that you don't have enough credits to digitize document in application task-3539236
This update adjusts the Documents test suite to account for a brief delay before boolean toggle changes appear on screen. It helps keep automated checks stable and reduces the risk of false test failures after recent interface behavior changes.
Original PR description
The changes introduced to BooleanToggleField by the PR: https://github.com/odoo/odoo/pull/136924, mean that an update executed on a boolean field from a Component other than the BooleanToggleField displaying it requires waiting for one more nextTick for the change to be displayed. This is caused by useObserveRecord waiting for an animationFrame to execute its callBack and therefore in this case to apply the change of state to the BooleanToggleField.
This change fixes the WhatsApp point-of-sale settings so the receipt template can be selected when WhatsApp is enabled for POS. It prevents users from being blocked by a read-only field and restores the expected setup behavior.
Original PR description
before this commit, if the WhatsApp Enabled is pos setting the receipt template remains readonly and user cannot edit and change the template value after this commit, wrongly given invisible attribute will be changed to required attribute as in the lower version, ie, 16.3 and 16.4
This change makes an automated Studio test wait for an expected error before checking the result. It helps prevent random test failures, improving confidence in release validation without changing user-facing behavior.
Original PR description
This commit ensures the error event is handled before the assert in in the "error when new app's view is invalid" studio test. This could lead to an nondeterministic error in the test. runbot-error-24580
This update adjusts an internal performance test threshold for Australian payroll accounting to reduce false failures caused by variable caching and data volume. It helps keep automated validation reliable without changing payroll features or user workflows.
Original PR description
Those tests could have some random requests, as there are a lot of records and the cache could have some random behavior according to the execution order, the number of installed module, so I'm gonna just bump it a little bit.
This update fixes Avatax accounting tests by removing a dependency on a sales-related field that is not always available. It helps ensure the Avatax module can be tested reliably regardless of installation order, reducing the risk of false test failures.
Original PR description
removed the reference to field invoice_policy, added in a module this one doesn't depend on (sales). This has been wrong since a long time and was only put into light with the recent changes of 70329177713131d3d6ec424137cad3702e9d38ae (#136490) where the order of modules' installation changed, avatax being installed before sales.
This change removes an outdated internal workaround in Odoo's web rendering system and simplifies how server-side rendering is set up. It should make the web codebase easier to maintain without changing day-to-day user workflows.
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
A spreadsheet interface button style was renamed to stay aligned with the underlying spreadsheet component. This is an internal cleanup that helps keep the code consistent and should not change how users work with spreadsheets.
Original PR description
Commit odoo/o-spreadsheet@adcda84 renamed the button class. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change updates spreadsheet interface files to use a renamed button style from the underlying spreadsheet component. It keeps spreadsheet side panels and related tests aligned with the shared component changes, with no expected change to day-to-day user workflows.
Original PR description
Commit odoo/o-spreadsheet@adcda84 renamed the button class.
This change simplifies internal rendering setup for parts of Point of Sale preparation displays and Sign documents. It aligns these areas with a shared platform update, reducing custom code and helping future maintenance without changing day-to-day user workflows.
Some internal quality check logic has been moved from the general Quality app into Quality Control, where the related data is managed. This keeps the product structure cleaner and reduces the chance of future maintenance issues, with no expected change for users.
Original PR description
Both functions use the `measure_on` field of `quality.point` which is defined in the `quality_control` module. This didn't raise any issue as both functions are only used in `quality_control` and `quality_mrp` (which requires `quality_control`). Moved them to `quality_control` as this is where they should have probably been in the first place.
The way Odoo stores and displays change history in the chatter has been streamlined by removing redundant stored data and relying on existing field information when needed. This reduces internal complexity and should make tracking-related code easier to maintain, while preserving the same business behavior for users.
Original PR description
PURPOSE Simplify 'mail.tracking.value' model and code. Remove unnecessary fields and computation. Make code easier to handle and more batch-enabled. SPECIFICATIONS Remove 'tracking_sequence' on…
PURPOSE Simplify 'mail.tracking.value' model and code. Remove unnecessary fields and computation. Make code easier to handle and more batch-enabled. SPECIFICATIONS Remove 'tracking_sequence' on tracking values in DB. Consider insertion order should be done accordingly and display them based on ID DESC. Sequence is now used only for order records to insert in DB and can be used to resequence them using the field description at any time. Feature is still the same (order based on sequence) but without having to store the sequence itself. It was never updated anyway. Remove 'field_desc' and 'field_type' from 'mail.tracking.value' model. Those can be retrieved when necessary, as it is mainly used for frontend display in Chatter. Remove 'old_value_monetary' and 'new_value_monetary' as float value can be used instead. Rename 'field' to 'field_id' to better indicate it is a m2o, and not a char field holding a field name. Improve support of o2m / m2m tracking. Cleanup overall tracking code: try to make methods more consistent with I/O, cleanup formatting methods. While working on tracking, let us cleanup a bit tests and various code bits. Task-3345979 (Mail: Simplify tracking model)
Before this PR, the current user was not considered has a follower, regarding the mention suggestions. This lead him to be lower than other entries. This PR fix the issue by adding him back to the follower list. Task-3531111 Forward-Port-Of: odoo/odoo#137377
Original PR description
Before this PR, the current user was not considered has a follower, regarding the mention suggestions. This lead him to be lower than other entries. This PR fix the issue by adding him back to the follower list. Task-3531111 Forward-Port-Of: odoo/odoo#137377
**Before this commit:** When any activity was created, the displayed created date was in UTC time and not adjusted to the user's timezone. The time was not converted according to the user's timezone. **After this commit:** The activity's created time now displayed is converted from the UTC time stored during the activity's creation. **task-3483695** Forward-Port-Of: odoo/odoo#137411 Forward-Port-Of: odoo/odoo#135107
Original PR description
**Before this commit:** When any activity was created, the displayed created date was in UTC time and not adjusted to the user's timezone. The time was not converted according to the user's timezone. **After this commit:** The activity's created time now displayed is converted from the UTC time stored during the activity's creation. **task-3483695** Forward-Port-Of: odoo/odoo#137411 Forward-Port-Of: odoo/odoo#135107
Switch to a datetime to avoid a wizard that has been created at 00:00 to be deleted one minute later. Forward-Port-Of: odoo/odoo#137666
Original PR description
Switch to a datetime to avoid a wizard that has been created at 00:00 to be deleted one minute later. Forward-Port-Of: odoo/odoo#137666
In this PR, show an action helper to improve the user experience when no data is available in the graph view. This enhancement aligns with the existing functionality we have in the pivot view, which provides users with a clear and informative message when data is absent. By incorporating this action helper, we aim to enhance user understanding and promote better familiarity with the features of our platform. task-3500508 --- I confirm I have signed the CLA and read the PR guidelines at
Original PR description
In this PR, show an action helper to improve the user experience when no data is available in the graph view. This enhancement aligns with the existing functionality we have in the pivot view, which provides users with a clear and informative message when data is absent. By incorporating this action helper, we aim to enhance user understanding and promote better familiarity with the features of our platform. task-3500508 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137472 Forward-Port-Of: odoo/odoo#133920
Since commit[1] Serial number sequence rule takes priority over already existing Serial numbers Bug: when disabling default Serial number sequence rule a validation error is thrown since lot name is now empty Fix: fall back on the previous behaviour (get next SerialNumber) if sequence is not set (also added a clearer user error if neither is set) note also updated the .pot file opw-3514794 [1]:https://github.com/odoo/odoo/pull/134187 Forward-Port-Of: odoo/odoo#137601
Original PR description
Since commit[1] Serial number sequence rule takes priority over already existing Serial numbers Bug: when disabling default Serial number sequence rule a validation error is thrown since lot name is now empty Fix: fall back on the previous behaviour (get next SerialNumber) if sequence is not set (also added a clearer user error if neither is set) note also updated the .pot file opw-3514794 [1]:https://github.com/odoo/odoo/pull/134187 Forward-Port-Of: odoo/odoo#137601
The aim of this commit is to allow import of OIOUBL xml files. Additional notes: some modification to the way ubl 2.0 retrieve tax node was required as it was unable to retrieve taxes on OIOUBL. task-id: 3420748 Forward-Port-Of: odoo/odoo#136416
Original PR description
The aim of this commit is to allow import of OIOUBL xml files. Additional notes: some modification to the way ubl 2.0 retrieve tax node was required as it was unable to retrieve taxes on OIOUBL. task-id: 3420748 Forward-Port-Of: odoo/odoo#136416
**Steps to reproduce the bug:** - Create a storable product “P1”: - Price at “Wood corner”: - $5, min qty =1 - Price at “Open wood: - $6, min qty = 1 - $4, min qty = 10 - Create a purchase order at wood corner: - 100 units > the price is automatically computed at $500 - Go to Alternative tab in the PO: - Create a one for “Openwood” and copy lines **Problem:** The price for 100 units is computed as $600 instead of $400. When we create
Original PR description
**Steps to reproduce the bug:** - Create a storable product “P1”: - Price at “Wood corner”: - $5, min qty =1 - Price at “Open wood: - $6, min qty = 1 - $4, min qty = 10 - Create a purchase order at…
**Steps to reproduce the bug:**
- Create a storable product “P1”:
- Price at “Wood corner”:
- $5, min qty =1
- Price at “Open wood:
- $6, min qty = 1
- $4, min qty = 10
- Create a purchase order at wood corner:
- 100 units
> the price is automatically computed at $500
- Go to Alternative tab in the PO:
- Create a one for “Openwood” and copy lines
**Problem:**
The price for 100 units is computed as $600 instead of $400.
When we create the alternative purchase order, in the "create" function of “purchase.order.line,” we receive only the quantity as "qty=100" in the values. Therefore, the missing fields should be prepared.
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1102
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1398
First, the line is created with the received values (“qty=100”), and the price_unit is computed correctly as $4.
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1400
So, the price_unit is computed correctly at $4
However, the “onchange_product_id” function is then called, resetting the price_unit and product_qty to 0.
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1401
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1176
Afterward, the “_suggest_quantity()” function is called
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1180
suggesting a minimal quantity based on the seller (so=1).
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase/models/purchase.py#L1363
Therefore, the price_unit is computed based on qty=1, resulting in $6.
Finally, the price is returned because it is the only missing field.
opw-3497825
Forward-Port-Of: odoo/odoo#135446Exact steps (or video) to reproduce the issue (on runbot): 1. Go to Website > Shop > Open a product with specifications table (Customizable Desk). 2. Open Editor > Set Specification to None > Compare button is removed from Product page Fix: display the compare button under add to cart if spec disabled opw-3329219 Forward-Port-Of: odoo/odoo#133518
Original PR description
Exact steps (or video) to reproduce the issue (on runbot): 1. Go to Website > Shop > Open a product with specifications table (Customizable Desk). 2. Open Editor > Set Specification to None > Compare button is removed from Product page Fix: display the compare button under add to cart if spec disabled opw-3329219 Forward-Port-Of: odoo/odoo#133518
Currently, `<ul>` and `<li>` is missing `role` in navbar. This thing can effect on accessibility point on Lighthouse report. https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitem_role This PR will fix this problem Same as PR https://github.com/odoo/odoo/pull/99783 because i accident close pr  -- I confirm I
Original PR description
Currently, `<ul>` and `<li>` is missing `role` in navbar. This thing can effect on accessibility point on Lighthouse report. https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/menuitem_role This PR will fix this problem Same as PR https://github.com/odoo/odoo/pull/99783 because i accident close pr  -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137575 Forward-Port-Of: odoo/odoo#99895
[opw-3502704](https://www.odoo.com/web#id=3502704&cids=1&menu_id=4720&action=4043&model=project.task&view_type=form) Forward-Port-Of: odoo/odoo#137766 Forward-Port-Of: odoo/odoo#137271
Original PR description
[opw-3502704](https://www.odoo.com/web#id=3502704&cids=1&menu_id=4720&action=4043&model=project.task&view_type=form) Forward-Port-Of: odoo/odoo#137766 Forward-Port-Of: odoo/odoo#137271
__Current behavior before commit:__ When `context_today()` is in a domain, UTC is used. However this is not consistent with [the legacy method](https://github.com/odoo/odoo/blob/81183495a07eb5928b29ae56f3f86671234d602c/addons/web/static/src/legacy/js/core/py_utils.js#L232) used before OWL migration. This has the consequence that filters with this method in their domain will not behave correctly and use UTC date instead of the actual date of the user. __Description of the fix:__ Switch th
Original PR description
__Current behavior before commit:__ When `context_today()` is in a domain, UTC is used. However this is not consistent with [the legacy…
__Current behavior before commit:__ When `context_today()` is in a domain, UTC is used. However this is not consistent with [the legacy method](https://github.com/odoo/odoo/blob/81183495a07eb5928b29ae56f3f86671234d602c/addons/web/static/src/legacy/js/core/py_utils.js#L232) used before OWL migration. This has the consequence that filters with this method in their domain will not behave correctly and use UTC date instead of the actual date of the user. __Description of the fix:__ Switch the UTC methods calls to regular ones. __To reproduce:__ (Reproducible only in Odoo 16, since the old method is still used in 15) 1. Change computer date and timezone so that UTC date is not the same as your date (e.g. if timezone is CEST, set the hour to 1am) 1. On any record, schedule an activity with the due date to today. 1. In the Activities notifications panel, click on **1 Today** 1. The page display nothing because it will filter by the previous day. opw-3423316 Forward-Port-Of: odoo/odoo#132622
**Before PR:** -While reading chatter notifications in the chat window, SMS and email icons are not accessible to click due to action list overlap. -While reading a reply on any message or attachment in chat widow, the attachment link is not accessible to click due to action list overlap. **After PR:** -When SMS and email icons are visible, time and that icon will display to the following line so the user can click on it easily. -Attachment links will display to the following line of men
Original PR description
**Before PR:** -While reading chatter notifications in the chat window, SMS and email icons are not accessible to click due to action list overlap. -While reading a reply on any message or attachment in chat widow, the attachment link is not accessible to click due to action list overlap. **After PR:** -When SMS and email icons are visible, time and that icon will display to the following line so the user can click on it easily. -Attachment links will display to the following line of mentioned so the user can click on it easily. Task-2713371 Forward-Port-Of: odoo/odoo#137470 Forward-Port-Of: odoo/odoo#131020
Steps to reproduce the bug: - Create a storable product “P1”: - set sales price: 10 - Go to attributes & variants tab: - Color: red & blue - Size: S - Go to Red attribute and add extra price: 5 - Go to the product variant “P1 red S” - Print label: - ZPL with price Problem: The product.template price is printed instead of the product variant because we use “list_price” instead of “lst_price” opw-3537277 Forward-Port-Of: odoo/odoo#137674
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- set sales price: 10
- Go to attributes & variants tab:
- Color: red & blue
- Size: S
- Go to Red attribute and add extra price: 5
- Go to the product variant “P1 red S”
- Print label:
- ZPL with price
Problem:
The product.template price is printed instead of the product variant because we use “list_price” instead of “lst_price”
opw-3537277
Forward-Port-Of: odoo/odoo#137674Steps to reproduce: ------------------- - go to project form view; - edit the sale order item of a task; - make `is_so_line_edited` visible in Timesheet list on the form; Issue: ------ The `is_so_line_edited` field is not set to `True`. Solution: --------- Use the widget designed to correctly update the `is_so_line_edited` field. opw-3476614 Forward-Port-Of: odoo/odoo#137782 Forward-Port-Of: odoo/odoo#137365
Original PR description
Steps to reproduce: ------------------- - go to project form view; - edit the sale order item of a task; - make `is_so_line_edited` visible in Timesheet list on the form; Issue: ------ The `is_so_line_edited` field is not set to `True`. Solution: --------- Use the widget designed to correctly update the `is_so_line_edited` field. opw-3476614 Forward-Port-Of: odoo/odoo#137782 Forward-Port-Of: odoo/odoo#137365
Some strings were not translated in website_forum because translation marks inside backticks will not be extracted to be translated. i.e., Markup`${_t("Please translate me"}, OK` will not work. This PR fixes the issue by explicit translation before putting it inside the backticks. **Task**-3462273 Forward-Port-Of: odoo/odoo#136900
Original PR description
Some strings were not translated in website_forum because translation marks inside backticks will not be extracted to be translated. i.e., Markup`${_t("Please translate me"}, OK` will not work.
This PR fixes the issue by explicit translation before putting it inside the backticks.
**Task**-3462273
Forward-Port-Of: odoo/odoo#136900We do not clean the event handlers properly (because we do .bind()). So we have another version of the handlers and they are not unbinded. In this commit, to remedy this, we use the useBus function which resolves this problem. Forward-Port-Of: odoo/odoo#137817
Original PR description
We do not clean the event handlers properly (because we do .bind()). So we have another version of the handlers and they are not unbinded. In this commit, to remedy this, we use the useBus function which resolves this problem. Forward-Port-Of: odoo/odoo#137817
Add missing '#' that prevent correct evaluation of the dynamic href attribute. To reproduce: - To to /jobs - Ensure 'Office Filter' page option is enabled (if not edit the page and enable it) - Click the office dropdown and hover 'All Offices' We ends ups with a URL like: `/jobs?{'all_countries=1' if is_remote else current_country_path}` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137580
Original PR description
Add missing '#' that prevent correct evaluation of the dynamic href attribute.
To reproduce:
- To to /jobs
- Ensure 'Office Filter' page option is enabled (if not edit the page and enable it)
- Click the office dropdown and hover 'All Offices'
We ends ups with a URL like:
`/jobs?{'all_countries=1' if is_remote else current_country_path}`
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#137580Rewrite test with `contains` to avoid race conditions. runbot-22827 Forward-Port-Of: odoo/enterprise#48275 Forward-Port-Of: odoo/enterprise#48252
Original PR description
Rewrite test with `contains` to avoid race conditions. runbot-22827 Forward-Port-Of: odoo/enterprise#48275 Forward-Port-Of: odoo/enterprise#48252
How to reproduce: - Add a file in a Knowledge article through `/file` - delete that file from the chatter thread - click on download on the file block in the Knowledge article Current behavior: - The file does not exists, but there is no error, instead a html file containing the error is downloaded instead Expected behavior: - Throws an error if the url for the file is invalid/does not match with any file in the database. Technical explanation: `downloadFile` returns a `XMLH
Original PR description
How to reproduce: - Add a file in a Knowledge article through `/file` - delete that file from the chatter thread - click on download on the file block in the Knowledge article Current behavior: - The file does not exists, but there is no error, instead a html file containing the error is downloaded instead Expected behavior: - Throws an error if the url for the file is invalid/does not match with any file in the database. Technical explanation: `downloadFile` returns a `XMLHttpRequest` instance when provided with an url. Launching the alert dialog `onerror` using the `web` util will allow to properly inform the user of a failure. Tracking: - usage of `downloadFile` in Knowledge introduced in [1]. - util in web to configure error management, see [2]. [1]: https://github.com/odoo/enterprise/pull/47056 [2]: https://github.com/odoo/odoo/pull/136259 task-3517796 Forward-Port-Of: odoo/enterprise#48517 Forward-Port-Of: odoo/enterprise#48321
before this commit, the documentation url for whatsapp is returning 404 * open general settings * click on documentation for whatsapp * 404 page after this commit on clicking documentation icon in res.config.settings whatsapp documentation page will be opened Forward-Port-Of: odoo/enterprise#48420
Original PR description
before this commit, the documentation url for whatsapp is returning 404 * open general settings * click on documentation for whatsapp * 404 page after this commit on clicking documentation icon in res.config.settings whatsapp documentation page will be opened Forward-Port-Of: odoo/enterprise#48420
In some cases transfer warning message was displaying the wrong amount. Only UI is affected, the actual amount transferred was correct. Forward-Port-Of: odoo/enterprise#48331
Original PR description
In some cases transfer warning message was displaying the wrong amount. Only UI is affected, the actual amount transferred was correct. Forward-Port-Of: odoo/enterprise#48331
Before this commit when the report editor asked for the Qweb, the specific rendering context did not contain the studio key. It could produces issues down the line, as some reports are prepared to receive that key and produce another output. After this commit, the studio key is present in the context and in the data passed to render the report. Forward-Port-Of: odoo/enterprise#48521
Original PR description
Before this commit when the report editor asked for the Qweb, the specific rendering context did not contain the studio key. It could produces issues down the line, as some reports are prepared to receive that key and produce another output. After this commit, the studio key is present in the context and in the data passed to render the report. Forward-Port-Of: odoo/enterprise#48521
Steps to reproduce: - Create a new shipping method with sendcloud as a provider - Enable DPD pickup points (must be enabled on your sendcloud account too) - Buy a product and proceed to check-out Bug: when selecting a pickup point house numbers aren't set which in turns leads to the delivery not being able to be validated Fix: set house number as part of the adress and remove redundant adress on template opw-3443246 Forward-Port-Of: odoo/enterprise#48317
Original PR description
Steps to reproduce: - Create a new shipping method with sendcloud as a provider - Enable DPD pickup points (must be enabled on your sendcloud account too) - Buy a product and proceed to check-out Bug: when selecting a pickup point house numbers aren't set which in turns leads to the delivery not being able to be validated Fix: set house number as part of the adress and remove redundant adress on template opw-3443246 Forward-Port-Of: odoo/enterprise#48317
In Studio, it is not possible to scroll the xml code of a view by clicking and moving the scroll bar Steps to reproduce: 1. Install CRM 2. Go to CRM, open a lead and toggle Studio 3. Open the view tab in the sidebar panel and click on xml 4. Try to scroll the template code by clicking on the scroll bar 5. It's not possible, instead you resize the sidebar Problem: The resizable_panel_handle was too wide and overlapped the scroll bar opw-3427984 Forward-Port-Of: odoo/enterprise#484
Original PR description
In Studio, it is not possible to scroll the xml code of a view by clicking and moving the scroll bar Steps to reproduce: 1. Install CRM 2. Go to CRM, open a lead and toggle Studio 3. Open the view tab in the sidebar panel and click on xml 4. Try to scroll the template code by clicking on the scroll bar 5. It's not possible, instead you resize the sidebar Problem: The resizable_panel_handle was too wide and overlapped the scroll bar opw-3427984 Forward-Port-Of: odoo/enterprise#48462
Before this commit: After configuring the WhatsApp integration under POS settings, it is not populating the WhatsApp field on the Receipt screen. After this commit: WhatsApp field displayed on the Receipt screen when WhatsApp POS is properly configured Task - 3516767 Forward-Port-Of: odoo/enterprise#48153
Original PR description
Before this commit: After configuring the WhatsApp integration under POS settings, it is not populating the WhatsApp field on the Receipt screen. After this commit: WhatsApp field displayed on the Receipt screen when WhatsApp POS is properly configured Task - 3516767 Forward-Port-Of: odoo/enterprise#48153
Added archive filter in WhatsApp template and Whatsapp Account view. Added an Archived ribbon in the form view for archived records. Task - 3516243 Forward-Port-Of: odoo/enterprise#47535
Original PR description
Added archive filter in WhatsApp template and Whatsapp Account view. Added an Archived ribbon in the form view for archived records. Task - 3516243 Forward-Port-Of: odoo/enterprise#47535
Problem --------- Some report lines where bolded even though they had no children. This should not be the case. The case where a line is bold even though it has no sublines occurs when all the sublines are hidden because they equals to 0. Thus, they exist but are not shown. Objective --------- Make the report line not bold when its sublines are hidden because they eqeual 0. Solution --------- Add a condition on the `unfolded` report line class so that it is not given to lines that ha
Original PR description
Problem --------- Some report lines where bolded even though they had no children. This should not be the case. The case where a line is bold even though it has no sublines occurs when all the sublines are hidden because they equals to 0. Thus, they exist but are not shown. Objective --------- Make the report line not bold when its sublines are hidden because they eqeual 0. Solution --------- Add a condition on the `unfolded` report line class so that it is not given to lines that have no visible children. task-3508362 Forward-Port-Of: odoo/enterprise#48445 Forward-Port-Of: odoo/enterprise#48432
- Enable Debug Mode - Navigate to the Project app - Click on the three dots on a project and then click on Settings - Enable Studio - Click View - Enable Show Invisible Elements - Click on Settings tab Invalid props for component Setting: studioIsVisible opw-3500479 Forward-Port-Of: odoo/enterprise#48415
Original PR description
- Enable Debug Mode - Navigate to the Project app - Click on the three dots on a project and then click on Settings - Enable Studio - Click View - Enable Show Invisible Elements - Click on Settings tab Invalid props for component Setting: studioIsVisible opw-3500479 Forward-Port-Of: odoo/enterprise#48415
Before the conversion in Gantt, when a pill was dragged arount the Gantt view, other pills were not highlighted when hovered. This behavior is broken since the conversion. This commit fix this. Steps ===== - Install project(_enterprise) - Open a project with multiple tasks with planned dates set (e.g. `Research & Development` in the demo data - Go to the Gantt view of the tasks of this project - Click on a pill and drag it arount the Gantt view Issue ===== Other cell are higlighted
Original PR description
Before the conversion in Gantt, when a pill was dragged arount the Gantt view, other pills were not highlighted when hovered. This behavior is broken since the conversion. This commit fix this. Steps…
Before the conversion in Gantt, when a pill was dragged arount the Gantt view, other pills were not highlighted when hovered. This behavior is broken since the conversion. This commit fix this. Steps ===== - Install project(_enterprise) - Open a project with multiple tasks with planned dates set (e.g. `Research & Development` in the demo data - Go to the Gantt view of the tasks of this project - Click on a pill and drag it arount the Gantt view Issue ===== Other cell are higlighted when hovered Cause ===== The classes `o_grabbing`, `o_copying` and `o_no_dragging` are added to the div with class `o_gantt_renderer` instead of `o_gantt_view`. The selector used to define the conditions to provide visual feedback on hover is therefore not valid anymore. Fix === The structure of the stylesheet is modified to have the o_gantt_renderer tag in the root selector as it is the one having the relevant class now instead of o_gantt-view. Note: It would have been WAY easier and clearer to simply add the pseudo-class :has in the initial selector but, unfortunately, it is not supported in Firefox. task-3444256 Forward-Port-Of: odoo/enterprise#48431 Forward-Port-Of: odoo/enterprise#44737
While we filter the columns where we insert things, we forgot to filter the elements to insert. opw-3499902 Forward-Port-Of: odoo/enterprise#48436
Original PR description
While we filter the columns where we insert things, we forgot to filter the elements to insert. opw-3499902 Forward-Port-Of: odoo/enterprise#48436
- SRI validates only 2 decimal digits on the 'descuento' tag, currently we exceed this number of decimal places with 6 digits. We format to 2 and correct unit tests Forward-Port-Of: odoo/enterprise#48166
Original PR description
- SRI validates only 2 decimal digits on the 'descuento' tag, currently we exceed this number of decimal places with 6 digits. We format to 2 and correct unit tests Forward-Port-Of: odoo/enterprise#48166
The DIN 5008 layout is mandatory in Germany, Austria, and a part of Switzerland. In enterprise, DIN 5008 extensions have already been added for `account_followup` and `industry_fsm`, but not `sale_renting`. Consequently, pickup receipts would be titled as sales orders when printed using the DIN 5008 layout. This commit extends the `l10n_din5008` & `sale_renting` modules to differentiate between pickup receipts & sales orders. opw-3470280 Forward-Port-Of: odoo/enterprise#46808
Original PR description
The DIN 5008 layout is mandatory in Germany, Austria, and a part of Switzerland. In enterprise, DIN 5008 extensions have already been added for `account_followup` and `industry_fsm`, but not `sale_renting`. Consequently, pickup receipts would be titled as sales orders when printed using the DIN 5008 layout. This commit extends the `l10n_din5008` & `sale_renting` modules to differentiate between pickup receipts & sales orders. opw-3470280 Forward-Port-Of: odoo/enterprise#46808
Currently, KeyError 'docs' occurs when users try to edit the sources or preview of 'Reception Report' report template because there is not any key available in ctx like 'docs' here: https://github.com/odoo/enterprise/blob/b8056c51cc8223761ecd9997c367c07b49b32a5f/web_studio/models/ir_actions_report.py#L45 Step to produce: - Install 'inventory' and 'studio' - Open inventory > Operations > Receipts - Click on studio icon left side of user image > Click on reports - Click "Reception Repor
Original PR description
Currently, KeyError 'docs' occurs when users try to edit the sources or preview of 'Reception Report' report template because there is not any key available in ctx like 'docs' here:…
Currently, KeyError 'docs' occurs when users try to edit the sources or preview of
'Reception Report' report template because there is not any key available in ctx like 'docs' here:
https://github.com/odoo/enterprise/blob/b8056c51cc8223761ecd9997c367c07b49b32a5f/web_studio/models/ir_actions_report.py#L45
Step to produce:
- Install 'inventory' and 'studio'
- Open inventory > Operations > Receipts
- Click on studio icon left side of user image > Click on reports
- Click "Reception Report" report
- Click "Edit resources" or try to preview >>> Error occur
Traceback on sentry:
```
KeyError: 'docs'
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/saas-16.4/web_studio/controllers/report.py", line 475, in save_report
report_html = self._render_report(report, record_id)
File "home/odoo/src/enterprise/saas-16.4/web_studio/controllers/report.py", line 419, in _render_report
return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [])
File "home/odoo/src/enterprise/saas-16.4/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
File "odoo/addons/base/models/ir_actions_report.py", line 874, in _render_qweb_html
data = self._get_rendering_context(report, docids, data)
File "home/odoo/src/enterprise/saas-16.4/web_studio/models/ir_actions_report.py", line 45, in _get_rendering_context
if self.env.context.get("studio") and not ctx["docs"]:
```
This is because recently refector [Commit](https://github.com/odoo/enterprise/commit/2ae63d9a43ba973d905232105201d88e423a8245#diff-f51038885176025d325e1eac026ece97c9fd6d945f0141c482080252e5efc829R43) was added ant tries to access 'docs' which is not available in ctx.
The data was added in ctx from the here [Code](https://github.com/odoo/odoo/blob/b8cbed1138cd9ea94c09bb34762184c76a79d6c3/odoo/addons/base/models/ir_actions_report.py#L898-L910), but in many reports, due to validation, 'docs'
may not be added for stock see [Line](https://github.com/odoo/odoo/blob/b8cbed1138cd9ea94c09bb34762184c76a79d6c3/addons/stock/report/report_stock_reception.py#L38).
This commit fixes this issue by accessing 'docs' with 'get()' instead of direct
access to prevent KeyError if 'docs is not available in ctx.
sentry-4404390033
Forward-Port-Of: odoo/enterprise#46275Before this PR, all the sales quotation status was set to cancel, but the data still appeared in reports and non-recurring filters in both graph and pivot views. After this PR, add domain for cancelled records to not showing in reporting graph view and pivot view. task-3500508 Forward-Port-Of: odoo/enterprise#48338 Forward-Port-Of: odoo/enterprise#46687
Original PR description
Before this PR, all the sales quotation status was set to cancel, but the data still appeared in reports and non-recurring filters in both graph and pivot views. After this PR, add domain for cancelled records to not showing in reporting graph view and pivot view. task-3500508 Forward-Port-Of: odoo/enterprise#48338 Forward-Port-Of: odoo/enterprise#46687
In 16.3, in case some checks failed on the tax report, the XML export wizard displayed a banner informing the user some checks had not been successful. From 16.4 on, it is not allowed to modify the options dict while generating the lines, and doing so has no effect anymore (since options are generated from a distinct RPC call). Because of that, the banner did show up anymore in the Belgian export wizard. We cannot restore the behavior of the banner (as it would mean we have to recompute th
Original PR description
In 16.3, in case some checks failed on the tax report, the XML export wizard displayed a banner informing the user some checks had not been successful. From 16.4 on, it is not allowed to modify the options dict while generating the lines, and doing so has no effect anymore (since options are generated from a distinct RPC call). Because of that, the banner did show up anymore in the Belgian export wizard. We cannot restore the behavior of the banner (as it would mean we have to recompute the report when generating the options, which is of course not acceptable). Instead, we make the failed checks more visible on the report, by using a red banner and the standard warnings mechanism. The wizard does not show anything anymore, but it is assumed the user cannot open the export wizard without having first noticed the big red banner on the report. Forward-Port-Of: odoo/enterprise#46804