Wednesday, November 22, 2023
46 changes · master
Enhancements to existing features
Odoo's internal browser testing tools can now use customizable success indicators and report JavaScript memory usage after tests run. This helps development teams make automated tests more reliable and easier to diagnose without changing end-user behavior.
Button-triggered server requests now include the related business object and action name in their logged path. This gives support and operations teams clearer information when reviewing logs, making troubleshooting and monitoring easier without changing user workflows.
Original PR description
Before this commit, model and method wasn't logged when requesting call_button but these are usefull information. After this commit, the model and method are added in the path of call_button request, which thus log them. task id: 3346650
Code cleanup and technical improvements
This change reorganizes how many web interface components declare their settings, placing them closer to the related component code. It does not introduce new user-facing features, but it makes the codebase easier to maintain and supports more consistent future development.
Original PR description
Modernization of the codebase to have props/components/whatever properties defined closer to the component (no need to scroll down to find them, they're now right where we expect them to be). This is the style that FrameworkJS want to promote for future developments. task-3536307 https://github.com/odoo/enterprise/pull/50787
Miscellaneous changes
This draft change touches project tasks and sales-project integration, suggesting updates to how project work connected to sales is handled. The details are limited, so the expected business impact appears minor until the draft is clarified.
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
This update reorganizes frontend component definitions so related settings are kept closer to the components they affect. It does not introduce functional changes, but it makes the codebase easier to maintain and supports faster, safer future development.
Original PR description
Modernization of the codebase to have props/components/whatever properties defined closer to the component (no need to scroll down to find them, they're now right where we expect them to be). This is the style that FrameworkJS want to promote for future developments. https://github.com/odoo/odoo/pull/142276
Update the Japanese tax group template names to better fit the needs. Task id #3315696 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142886 Forward-Port-Of: odoo/odoo#142461
Original PR description
Update the Japanese tax group template names to better fit the needs. Task id #3315696 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142886 Forward-Port-Of: odoo/odoo#142461
Prior to this commit, the discount product was created at the installation of the point_of_sale module which does not make sense as this product is only used in the pos_discount module. We change this in this commit to also prevent the discount product to be shown in the frontend of the PoS when the user does not have the pos_discount module installed and abling him to download demo data on the flight if he does not have other products available. --- I confirm I have signed the CLA and read
Original PR description
Prior to this commit, the discount product was created at the installation of the point_of_sale module which does not make sense as this product is only used in the pos_discount module. We change this in this commit to also prevent the discount product to be shown in the frontend of the PoS when the user does not have the pos_discount module installed and abling him to download demo data on the flight if he does not have other products available. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142831
To reproduce the bug: - create an accrual allocation with the seniority plan - set the start date way in the past like in 2000 - validate the allocation - go on the dashboard, the accrued amount should be broken when setting the balance on a future date - additional days accrued if the cron is run Fix: nextcall being unset upon creation by default, the allocation would consider the start of the second level as the nextcall if the allocation is created in the past. This commits sets next
Original PR description
To reproduce the bug: - create an accrual allocation with the seniority plan - set the start date way in the past like in 2000 - validate the allocation - go on the dashboard, the accrued amount should be broken when setting the balance on a future date - additional days accrued if the cron is run Fix: nextcall being unset upon creation by default, the allocation would consider the start of the second level as the nextcall if the allocation is created in the past. This commits sets nextcall to a correct value if the lastcall is set in the past upon creation. 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#141006
Issue: ====== When using l10n_ar company , the public user (without sign in) will have an access error on the address page when clicking on process checkout from the website. Steps to reproduce the issue: ============================= - Install ecommerce + l10n_ar - Go to website without signing in and add any product to cart and process checkout Origin of the issue: ==================== Public user doesn't have the right to read `l10n_ar.afip.responsibility.type` and `l10n_latam.i
Original PR description
Issue: ====== When using l10n_ar company , the public user (without sign in) will have an access error on the address page when clicking on process checkout from the website. Steps to reproduce the issue: ============================= - Install ecommerce + l10n_ar - Go to website without signing in and add any product to cart and process checkout Origin of the issue: ==================== Public user doesn't have the right to read `l10n_ar.afip.responsibility.type` and `l10n_latam.identification.type` opw-3591440 Forward-Port-Of: odoo/odoo#142879
Steps to reproduce: ------------------- - add an alternative product B for a product A; - go to product A page on ecommerce; Issue: ------ The alternative product B is not displayed below the product A. Solution: --------- Use the `o_dynamic_empty` instead of `d-none` to manage display of the snippet. opw-3568699 Forward-Port-Of: odoo/odoo#141627
Original PR description
Steps to reproduce: ------------------- - add an alternative product B for a product A; - go to product A page on ecommerce; Issue: ------ The alternative product B is not displayed below the product A. Solution: --------- Use the `o_dynamic_empty` instead of `d-none` to manage display of the snippet. opw-3568699 Forward-Port-Of: odoo/odoo#141627
Before this commit, the modified test sometimes failed on runbot because it couldn't click on "Create and edit..." in the many2one dropdown. Here's what happened: 1) call editInput to write something in the many2one input 2) call selectDropdownItem to select "Create and edit..." This was done without mocking setTimeout. The problem is that editInput triggers the opening of the dropdown, but as setTimeout wasn't mocked, that opening was delayed. Then, selectDropdownItem first clicked on t
Original PR description
Before this commit, the modified test sometimes failed on runbot because it couldn't click on "Create and edit..." in the many2one dropdown. Here's what happened: 1) call editInput to write something…
Before this commit, the modified test sometimes failed on runbot because it couldn't click on "Create and edit..." in the many2one dropdown. Here's what happened: 1) call editInput to write something in the many2one input 2) call selectDropdownItem to select "Create and edit..." This was done without mocking setTimeout. The problem is that editInput triggers the opening of the dropdown, but as setTimeout wasn't mocked, that opening was delayed. Then, selectDropdownItem first clicked on the input to open the dropdown, and then clicked on the requested item. It might happen that the click on the input actually closed the dropdown instead of opening it, if it had been already opened via editInput. In that case, the test failed because it couldn't click later on on "Create and edit". This commit also improves the test utils to better log what really happens: in this case, the dropdown isn't open at all, so we detect that specific issue and log it with a proper message (which is different than "the dropdown is open, but I can find the item you're looking found). Runbot issue 28207 Task 3603040 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#142865
Before this commit, when creating a move with a product having no label. The label will be automatically fill with "Bacon Burger" in the report. By adding a condition on the span, the span will be empty if the label is empty and can still be modified in studio if needed. task: 3604617 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142882
Original PR description
Before this commit, when creating a move with a product having no label. The label will be automatically fill with "Bacon Burger" in the report. By adding a condition on the span, the span will be empty if the label is empty and can still be modified in studio if needed. task: 3604617 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142882
Before this commit, the width of the cells for many2many_tags was often too small, so the tags were truncated. (e.g.: the tax_id column on the sale order lines on the form view of the sale order) After this commit, the column has a min-width of 150px 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: odo
Original PR description
Before this commit, the width of the cells for many2many_tags was often too small, so the tags were truncated. (e.g.: the tax_id column on the sale order lines on the form view of the sale order) After this commit, the column has a min-width of 150px 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#141415
### Before this PR The query get also the packages with zero available_quantity . Sometimes the check `elif elem[1] == 0:` does not return true because of rounding of python. Should be used the float_is_zero but we have not the precision_rounding of the product on this function ### After this PR We get only the packages with available_quantity >0 so - We will not have the issue of rounding - The for will enumerate only the available packages --- I confirm I have signed the CL
Original PR description
### Before this PR The query get also the packages with zero available_quantity . Sometimes the check `elif elem[1] == 0:` does not return true because of rounding of python. Should be used the float_is_zero but we have not the precision_rounding of the product on this function ### After this PR We get only the packages with available_quantity >0 so - We will not have the issue of rounding - The for will enumerate only the available packages --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#141947
If we have an analytic plan without analytic accounts, but with subplans that do have analytic accounts, we do want them to appear in the widget. 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#142222
Original PR description
If we have an analytic plan without analytic accounts, but with subplans that do have analytic accounts, we do want them to appear in the widget. 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#142222
Steps to reproduce: - Purchase -> Open any RFQ/PO. - Click on the cell containing the "forecast" button, without clicking on the button itself. Following 28f2622, it will generate a traceback when clicking on a cell list from a button column. Since button columns don't have a `name`, no `record.fields` will match and throw a traceback, as we try to access `type` from nothing. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo
Original PR description
Steps to reproduce: - Purchase -> Open any RFQ/PO. - Click on the cell containing the "forecast" button, without clicking on the button itself. Following 28f2622, it will generate a traceback when clicking on a cell list from a button column. Since button columns don't have a `name`, no `record.fields` will match and throw a traceback, as we try to access `type` from nothing. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142597
Steps to reproduce: - Install modules: 'account_accountant', 'l10n_eg', 'l10n_eg_edi_eta'. - Switch company to "EG Company". - Configure "Large Cabinet Accounting" with ETA item code "10001138" and set Customer Taxes to "VAT 14%". - In "Journal Customer Invoices", disable "Factur-X (FR)" under Advanced Settings -> Electronic invoicing. Also, set Branch to "Deco Addict", ETA Activity Code to "Accounting, auditing, bookkeeping and tax advice activities", and ETA Branch ID to 0. - Update "Deco
Original PR description
Steps to reproduce: - Install modules: 'account_accountant', 'l10n_eg', 'l10n_eg_edi_eta'. - Switch company to "EG Company". - Configure "Large Cabinet Accounting" with ETA item code "10001138" and…
Steps to reproduce: - Install modules: 'account_accountant', 'l10n_eg', 'l10n_eg_edi_eta'. - Switch company to "EG Company". - Configure "Large Cabinet Accounting" with ETA item code "10001138" and set Customer Taxes to "VAT 14%". - In "Journal Customer Invoices", disable "Factur-X (FR)" under Advanced Settings -> Electronic invoicing. Also, set Branch to "Deco Addict", ETA Activity Code to "Accounting, auditing, bookkeeping and tax advice activities", and ETA Branch ID to 0. - Update "Deco Addict" with Tax ID "204899053" and set building number to 2. - Update "Azure Interior" with Tax ID "204899052" and set building number to 2. - In Accounting -> Configuration -> Thumb Drive, create a new record using "EG Company" with 123 as both the ETA USB Pin and Access Token. - Manually set the certificate in the Thumb Drive record. - Create a new Customer Invoice with Customer set to "Azure Interior", Invoice Date as today, add a line item "Large Cabinet", set the Price to 0, remove "0% taxes" and add "VAT 14%", and set Journal to "Customer invoices in EUR". - Confirm the invoice and attempt to "Sign Invoice". Issue: A traceback occurs with a divide by zero error in the invoice calculation when different currencies are involved. Solution: Refined _l10n_eg_edi_exchange_currency_rate function to calculate the currency exchange rate. Now, it ensures the division by amount_currency only occurs when it's not zero, preventing divide by zero errors during currency conversion in invoices. opw-3580529 Forward-Port-Of: odoo/odoo#141842
**Description of the issue/feature this PR addresses:** - Have a delivery order sent to a shipper and done - Return this delivery order completely (without a shipper, might not be important) - Return of the return to resend to the customer (with a shipper and therefore a tracking number) This will lead to a endless loop as the move_origin_ids say so (might be a bug or not) Anyway, we make sure that the logic makes sure that we do not process twice the same stock move. **Current beh
Original PR description
**Description of the issue/feature this PR addresses:** - Have a delivery order sent to a shipper and done - Return this delivery order completely (without a shipper, might not be important) - Return of the return to resend to the customer (with a shipper and therefore a tracking number) This will lead to a endless loop as the move_origin_ids say so (might be a bug or not) Anyway, we make sure that the logic makes sure that we do not process twice the same stock move. **Current behavior before PR:** Endless loop -> 💣 💥 **Desired behavior after PR is merged:** Happy users -> 😄 Info: @wt-io-it --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142942 Forward-Port-Of: odoo/odoo#139278
When we save a many2one in a dialog opened by the external button, we trigger a "read" of the "display_name" to update it if the changes made in the dialog have had an impact on it. Before this commit, the context used for this "read" was completely wrong, it was an unevaluated string. This commit will therefore allow you to use the evaluated context. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I con
Original PR description
When we save a many2one in a dialog opened by the external button, we trigger a "read" of the "display_name" to update it if the changes made in the dialog have had an impact on it. Before this commit, the context used for this "read" was completely wrong, it was an unevaluated string. This commit will therefore allow you to use the evaluated context. 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#142862 Forward-Port-Of: odoo/odoo#142750
Before the commit, there was a small issue where a foldable badge would be slightly smaller in height than A4 paper. This commit fixes this by giving foldable badges more height. Task-3389338 Forward-Port-Of: odoo/odoo#130721
Original PR description
Before the commit, there was a small issue where a foldable badge would be slightly smaller in height than A4 paper. This commit fixes this by giving foldable badges more height. Task-3389338 Forward-Port-Of: odoo/odoo#130721
Before this commit, when Odoo faced an internal error and lost the current synchronization token with Microsoft, after fetching events from Graph API an `410 Gone` was being thrown carrying the `SyncStateNotFound` code. Since we didn't handle this error code, we were experiencing a traceback after the request: ``` 2023-11-15 09:16:15,046 4 ERROR report-one-16-0-staging-1-10315840 odoo.addons.microsoft_account.models.microsoft_service: Bad microsoft request : b'{"error":{"code":"SyncStateNotF
Original PR description
Before this commit, when Odoo faced an internal error and lost the current synchronization token with Microsoft, after fetching events from Graph API an `410 Gone` was being thrown carrying the…
Before this commit, when Odoo faced an internal error and lost the current synchronization token with Microsoft, after fetching events from Graph API an `410 Gone` was being thrown carrying the `SyncStateNotFound` code. Since we didn't handle this error code, we were experiencing a traceback after the request:
```
2023-11-15 09:16:15,046 4 ERROR report-one-16-0-staging-1-10315840 odoo.addons.microsoft_account.models.microsoft_service: Bad microsoft request : b'{"error":{"code":"SyncStateNotFound","message":"The sync state generation is not found; generation=25;[highest=28][28][26][27]."}}' !
Traceback (most recent call last):
File "/home/odoo/src/odoo/addons/microsoft_account/models/microsoft_service.py", line 154, in _do_request
res.raise_for_status()
File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 410 Client Error: Gone for url: https://graph.microsoft.com/v1.0/me/calendarView/delta?%24deltatoken=MOCK_TOKEN_HERE
2023-11-15 09:16:15,051 4 ERROR report-one-16-0-staging-1-10315840 odoo.http: Exception during request handling.
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 2003, in __call__
response = request._serve_db()
File "/home/odoo/src/odoo/odoo/http.py", line 1589, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/src/odoo/odoo/http.py", line 1616, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/odoo/http.py", line 1820, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 237, in _dispatch
response = super()._dispatch(endpoint)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 154, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/odoo/http.py", line 697, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/addons/microsoft_calendar/controllers/main.py", line 55, in sync_data
need_refresh = request.env.user.sudo().with_context(sync_context)._sync_microsoft_calendar()
File "/home/odoo/src/odoo/addons/microsoft_calendar/models/res_users.py", line 99, in _sync_microsoft_calendar
events, next_sync_token = calendar_service.get_events(self.microsoft_calendar_sync_token, token=token)
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 20, in wrapped
return func(self, *args, **kwargs)
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 152, in get_events
events, next_sync_token = self._get_events_delta(sync_token=sync_token, token=token, timeout=timeout)
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 20, in wrapped
return func(self, *args, **kwargs)
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 111, in _get_events_delta
raise e
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 105, in _get_events_delta
events, next_sync_token = self._get_events_from_paginated_url(
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 20, in wrapped
return func(self, *args, **kwargs)
File "/home/odoo/src/odoo/addons/microsoft_calendar/utils/microsoft_calendar.py", line 76, in _get_events_from_paginated_url
_, data, _ = self.microsoft_service._do_request(
File "/home/odoo/src/odoo/addons/microsoft_account/models/microsoft_service.py", line 173, in _do_request
raise error
File "/home/odoo/src/odoo/addons/microsoft_account/models/microsoft_service.py", line 154, in _do_request
res.raise_for_status()
File "/usr/lib/python3/dist-packages/requests/models.py", line 943, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 410 Client Error: Gone for url: https://graph.microsoft.com/v1.0/me/calendarView/delta?%24deltatoken=MOCK_TOKEN_HERE
```
After this commit, everytime we receive the `SyncStateNotFound` code from Microsoft, we will trigger the full synchronization with Graph API. This way, the outdated token will be replaced with a brand new token.
Task-id: 3597211
Forward-Port-Of: odoo/odoo#142153Before this commit, when changing the event organizer to a new one, if the new organizer was not synced with Odoo a ValidationError was being thrown requesting that the new organizer must be added as attendee when it shouldn't (since the new organizer is not synced with Outlook). Additionaly, there was an extra call being made to the method `_is_microsoft_calendar_valid()` in the user synchronization checking which should be removed. After this commit, this restriction is removed: the new org
Original PR description
Before this commit, when changing the event organizer to a new one, if the new organizer was not synced with Odoo a ValidationError was being thrown requesting that the new organizer must be added as attendee when it shouldn't (since the new organizer is not synced with Outlook). Additionaly, there was an extra call being made to the method `_is_microsoft_calendar_valid()` in the user synchronization checking which should be removed. After this commit, this restriction is removed: the new organizer won't need to be added as attendee during this change of event organizers and the extra call to `_is_microsoft_calendar_valid()` is removed. Issue from: 3450045 Forward-Port-Of: odoo/odoo#142364
Suppose a user who imports a new picking thanks to this: ```csv location_id,location_dest_id,picking_type_id WH/Stock,Partners/Customers,YourCompany: Delivery Orders ``` Then, on the inferface, for one of the fields, he sets the value as "Database ID" (for instance "Destination Location/Database ID"). When trying to import the file, an error is raised, which could make sense since the provided value is not a DB identifier, but the error is actually incorrect: > Odoo Server Error. Curre
Original PR description
Suppose a user who imports a new picking thanks to this: ```csv location_id,location_dest_id,picking_type_id WH/Stock,Partners/Customers,YourCompany: Delivery Orders ``` Then, on the inferface, for…
Suppose a user who imports a new picking thanks to this:
```csv
location_id,location_dest_id,picking_type_id
WH/Stock,Partners/Customers,YourCompany: Delivery Orders
```
Then, on the inferface, for one of the fields, he sets the value as
"Database ID" (for instance "Destination Location/Database ID").
When trying to import the file, an error is raised, which could make
sense since the provided value is not a DB identifier, but the error
is actually incorrect:
> Odoo Server Error. Current transaction is aborted, commands ignored
> until end of transaction block
When looking for the destination location in the database, it will
raise a legit error since the domain does not make sense:
`[('id', '=', tentative_id)]`
Hence this:
> ERROR: invalid input syntax for type integer: "Partners/Customers"
The good point is that everything in the code already handles this:
we catch the error and add some detailed explanations in the import
error report, but... The SQL transaction is now broken. So, as soon
as another SQL request is executed, it will trigger an
`InFailedSqlTransaction` error, we will not catch it and this error
will be returned to the frontend (we lose the import report).
sentry-3969379125
Forward-Port-Of: odoo/odoo#142825This PR modifies the functioning of `ODOO.PIVOT.TABLE` formula when the boolean `includeTotal` is set to 'false'. Earlier, total values of both row and column were not displayed in this case. But now, if a groupby is not applied on any of the two dimensions, it displays total values of the dimension on which groupby has been applied. For example, one row groupby and zero column groupbys are applied on pivot: The formula `=ODOO.PIVOT.TABLE(1,,false)` would display all cells of pivot (i
Original PR description
This PR modifies the functioning of `ODOO.PIVOT.TABLE` formula when the boolean `includeTotal` is set to 'false'. Earlier, total values of both row and column were not displayed in this case. But now, if a groupby is not applied on any of the two dimensions, it displays total values of the dimension on which groupby has been applied. For example, one row groupby and zero column groupbys are applied on pivot: The formula `=ODOO.PIVOT.TABLE(1,,false)` would display all cells of pivot (including the row totals), except the last row (i.e. the column total). Task ID : 3580623 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#140970
Activate Sale/purchase receipts Create a purchase receipts Register payment Reset to draft Confirm Issue: outstanding payment is not visible opw-3572570 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#142433 Forward-Port-Of: odoo/odoo#141311
Original PR description
Activate Sale/purchase receipts Create a purchase receipts Register payment Reset to draft Confirm Issue: outstanding payment is not visible opw-3572570 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#142433 Forward-Port-Of: odoo/odoo#141311
The editor has specific behaviors when it comes to icons. For instance, marking them as `contenteditable="false"` so no text can end up into their container element. Those behaviors were only enabled for fa icons, this commit enables them for the new Odoo icons introduced at [1]. [1]: https://github.com/odoo/odoo/commit/546477dafab327d9990a5176bed4a9c2565eef74 Forward-Port-Of: odoo/odoo#142530
Original PR description
The editor has specific behaviors when it comes to icons. For instance, marking them as `contenteditable="false"` so no text can end up into their container element. Those behaviors were only enabled for fa icons, this commit enables them for the new Odoo icons introduced at [1]. [1]: https://github.com/odoo/odoo/commit/546477dafab327d9990a5176bed4a9c2565eef74 Forward-Port-Of: odoo/odoo#142530
Before this commit, validating an order with the l10n_sa_pos module installed resulted in a blank screen. Additionally, there was an issue with the display of receipts when no rounding was applied. opw-3594564 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142510
Original PR description
Before this commit, validating an order with the l10n_sa_pos module installed resulted in a blank screen. Additionally, there was an issue with the display of receipts when no rounding was applied. opw-3594564 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142510
**Description of the issue/feature this PR addresses:** Fix the wrong field assignment in the function of field "Due" from the payment term lines. **Impacted versions** * 17.0 Desired behaviour after PR is merged: After this PR merge, System will assign value to the right field. Fixed Issue [#141837](https://github.com/odoo/odoo/issues/141837) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142569
Original PR description
**Description of the issue/feature this PR addresses:** Fix the wrong field assignment in the function of field "Due" from the payment term lines. **Impacted versions** * 17.0 Desired behaviour after PR is merged: After this PR merge, System will assign value to the right field. Fixed Issue [#141837](https://github.com/odoo/odoo/issues/141837) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142569
Currently mounting an owl application using the Odoo web framework takes a good bit of boilerplate. This is both annoying but also creates the opportunity to misconfigure created applications. This commit exctracts the application creation logic to a helper function which will make it much easier to create Owl applications correctly. task-3580007 Forward-Port-Of: odoo/odoo#142498
Original PR description
Currently mounting an owl application using the Odoo web framework takes a good bit of boilerplate. This is both annoying but also creates the opportunity to misconfigure created applications. This commit exctracts the application creation logic to a helper function which will make it much easier to create Owl applications correctly. task-3580007 Forward-Port-Of: odoo/odoo#142498
Forward-Port-Of: odoo/odoo#142970
Original PR description
Forward-Port-Of: odoo/odoo#142970
Current behavior: When you sell a kit made of kit, the COGS are not registered correctly in the invoice. Steps to reproduce: - Create Kit A with product A - Create Kit B with product B - Create Kit Final with kit A and kit B - Make sure the Category of the products is in FIFO automated - Open PoS, and sell Kit Final and invoice it. - Go in the backend, and check the invoice lines of the order. - The COGS of the products are not registered correctly. Note: This was happening becaus
Original PR description
Current behavior: When you sell a kit made of kit, the COGS are not registered correctly in the invoice. Steps to reproduce: - Create Kit A with product A - Create Kit B with product B - Create Kit Final with kit A and kit B - Make sure the Category of the products is in FIFO automated - Open PoS, and sell Kit Final and invoice it. - Go in the backend, and check the invoice lines of the order. - The COGS of the products are not registered correctly. Note: This was happening because the price unit of the kit was not calculated correctly. Because when the product was a kit made of kit, the bom was not exploded to consider all the components of the kit. opw-3548604 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142246 Forward-Port-Of: odoo/odoo#141512
**Current behavior before PR:** Format and style are lost when copying content that has some style or format applied on it. **Desired behavior after PR is merged:** Now, able to copy content with its format and style. Task-3263360 Forward-Port-Of: odoo/odoo#119967
Original PR description
**Current behavior before PR:** Format and style are lost when copying content that has some style or format applied on it. **Desired behavior after PR is merged:** Now, able to copy content with its format and style. Task-3263360 Forward-Port-Of: odoo/odoo#119967
This commit fixes the filtering applied once a field was selected from the studio sidebar in the search view editor. For this view, the fields must always be draggable since they can be put in different location in the view. Some search editor tests have been modified to this change, since more fields are available to add in the view. An assertion has also been added to verify that no filtering happens when dropping a field into the view. task-3474817 Forward-Port-Of: odoo/enterprise#5089
Original PR description
This commit fixes the filtering applied once a field was selected from the studio sidebar in the search view editor. For this view, the fields must always be draggable since they can be put in different location in the view. Some search editor tests have been modified to this change, since more fields are available to add in the view. An assertion has also been added to verify that no filtering happens when dropping a field into the view. task-3474817 Forward-Port-Of: odoo/enterprise#50894
When exporting the journal report to xlsx, the folded journals are also exported, they souldn't. Steps: - Go to Accounting > Reporting > Journal Report - Unfold one journal, keep the others folded - Export to xlsx -> Folded journal are displayed. opw-3493622 Forward-Port-Of: odoo/enterprise#51189 Forward-Port-Of: odoo/enterprise#47348
Original PR description
When exporting the journal report to xlsx, the folded journals are also exported, they souldn't. Steps: - Go to Accounting > Reporting > Journal Report - Unfold one journal, keep the others folded - Export to xlsx -> Folded journal are displayed. opw-3493622 Forward-Port-Of: odoo/enterprise#51189 Forward-Port-Of: odoo/enterprise#47348
The l10n_ar localization already includes a dedicated VAT report (VAT Summary). However, a refinement was necessary as one of the columns, namely "Other taxes," was aggregating a diverse range of taxes. In response to valuable feedback, the decision was made to divide the column into three distinct categories. The "Other Taxes" column has now been split into the following columns, each corresponding to different tax codes: - "Perc. IIBB": This column is associated with the code "07," re
Original PR description
The l10n_ar localization already includes a dedicated VAT report (VAT Summary). However, a refinement was necessary as one of the columns, namely "Other taxes," was aggregating a diverse range of taxes. In response to valuable feedback, the decision was made to divide the column into three distinct categories. The "Other Taxes" column has now been split into the following columns, each corresponding to different tax codes: - "Perc. IIBB": This column is associated with the code "07," representing "Percepción de IIBB" (Income Tax Withholding). - "Perc. Earnings": This column utilizes the code "09," denoting "Otras Percepciones" (Other Withholdings). - "City Tax": This column is linked to codes "03" and "08," representing "Impuestos municipales" (Municipal Taxes). task: 3596987 Forward-Port-Of: odoo/enterprise#50744
**Version:** - 15.0 **Steps to reproduce:** - Create an appointment - Confirm an appointment - Go to your email account - Click on the invitation mail and reschedule an appointment **Issue:** Traceback occurs when rescheduling an appointment. **Cause:** The controller's route, which redirects users to different views based on their the role, contains 'website=True', causing a bad request error in the traceback. **Solution:** By removing website=True from the controller's r
Original PR description
**Version:** - 15.0 **Steps to reproduce:** - Create an appointment - Confirm an appointment - Go to your email account - Click on the invitation mail and reschedule an appointment **Issue:** Traceback occurs when rescheduling an appointment. **Cause:** The controller's route, which redirects users to different views based on their the role, contains 'website=True', causing a bad request error in the traceback. **Solution:** By removing website=True from the controller's route, traceback can be minimized and a normal bad request will show. task-3510161 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#48826
Steps to reproduce the bug: - Create a storable product “P1”: - attribute: color - value: Red and blue - Create a BoM for “P1” - Components: - C1 -> apply on P1 red - C2 -> apply on P1 blue - Go to MPS: - Add the product P1 blue and red - the components C1 and C2 are added - Updated the forecast demand of P1 red Problem: Both suggested replenishment components qty are updated when only C1 should be updated. opw-3504423 Forward-Port-Of: odoo/enterprise#51149
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- attribute: color
- value: Red and blue
- Create a BoM for “P1”
- Components: - C1 -> apply on P1 red - C2 -> apply on P1 blue
- Go to MPS: - Add the product P1 blue and red
- the components C1 and C2 are added
- Updated the forecast demand of P1 red
Problem:
Both suggested replenishment components qty are updated when only C1 should be updated.
opw-3504423
Forward-Port-Of: odoo/enterprise#51149The field tax_report_control_error defined on account.move was previously used to display a warning message on the tax closing's form view when some of the controls defined on the report failed. This was only used in l10n_be_reports at this point. From 16.4 on, this feature did not work anymore, because of the introduction of sections, and the fact the options dict is generated separately from the lines, and hence cannot be modified while these are being generated. https://github.com/odoo/
Original PR description
The field tax_report_control_error defined on account.move was previously used to display a warning message on the tax closing's form view when some of the controls defined on the report failed. This…
The field tax_report_control_error defined on account.move was previously used to display a warning message on the tax closing's form view when some of the controls defined on the report failed. This was only used in l10n_be_reports at this point. From 16.4 on, this feature did not work anymore, because of the introduction of sections, and the fact the options dict is generated separately from the lines, and hence cannot be modified while these are being generated. https://github.com/odoo/enterprise/commit/9b3bb03f27a142d367310e6def856efd194b3006 already removed such a warning on the Belgian XML export wizard, and introduced a warning banner directly on the report to replace it. With this commit, we make the choice to remove the wanring on the closing move as well ; any regular tax closing flow should anyway go through the report, and then view the warning displayed there. Another PR will follow in master to finish removing the unneeded fields. Forward-Port-Of: odoo/enterprise#51150 Forward-Port-Of: odoo/enterprise#50910
To reproduce ============ - Open Shop Floor - Create Filter + Save it (settings doesn't really seem to matter) - Close Shop Floor - Open Shop Floor - Check Saved Filters - --> Issue: Saved Filters are gone Problem ======= filters are not loaded Solution ======== load filters opw-3589718 Forward-Port-Of: odoo/enterprise#51148
Original PR description
To reproduce ============ - Open Shop Floor - Create Filter + Save it (settings doesn't really seem to matter) - Close Shop Floor - Open Shop Floor - Check Saved Filters - --> Issue: Saved Filters are gone Problem ======= filters are not loaded Solution ======== load filters opw-3589718 Forward-Port-Of: odoo/enterprise#51148
Steps: - Open Planning - Go to slot form view - Switch to mobile view - Check repeat Issue: - Alert box is not perfectly aligned. Cause: - Bootstrap classes is not perfectly used. Fix: - Add the 'recurrence_update' field one more time and apply bootstrap classes according to mobile friendly view also wrap the 'Edit' and 'recurrence_update' field in flex box. task-3478920 Forward-Port-Of: odoo/enterprise#47041
Original PR description
Steps: - Open Planning - Go to slot form view - Switch to mobile view - Check repeat Issue: - Alert box is not perfectly aligned. Cause: - Bootstrap classes is not perfectly used. Fix: - Add the 'recurrence_update' field one more time and apply bootstrap classes according to mobile friendly view also wrap the 'Edit' and 'recurrence_update' field in flex box. task-3478920 Forward-Port-Of: odoo/enterprise#47041
This PR makes two little changes: - Change the style of the kanban record: Before  After  - Play a sound when a pop-up is displayed (when scanning a non-reserved product or asking for the creation of a backorder) task-3524181 Forward-Port-
Original PR description
This PR makes two little changes: - Change the style of the kanban record: Before  After  - Play a sound when a pop-up is displayed (when scanning a non-reserved product or asking for the creation of a backorder) task-3524181 Forward-Port-Of: odoo/enterprise#48056
Before this commit, Quality steps of type worksheet done from the mrp shop floor, always passed. This is because since #44696, worksheets should be accessed through the `action_open_quality_check_wizard` to properly perform the worksheet check. Forward-Port-Of: odoo/enterprise#50797
Original PR description
Before this commit, Quality steps of type worksheet done from the mrp shop floor, always passed. This is because since #44696, worksheets should be accessed through the `action_open_quality_check_wizard` to properly perform the worksheet check. Forward-Port-Of: odoo/enterprise#50797
### Steps to reproduce: - Go to Timesheets and start the timer. - Try to stop the timer. - Odoo says that the project must be selected. - Select the project and stop the timer. - Odoo allows the timer to be stopped...But the styling of the **"Task"** field implies it's _required_, while the **"Project"** field has _optional_ styling despite being _required_. ### Investigation - Basically the styling of the two fields was just swapped, adding the class `o_required_modifier` to the task f
Original PR description
### Steps to reproduce: - Go to Timesheets and start the timer. - Try to stop the timer. - Odoo says that the project must be selected. - Select the project and stop the timer. - Odoo allows the timer to be stopped...But the styling of the **"Task"** field implies it's _required_, while the **"Project"** field has _optional_ styling despite being _required_. ### Investigation - Basically the styling of the two fields was just swapped, adding the class `o_required_modifier` to the task field instead of the project one. opw-3572543 Forward-Port-Of: odoo/enterprise#51129 Forward-Port-Of: odoo/enterprise#50345
In this PR we have fixed the layout issue in helpdesk team form view in automatic closing option. task-3268763 Forward-Port-Of: odoo/enterprise#51136 Forward-Port-Of: odoo/enterprise#40067
Original PR description
In this PR we have fixed the layout issue in helpdesk team form view in automatic closing option. task-3268763 Forward-Port-Of: odoo/enterprise#51136 Forward-Port-Of: odoo/enterprise#40067
This small fix will add a label before the hourly rate as it is missing at the moment. Forward-Port-Of: odoo/enterprise#50390
Original PR description
This small fix will add a label before the hourly rate as it is missing at the moment. Forward-Port-Of: odoo/enterprise#50390
The tours were relying on strictly demo data. This revision ensures we do run the tour with an existing spreadsheet. Runbot errors 27347,27341,27080,27077,33917 Forward-Port-Of: odoo/enterprise#51061 Forward-Port-Of: odoo/enterprise#50349
Original PR description
The tours were relying on strictly demo data. This revision ensures we do run the tour with an existing spreadsheet. Runbot errors 27347,27341,27080,27077,33917 Forward-Port-Of: odoo/enterprise#51061 Forward-Port-Of: odoo/enterprise#50349