Thursday, October 20, 2022
65 changes · master
Enhancements to existing features
This update reorganizes how the mail chat window is managed behind the scenes. It should make the chat experience easier to maintain and improve over time without changing day-to-day user workflows.
Original PR description
Task-3004259
The email attachment viewer has been reorganized internally to make the code easier to maintain and evolve. This should not change day-to-day user behavior, but it helps support future improvements with lower risk.
Original PR description
Task-2996277
The mail app’s hidden chat window menu was reorganized so its behavior is handled more consistently behind the scenes. This should make the chat interface easier to maintain and reduce the risk of future issues without changing the visible workflow for users.
Original PR description
Task-3014736
The mail app's hidden chat window menu has been reorganized internally to make it easier to maintain and evolve. This should help future improvements to chat behavior while keeping the current user experience unchanged.
Original PR description
Task-3014736
The mail chat window header was adjusted to pass only the needed conversation record between interface components. This keeps the chat interface easier to maintain and helps reduce the risk of future issues without changing the user experience.
Original PR description
Task-3001202
Point of Sale settings now let businesses choose whether orders paid with electronic payment methods are automatically validated. This gives stores more control over checkout workflows, allowing teams to keep the current fast flow or require manual confirmation when needed.
Original PR description
Actually if the customer pay with a electronic payment method the order is automatically validated. With this commit we add the possibility to activate or not this functionality 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
The mail chat window hidden menu was reorganized so its display logic is handled more consistently in the underlying data layer. This is an internal improvement that should make the chat interface easier to maintain without changing how users work with it.
Original PR description
Task-3004253
CRM activity reports now show and allow filtering by the tags linked to each lead, making it easier to analyze activities by customer segment or campaign category. The activity list view is also cleaner, with author avatars shown and descriptions hidden by default to focus on key reporting details.
Original PR description
Allows more granularity on the activity reports by adding a column to the tree view of crm activity reporting. Those are the tags of the lead of the activity. Remove useless 'api' import. Also, make them available in the search bar and default show in the tree view of activities. Improve the view with an avatar widget on the author and default hide on the description. Task-2991375
Settings changes are now applied before users follow related configuration links. This helps ensure the linked setup screens reflect the latest choices and avoids confusion from unsaved settings.
Original PR description
Description of the issue/feature this PR addresses: <b>Taks:</b>https://www.odoo.com/web?#id=1921574&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b>Pad:</b> https://pad.odoo.com/p/r.c30051da9b644dddb13b13758006b911 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
Empty HTML/rich text fields that previously stored invisible blank tags will now be saved as truly empty values. This prevents the system from mistakenly treating blank configuration fields as filled in, reducing confusion and incorrect behavior in related checks.
Original PR description
Description of the issue/feature this PR addresses: If html fields are left empty in configuration it could hapen it has empty tags in the database. If checked if these fields have content this test will return True. To avoid this the tags should be replaced by an empty string before writing to the database. example of unwanted behavior: https://drive.google.com/file/d/1dO_Ur6n3Sgzem0KQ_dXEPRlQkTVaEim8/view Desired behavior after PR is merged: during sanitizing of html fields run a regex over the field to determine if it consists of anpty tags or only whitespaces. In this case return '' instead of the original field. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now lets certain automatically filled fields keep a user-provided value instead of overwriting it during record creation or updates. This makes sales and accounting workflows more consistent, reducing manual onchange logic while preserving user choices when they intentionally override defaults.
Original PR description
On stored computed fields with `readonly=False`, do not compute the field if a value is passed by write or create method. Instead of ```python fiscal_position =…
On stored computed fields with `readonly=False`, do not compute the field if a value is passed by write or create method.
Instead of
```python
fiscal_position = fields.Many2one('account.fiscal.position')
@api.onchange('partner_id')
def onchange_partner_fiscal_position(self):
self.fiscal_position = self.partner_id.property_account_position
```
we define
```python
fiscal_position = fields.Many2one('account.fiscal.position',
compute='_compute_fiscal_position',
store=True, readonly=False)
@api.depends('partner_id.property_account_position')
def _compute_fiscal_position(self):
for record in self:
record.fiscal_position = record.partner_id.property_account_position
```
So the onchange is defined as a computed field that can be modified by the user.
Behavior
- an onchange triggered on 'partner_id' automatically invalidates 'fiscal_position' and recomputes it
- write({'partner_id': pid}) automatically invalidates 'fiscal_position' and recomputes it
- write({'partner_id': pid, 'fiscal_position': fp}) does not recompute 'fiscal_position'
- create({'partner_id': pid}) automatically computes 'fiscal_position'
- create({'partner_id': pid, 'fiscal_position': fp}) does not recompute 'fiscal_position'
The behavior covers:
- onchange methods: potentially a majority of onchange methods can be expressed as compute methods
- create() and write() behave as if they had executed the onchange methodsCurrency amounts are now shown and understood according to the user's language settings, including symbol placement and spacing. This makes prices and monetary values clearer and more consistent across accounting, sales, point of sale, delivery, lunch, digest, and web screens.
Original PR description
Description of the issue/feature this PR addresses: <b>Task:</b> https://www.odoo.com/web?#id=35636&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 <b> Pad:</b> https://pad.odoo.com/p/r.11ed19a243459e5cbd148b9c1fe75b4d 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 standardizes how internal screen events are named and passed between parts of Odoo. It should make the platform easier to maintain and reduce the risk of inconsistent behavior across apps, without introducing major visible changes for everyday users.
Original PR description
Task:https://www.odoo.com/web?debug=1#id=48682&action=333&active_id=133&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.8490ec0f0b238b75b008b1873aeb8da7 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now avoids unnecessary price calculations when it only needs to identify which pricelist rule applies. This can improve performance in sales pricing flows without changing the final prices users see.
Original PR description
For the sale scope, we added a new 'pricelist_item_id' field, caching the pricelist rule used for the price_unit and discount computation. This feature uses the new `_get_pricelist_rule` method, which only returns the pricelist rule matching the SOline values. But the `_get_pricelist_rule` method still does all the price computation for 'nothing'. This commit skips the price computation (and the search of sub-rules if the rule found is based on another pricelist). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now prevents users from manually creating payment tokens, which avoids confusing or unsafe records. Tokens are intended to be created only when linked to a customer's actual payment method details, improving payment data consistency.
Original PR description
Payment tokens should not be created manually, as it is useless, confusing and potentially harmful. They should only be created alongside payment details of a customer payment method. task-2848379 See also: - https://github.com/odoo/enterprise/pull/31199
Sales teams can now translate the default terms and conditions shown in sales settings. This helps companies present standard sales notes in the customer’s language, improving clarity for international customers.
Original PR description
Task: https://www.odoo.com/web?#id=1888280&action=333&active_id=131&model=project.task&view_type=form&menu_id=4720 Pad: https://pad.odoo.com/p/r.cb958720f0cc43d0beb7a71fdd2eb08a
Automatic next follow-up dates now adapt to the configured follow-up levels instead of using a fixed 14-day fallback. This makes customer payment reminders more consistent with each company's collection process and clarifies the behavior in the related tooltip.
Original PR description
Currently, when a next followup action date is set, it depends on the delay of the next followup level. If there is no next level, the date is arbitrarily set in 14 days. This is hard coded and doesn't depend on anything (aka it's weird and bad). This commit improves the setting of this next followup action date, by handling the different cases we can encounter: - by default (current behavior as well) -> next date set in (next level delay - current level delay) days - no next level -> next date set in (current level delay - previous level delay) days - no next level AND no previous level -> next date set in (current level delay) days - no level defined at all -> next date not set Also updates the tooltip to better explain this process. task id=3012793
The Master Production Schedule now includes filters to help users quickly find products that need replenishment, are under-replenished, or have excessive replenishment. The product column layout was also improved so checkboxes stay visible and better aligned with product names, making planning easier to review.
Original PR description
Support flilter by replenish state in mps
This change prevents users from manually creating payment tokens in subscriptions. Payment tokens will now only be created together with a customer's actual payment method details, reducing confusion and avoiding potentially harmful records.
Original PR description
Payment tokens should not be created manually, as it is useless, confusing and potentially harmful. They should only be created alongside payment details of a customer payment method. task-2848379 See also: - https://github.com/odoo/odoo/pull/99915
Resolved issues and error corrections
Fixes an issue that prevented users from opening the New Zealand tax report. The report can now be accessed and its calculations use the correct aggregation formula, supporting accurate tax reporting.
Original PR description
Description of the issue/feature this PR addresses: The New Zealender tax report couldn't be opened because of an error in aggregation formula Current behavior before PR: the tax report can't be opened Desired behavior after PR is merged: the tax report is fixed, can be opened and is correct --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Features or functions removed from Odoo
An unused sales order line field has been removed because it was not visible to users and could produce misleading rounded values. This reduces unnecessary data storage and background calculations while lowering the risk of incorrect use in sales-related customizations.
Original PR description
The price_reduce field is not shown to the users, and was not useful for business computations because of its digits specification (losing decimal data when we only want to round the total amounts, not the price before taxes). This commit removes the field to reduce the table size, remove useless computation, avoid misuses of the field and clean code. Task-3018371 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
The email module’s drag-and-drop file upload area was reorganized behind the scenes to make the code easier to maintain. This should not change day-to-day behavior, but it helps reduce unused logic and supports future improvements more safely.
Original PR description
Task-3004211
Miscellaneous changes
The label for due date was targeting invoice_payment_term_id instead of due date, thus not profiting from the readonly rules and being muted when it should not. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102827
Original PR description
The label for due date was targeting invoice_payment_term_id instead of due date, thus not profiting from the readonly rules and being muted when it should not. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102827
Sales order lines for delivery methods now use the customer's selected language instead of the user's current language. This prevents confusing untranslated shipping descriptions on quotes and orders for multilingual customers.
Original PR description
When adding a SO line with a delivery method (e.g. The Post) for a customer
with a different language that the one set on the current language, the description
of the SO line was not translated. Inspired from function 'product_id_change' in
model 'sale.order.line'
opw:1884114This change removes obsolete code from the Sales module that is no longer used. It helps keep the system easier to maintain without changing how users work with sales orders.
Original PR description
method order_lines_layouted() no longer used. 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 internal mail and Discuss code so business rules live in shared models rather than screen components. It should make future maintenance and more advanced messaging features easier to deliver reliably, with little direct change expected for users.
Original PR description
Move code from components to models, so that eventually all the business logic is in models. The benefit of business code in models is to ease proper modelling of whole state of the discuss features,…
Move code from components to models, so that eventually all the business logic is in models. The benefit of business code in models is to ease proper modelling of whole state of the discuss features, which is highly desireable for easily maitainable code or to implement sophisticated features in a robust way. [[IMP] mail: move code to models (AttachmentViewer)](https://github.com/odoo/odoo/commit/32cdf1f2c3153ba4bc1014b0d6a9cd4856e9bbdb) Task-2996277 [[IMP] mail: Move code from components to models (DropZone)](https://github.com/odoo/odoo/commit/7a8998995e863aac1cba423ba96123b6166061e3) Task-3004211 [[IMP] mail: move code from components to models (ChatWindow)](https://github.com/odoo/odoo/commit/9891148736191c14e98591e5705646904bfd4e18) Task-3004259 [[IMP] mail: Move code from components to models (ChatWindowHiddenMenu)](https://github.com/odoo/odoo/commit/489c2542e78c196d3743678bf56e80c1ea30dc93) Task-3014736 [[IMP] mail: Move code from components to models (ChatWindowHiddenMenuItem)](https://github.com/odoo/odoo/commit/aa79d61f3e7d9a8ae0e405e46e3463bafe5635f2) Task-3004253 [[IMP] mail: pass only record as props (ChatWindowHeader)](https://github.com/odoo/odoo/commit/c3e7256798d5040d0a2787b847dcc0348f905ef4) Task-3001202 [[IMP] mail: Move code from components to models (MessageList)](https://github.com/odoo/odoo/commit/bc2262ee84c0195c2e1fad9bc1cd7eea4af5ce1e) Task-3004204
The mail app's message list handling was reorganized to move more behavior into shared data models. This should make the messaging area easier to maintain and less prone to future regressions, with little direct change for end users.
Original PR description
Task-3004204
The backend developer tutorials now use a standard README file and a consistent folder structure for model examples. This makes the learning materials easier to follow and better aligned with Odoo's documentation guidelines.
Original PR description
- [REF] doc: backend - Use README.rst instead of description
- [REF] doc: backend - Use models/models.py standard
- Because documentation uses "models/models.py" but the patch uses "models.py"
- <img width="1038" alt="screen shot 2017-07-17 at 00 49 58" src="https://user-images.githubusercontent.com/6644187/28256418-ed7779dc-6a87-11e7-8f25-c9e7cf962387.png">
- Because [odoo guidelines](https://www.odoo.com/documentation/10.0/reference/guidelines.html) explain `models/` folder.Description of the issue/feature this PR addresses: Import button in import translation wizard is with an _ Current behavior before PR: Import button in import translation wizard is with an _ Desired behavior after PR is merged: updated button label --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103306
Original PR description
Description of the issue/feature this PR addresses: Import button in import translation wizard is with an _ Current behavior before PR: Import button in import translation wizard is with an _ Desired behavior after PR is merged: updated button label --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103306
Step to reproduce : 1. Open note and create a new document. 2. Add a "5 stars" widget with the power box. 3. Move the caret using the right arrow. 4. Boom, traceback. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103536
Original PR description
Step to reproduce : 1. Open note and create a new document. 2. Add a "5 stars" widget with the power box. 3. Move the caret using the right arrow. 4. Boom, traceback. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103536
If the credential of Adyen are not correct and refresh POS after a payment The cashier are unable to cancel or remove the payment line Because the longpollong continue to reach Adyen to try to get a response. This issue come from the last on POS_adyen commit: 262e50e2b2fb70d882fef536deb8ba253833639b With this commit we stop the polling if we can't reach Adyen server So the correct status is setted at the payment line and the cashier can delete it. Description of the issue/feature this PR a
Original PR description
If the credential of Adyen are not correct and refresh POS after a payment The cashier are unable to cancel or remove the payment line Because the longpollong continue to reach Adyen to try to get a response. This issue come from the last on POS_adyen commit: 262e50e2b2fb70d882fef536deb8ba253833639b With this commit we stop the polling if we can't reach Adyen server So the correct status is setted at the payment line and the cashier can delete it. 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#103281
**Steps to reproduce the bug:** - Create a storable product “P1” with BOM: - Type: Kit - Quantity: 3 - Components: - product “C1”, QTY: 5 - Update the quantity of “C1” to have 10 in stock - Go to “P1” product form **Problem:** - The on-hand quantity is 2 instead of 6 → 10 (available qty of c1) / (5 / 3) = 6 In the `_compute_quantities_dict` function, the `explode` function is called to have the qty of the component necessary: https://github.com/odoo/odoo/bl
Original PR description
**Steps to reproduce the bug:** - Create a storable product “P1” with BOM: - Type: Kit - Quantity: 3 - Components: - product “C1”, QTY: 5 - Update the quantity of “C1” to have 10 in stock - Go to…
**Steps to reproduce the bug:**
- Create a storable product “P1” with BOM:
- Type: Kit
- Quantity: 3
- Components:
- product “C1”, QTY: 5
- Update the quantity of “C1” to have 10 in stock
- Go to “P1” product form
**Problem:**
- The on-hand quantity is 2 instead of 6 → 10 (available qty of c1) / (5 / 3) = 6
In the `_compute_quantities_dict` function, the `explode` function is
called to have the qty of the component necessary:
https://github.com/odoo/odoo/blob/ef4ae7f62d6b690b4745b4145ce25ff02b6b29f6/addons/mrp/models/product.py#L151
but it is the qty necessary for 3 kit according to what is indicated
in the BOM, so we will have 5 qty needed of “C1” as a result:
https://github.com/odoo/odoo/blob/49234be3418169c8f3c928493b86a1a67ab55914/addons/mrp/models/mrp_bom.py#L289
Then the quantity available in stock of the “C1” (10) is reduced by
the quantity needed (5), so 2:
https://github.com/odoo/odoo/blob/ef4ae7f62d6b690b4745b4145ce25ff02b6b29f6/addons/mrp/models/product.py#L188
But this result must be multiplied at
the end by the quantity set in the BOM (3), to get the quantity per kit
→ (10/5)* 3 = 6
opw-3010175
Forward-Port-Of: odoo/odoo#103325…ted in POS Steps to reproduce the bug: - Let's consider a customer C with default sale payment term 30% Now, Balance 60 Days - Go to the POS and open a session - Select a product and set C as customer - Click on Payment and select Cash and check Invoice Bug: A traceback was raised because several account move lines are created. opw:3009062 Forward-Port-Of: odoo/odoo#103421 Forward-Port-Of: odoo/odoo#103019
Original PR description
…ted in POS Steps to reproduce the bug: - Let's consider a customer C with default sale payment term 30% Now, Balance 60 Days - Go to the POS and open a session - Select a product and set C as customer - Click on Payment and select Cash and check Invoice Bug: A traceback was raised because several account move lines are created. opw:3009062 Forward-Port-Of: odoo/odoo#103421 Forward-Port-Of: odoo/odoo#103019
The purpose of this commit is to fix an indeterminate error in the test_03_sale_quote_tour. Error: UncaughtTypeError: Cannot read properties of undefined (reading 'unselectable') Why? In the autocomplete component, it is possible to replace the sources without it being rerender. It is therefore possible to click on a option that no longer exists. Solution? We wait that all the sources are loaded before replacing them. Description of the issue/feature this PR addresses: Current b
Original PR description
The purpose of this commit is to fix an indeterminate error in the test_03_sale_quote_tour. Error: UncaughtTypeError: Cannot read properties of undefined (reading 'unselectable') Why? In the autocomplete component, it is possible to replace the sources without it being rerender. It is therefore possible to click on a option that no longer exists. Solution? We wait that all the sources are loaded before replacing them. 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#103258
This fix corrects the measure 'timesheet_revenues' calculation in the Timesheet report. It is now billable_time * aal.sol.price_unit. task-3007122 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102860
Original PR description
This fix corrects the measure 'timesheet_revenues' calculation in the Timesheet report. It is now billable_time * aal.sol.price_unit. task-3007122 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102860
Video 1 (Issue): https://drive.google.com/file/d/1oXYcDJgaT9gmhkjE08yJlXwIL1qPwS1Y/view?usp=sharing Issue: When using the register payment with a token with any of the payment acquirers, if there is a concurrent access error during the reconciliation process, the payment intent is sent multiple times to the acquirer, making the card charged multiple times. Steps to reproduce: -Have a V14 database (only tested this version) with sale_mmanagement, payment_stripe and invoicing -Configure
Original PR description
Video 1 (Issue): https://drive.google.com/file/d/1oXYcDJgaT9gmhkjE08yJlXwIL1qPwS1Y/view?usp=sharing Issue: When using the register payment with a token with any of the payment acquirers, if there is…
Video 1 (Issue): https://drive.google.com/file/d/1oXYcDJgaT9gmhkjE08yJlXwIL1qPwS1Y/view?usp=sharing Issue: When using the register payment with a token with any of the payment acquirers, if there is a concurrent access error during the reconciliation process, the payment intent is sent multiple times to the acquirer, making the card charged multiple times. Steps to reproduce: -Have a V14 database (only tested this version) with sale_mmanagement, payment_stripe and invoicing -Configure Stripe with your public and secret key (2FA is now enforced for Stripe accounts, therefore, we don't have a generic test account anymore. You have to create your own.It is quite fast and easy to do) -Have a portal user PU with an already registered payment token PT -Go to Invoicing -Create a new invoice I: -Customer PU -Add anything in invoice lines -Confirm I -Register a payment for I: -Journal: Stripe -Saved Payment token: PT AT THIS STEP, YOU MUST ENSURE A CONCURRENT ACCESS ERROR WILL RAISE DURING THE RECONCILIATION -Create Payment Log analysis: A first payment intent is sent to Stripe. The card is charged and Stripe answers that all went as expected. We try to process the payment, but a concurrent access error occurs. A retry is done. A payment intent is sent again to Stripe, The card is charged AGAIN and Stripe answers that all went as expected. We try to process the payment, but a concurrent access error occurs. For each retry, the intent is sent and the card is charged. If the first retry succeeds, then Odoo can finish the process. There will be only 1 payment transaction on Odoo's side (others have been rollbacked) but there will be 3 on Stripe's side and the card will be charged 3 times. This PR mitigate this behaviour. It doesn't address the root cause but by adding the idempotency key to the headers with the transaction display_name we prevent mutliple payments to happen. OPW-2662964 Forward-Port-Of: odoo/odoo#103491 Forward-Port-Of: odoo/odoo#101243
Before this commit, multi clicking quickly on the "Ok" or "Cancel" buttons of a ConfirmationDialog would call the confirm/cancel callbacks multiple times. For instance, in "Mass mailing", create a new mailing and click "Send". In the confirm dialog, clicking quickly multiple times on "Ok" would call the "Send" button action multiple times. This commit also ensures that we wait for the promise of the confirm callback before closing the dialog. This highlighted an issue in the ORMBatcher
Original PR description
Before this commit, multi clicking quickly on the "Ok" or "Cancel" buttons of a ConfirmationDialog would call the confirm/cancel callbacks multiple times. For instance, in "Mass mailing", create a new mailing and click "Send". In the confirm dialog, clicking quickly multiple times on "Ok" would call the "Send" button action multiple times. This commit also ensures that we wait for the promise of the confirm callback before closing the dialog. This highlighted an issue in the ORMBatcher, as we didn't reject the promise when the batched rpc failed. As a consequence, the confirmation dialog never closed itself. This has been spotted by an existing test. Fixing #74647 (from 16.0 to master) Forward-Port-Of: odoo/odoo#103180
[FIX] web_editor, *: fix link popover position in mobile edition *: website, test_website Before this commit, the LinkPopoverWidget element was not positioned correctly in mobile edition. With [1] that introduced the website edition using an iframe, the element was appended on the global document, outside of the iframe, so that it was not overlapped by the snippets manipulators (that were also in the global document). But Bootstrap popovers are not meant to be used "on top" of if
Original PR description
[FIX] web_editor, *: fix link popover position in mobile edition *: website, test_website Before this commit, the LinkPopoverWidget element was not positioned correctly in mobile edition. With [1]…
[FIX] web_editor, *: fix link popover position in mobile edition *: website, test_website Before this commit, the LinkPopoverWidget element was not positioned correctly in mobile edition. With [1] that introduced the website edition using an iframe, the element was appended on the global document, outside of the iframe, so that it was not overlapped by the snippets manipulators (that were also in the global document). But Bootstrap popovers are not meant to be used "on top" of iframes. Bootstrap uses the container's ownerDocument to compute placements, and does not take into account whether or not the target is located inside an iframe (therefore, skipping the iframe's offset and dimensions in the placements computations). This was leading to a visual bug in mobile edition: the iframe top, left values were not computed by the popover, and it was not positioned correctly. Since [2] moved the manipulators inside the iframe, the popover can be initialised using its target ownerDocument body, without being overlapped by the manipulators. Styles are adapted so that the popover stays consistent in the frontend and the backend, and a container option is added to the widget so that the element can be placed with other snippets manipulators from the website builder. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b [2]: https://github.com/odoo/odoo/commit/872bb20b3ac08cf82613e15e6634a2e7593ccf7a task-2687506 ----- [FIX] website: adapt "Edit" and "Translate" systray items to dark mode When the dark mode feature was merged with [1], it adapted the EditWebsiteSystray item with the 'text-reset' class. But this class was not removed if the website was translatable, and it was not added on the TranslateWebsiteSystray item, which was leading to wrongly colored systray items on a translatable website. [1]: https://github.com/odoo/odoo/commit/ee3aa3054cdd715720466863239d5aa56186946c ----- [FIX] web_editor: correctly position loading element In the Website Builder, when clicking on the THEME tab, and clicking on the "Switch theme" button, the loader behind the dialog was not placed correctly. After [1] moved the manipulators inside the iframe, the css rule for the loading elements was not updated to remove its right value, used to position the loading element next to the right panel. [1]: https://github.com/odoo/odoo/commit/872bb20b3ac08cf82613e15e6634a2e7593ccf7a --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103006
This PR ------- In Product Category, income/expense Account only select accounts with Internal Group is income/expense. But in Product, income/expense Account don't have that domain (although the domain above is not wrong). => This in my opinion causes confusion for users when using. The way to handle it, I will remove the domain part in the income/expense account to match the experience --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forw
Original PR description
This PR ------- In Product Category, income/expense Account only select accounts with Internal Group is income/expense. But in Product, income/expense Account don't have that domain (although the domain above is not wrong). => This in my opinion causes confusion for users when using. The way to handle it, I will remove the domain part in the income/expense account to match the experience --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102539
When choosing an image url from non-odoo pages, there is an access token sent at the end of url. Because of this, slide_course_publisher_standard didn't work as it expected jpg image name at the end. Now it will simply find a match for said jpg image and won't fail second commit takes care of the issue only in v15.3, where default image was not editable with website editor. Ticket-2908029 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/su
Original PR description
When choosing an image url from non-odoo pages, there is an access token sent at the end of url. Because of this, slide_course_publisher_standard didn't work as it expected jpg image name at the end. Now it will simply find a match for said jpg image and won't fail second commit takes care of the issue only in v15.3, where default image was not editable with website editor. Ticket-2908029 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#102667 Forward-Port-Of: odoo/odoo#100826
Purpose ======= In the case a time off is created: - In the past - Using support documents An invalid user error is raised in the interface, because the webclient is sending values for the field 'supported_attachment_ids' (Example: [(6, 0, [])]) which is writing by inverse relationship on the field 'attachment_ids'. On the other hand, it should be possible for an employee to add attachment on the time off after it has begun. TaskID: 3032232 Description of the issue/feature this
Original PR description
Purpose ======= In the case a time off is created: - In the past - Using support documents An invalid user error is raised in the interface, because the webclient is sending values for the field 'supported_attachment_ids' (Example: [(6, 0, [])]) which is writing by inverse relationship on the field 'attachment_ids'. On the other hand, it should be possible for an employee to add attachment on the time off after it has begun. TaskID: 3032232 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#103540
Before this commit a content-group was useless it is now removed, moreover the setting for the default plan needed to be changed to look like the other setting of the page. task-id: 2992668 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#100878
Original PR description
Before this commit a content-group was useless it is now removed, moreover the setting for the default plan needed to be changed to look like the other setting of the page. task-id: 2992668 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#100878
Since the recent css change the text of the description field was no taking all the place he could, so it was impossible to read, thanks to the colspan it's now the way it was intended --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103606
Original PR description
Since the recent css change the text of the description field was no taking all the place he could, so it was impossible to read, thanks to the colspan it's now the way it was intended --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103606
This commit fixes a race condition spotted by the click all test, in the Lunch application. To reproduce, go to Lunch > Configuration > Products, in the list view, toggle filter "Archived" s.t. there's no record matching the domain (and nothing displayed in the search panel anymore), then switch to kanban view, and remove the filter. On a multi-build, this scenario fails ~4 times out of 10. The issue occurs because a re-rendering of the search panel is triggered by its parent (because of the
Original PR description
This commit fixes a race condition spotted by the click all test, in the Lunch application. To reproduce, go to Lunch > Configuration > Products, in the list view, toggle filter "Archived" s.t.…
This commit fixes a race condition spotted by the click all test, in the Lunch application. To reproduce, go to Lunch > Configuration > Products, in the list view, toggle filter "Archived" s.t. there's no record matching the domain (and nothing displayed in the search panel anymore), then switch to kanban view, and remove the filter. On a multi-build, this scenario fails ~4 times out of 10. The issue occurs because a re-rendering of the search panel is triggered by its parent (because of the filter change), but the search panel didn't compute its active sections yet (this is done when the "update" event is triggered on the search model). The exact situation is hard to reproduce, but if there are non empty sections in the model, and the active sections haven't been computed yet in the search panel, it crashes. For instance, it happens all the time by delaying the promise returned by "_fetchSections". This commit doesn't introduce a qunit test because we didn't manage to reproduce the exact same situation in a test. This makes the Lunch click all test pass all the time though. 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#103616
- The name of the field `provider_id` on `payment.token` should not be "provider Account" but "Provider". - The computation of the display name of tokens crashed when the field `payment_details` was empty. - The form view of tokens missed a <group/> element to better display the fields. Forward-Port-Of: odoo/odoo#103523
Original PR description
- The name of the field `provider_id` on `payment.token` should not be "provider Account" but "Provider". - The computation of the display name of tokens crashed when the field `payment_details` was empty. - The form view of tokens missed a <group/> element to better display the fields. Forward-Port-Of: odoo/odoo#103523
Before this commit, closing an empty chat window with a non admin user would have led to an access error popup. Indeed, the `website_livechat` modules overrides the `_execute_channel_pin` method of the `mail.channel` model in order to unlink the channel if no messages were sent. The issue is that only the administrator is allowed to delete channels. This commit fixes this issue. task-3028153 Forward-Port-Of: odoo/odoo#103618
Original PR description
Before this commit, closing an empty chat window with a non admin user would have led to an access error popup. Indeed, the `website_livechat` modules overrides the `_execute_channel_pin` method of the `mail.channel` model in order to unlink the channel if no messages were sent. The issue is that only the administrator is allowed to delete channels. This commit fixes this issue. task-3028153 Forward-Port-Of: odoo/odoo#103618
We are spammed by some accounts that don't have credits anymore. With this commit, when we try to send letters from the cron, whenever we meet the CREDIT_ERROR error_code, we stop trying to send the letter. task-2930455 Forward-Port-Of: odoo/odoo#103264
Original PR description
We are spammed by some accounts that don't have credits anymore. With this commit, when we try to send letters from the cron, whenever we meet the CREDIT_ERROR error_code, we stop trying to send the letter. task-2930455 Forward-Port-Of: odoo/odoo#103264
[1] adapted the tour utils to the new WebsitePreview client action, but the clickOnSnippet function was not generating properly the triggers (it was creating invalid css selectors with a string argument, treating it as a class when it could be any css selector). This commit fixes this util. [1]: https://github.com/odoo/odoo/commit/99b50d18e220aedf14de806f4bf1b2d35c32de35 opw-3026167 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forwa
Original PR description
[1] adapted the tour utils to the new WebsitePreview client action, but the clickOnSnippet function was not generating properly the triggers (it was creating invalid css selectors with a string argument, treating it as a class when it could be any css selector). This commit fixes this util. [1]: https://github.com/odoo/odoo/commit/99b50d18e220aedf14de806f4bf1b2d35c32de35 opw-3026167 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103439
This commit introduce a field to determine condition for reloading chatter parent view when a file has changed. This allow patching the field so that more conditions could trigger a view reload. Task-2886634 Enterprise: https://github.com/odoo/enterprise/pull/32982 Forward-Port-Of: odoo/odoo#103557
Original PR description
This commit introduce a field to determine condition for reloading chatter parent view when a file has changed. This allow patching the field so that more conditions could trigger a view reload. Task-2886634 Enterprise: https://github.com/odoo/enterprise/pull/32982 Forward-Port-Of: odoo/odoo#103557
# Current behavior before PR:   # Desired behavior after PR is merged:    # Desired behavior after PR is merged:   Forward-Port-Of: odoo/odoo#103613
The emoji search bar should not be automatically focused when using odoo on mobile. This commit re-introduce the auto-focus of the search bar, and also cancel auto-focus if using odoo on mobile Task-3015386 Forward-Port-Of: odoo/odoo#103410
Original PR description
The emoji search bar should not be automatically focused when using odoo on mobile. This commit re-introduce the auto-focus of the search bar, and also cancel auto-focus if using odoo on mobile Task-3015386 Forward-Port-Of: odoo/odoo#103410
t-groups has no effect 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#103645
Original PR description
t-groups has no effect 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#103645
This `s_social_media` snippet option uses a variable defined in the module's scope to store social media values. This reduces the amount of RPCs needed to fetch the data as they will only be done once per edition. Prior to commit [1], this cache would only exist as long as the page lived. Which means that switching website, switching page or going in the backend would reset its value. Commit [1] moved the edition in the backend which means that the cache would persist between pages but
Original PR description
This `s_social_media` snippet option uses a variable defined in the module's scope to store social media values. This reduces the amount of RPCs needed to fetch the data as they will only be done…
This `s_social_media` snippet option uses a variable defined in the module's scope to store social media values. This reduces the amount of RPCs needed to fetch the data as they will only be done once per edition. Prior to commit [1], this cache would only exist as long as the page lived. Which means that switching website, switching page or going in the backend would reset its value. Commit [1] moved the edition in the backend which means that the cache would persist between pages but more importantly, between websites, only resetting if the backend was refreshed or left. Steps to reproduce: - Go on website 1 - Modify the URL for facebook in the footer - Go on website 2 - The value is the same when it should still be facebook.com/Odoo This commit fixes that by resetting the cache when the editor is destroyed. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b 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#98710
Steps to reproduce: - Install Accounting App. - Go to the Accounting App. - Click on 'Accounting' -> 'Assets'. - Create a new asset and confirm it. - Click on 'Modify Depreciation'. - Select the 'Sell' action. - Click on the empty 'Customer Invoice' field. Observed behavior: The invoices are listed based on their name, which is not very explicit/helpful. Desired behavior: In addition to the name, the partner and the date are also displayed in the list. The search is also improv
Original PR description
Steps to reproduce: - Install Accounting App. - Go to the Accounting App. - Click on 'Accounting' -> 'Assets'. - Create a new asset and confirm it. - Click on 'Modify Depreciation'. - Select the 'Sell' action. - Click on the empty 'Customer Invoice' field. Observed behavior: The invoices are listed based on their name, which is not very explicit/helpful. Desired behavior: In addition to the name, the partner and the date are also displayed in the list. The search is also improved, in order to use the partner name (in addition to the invoice name) to filter invoices. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#103400
Steps to reprodue: - enable any rtl language (arabic) - move to the product page for exemple - the page is frozen (dependecy loop in css) Bug: when the CSS gets minified the missing semicolon error spreads and produce an invalid file Fix: added the missing semicolon opw-3019173 opw-3032064 opw-3032250 opw-3035077 opw-3034712 opw-3035077 opw-3023730 opw-3022962 Forward-Port-Of: odoo/odoo#103681
Original PR description
Steps to reprodue: - enable any rtl language (arabic) - move to the product page for exemple - the page is frozen (dependecy loop in css) Bug: when the CSS gets minified the missing semicolon error spreads and produce an invalid file Fix: added the missing semicolon opw-3019173 opw-3032064 opw-3032250 opw-3035077 opw-3034712 opw-3035077 opw-3023730 opw-3022962 Forward-Port-Of: odoo/odoo#103681
This pull request updates spreadsheet-related code in the Documents area as part of NGR testing. The change appears to support testing or validation work rather than introducing a clear business-facing feature.
Some confusion during the development phase led to implement another `degressive_then_linear` method than the standard one. task-id: None - correction pad Forward-Port-Of: odoo/enterprise#32658
Original PR description
Some confusion during the development phase led to implement another `degressive_then_linear` method than the standard one. task-id: None - correction pad Forward-Port-Of: odoo/enterprise#32658
Steps to reproduce: - Install Accounting App. - Go to the Accounting App. - Click on 'Accounting' -> 'Assets'. - Create a new asset and confirm it. - Click on 'Modify Depreciation'. - Select the 'Sell' action. - Click on the empty 'Customer Invoice' field. Observed behavior: The invoices are listed based on their name, which is not very explicit/helpful. Desired behavior: In addition to the name, the partner and the date are also displayed in the list. The search is also improv
Original PR description
Steps to reproduce: - Install Accounting App. - Go to the Accounting App. - Click on 'Accounting' -> 'Assets'. - Create a new asset and confirm it. - Click on 'Modify Depreciation'. - Select the 'Sell' action. - Click on the empty 'Customer Invoice' field. Observed behavior: The invoices are listed based on their name, which is not very explicit/helpful. Desired behavior: In addition to the name, the partner and the date are also displayed in the list. The search is also improved, in order to use the partner name or the date to filter the invoices. Forward-Port-Of: odoo/enterprise#32844
The web framework / owl automatically fetches records from the server when required. It is done in the low-level useModel hook, that is used by most views. Since the Account Move Line List (and batch list) are full list views embedded inside a form view - any rerender to the form view will re-render child components and therefore trigger the model.load function. On larger databases, fetching the same list of records can have a significant impact on performance. To avoid this unneccessary call
Original PR description
The web framework / owl automatically fetches records from the server when required. It is done in the low-level useModel hook, that is used by most views. Since the Account Move Line List (and batch list) are full list views embedded inside a form view - any rerender to the form view will re-render child components and therefore trigger the model.load function. On larger databases, fetching the same list of records can have a significant impact on performance. To avoid this unneccessary call, an override of the relational model is used. A condition (the domain has changed) is applied before the reload of records, hence reducing the number of web_search_reads. This also ensures that users are still able to search for move lines and batches. Forward-Port-Of: odoo/enterprise#32898
Before this commit, when uploading a file in chatter on `hr.applicant`, we had to manually reload the view to see alert to let us know an OCR process is running from this file upload. This happens because showing of alert requires reloading the view, but file upload does not reload view. This is intended behaviour for most view, as it's unnecessary. In the case of `hr.applicant`, we want to reload view. This commit fixes the problem by patching triggering rule to reload view of chatter
Original PR description
Before this commit, when uploading a file in chatter on `hr.applicant`, we had to manually reload the view to see alert to let us know an OCR process is running from this file upload. This happens…
Before this commit, when uploading a file in chatter on `hr.applicant`, we had to manually reload the view to see alert to let us know an OCR process is running from this file upload. This happens because showing of alert requires reloading the view, but file upload does not reload view. This is intended behaviour for most view, as it's unnecessary. In the case of `hr.applicant`, we want to reload view. This commit fixes the problem by patching triggering rule to reload view of chatter from a file upload, so that it always does it when it's a view on `hr.applicant`. Note that this solution is specific to `hr.applicant`. So other models with OCR process in background won't work until they add a similar patch. As future work, would be nice to have awareness of presence of OCR process in background, so that code relies instead on this information and it will work for any views that has this future. Task-2886634 Community: https://github.com/odoo/odoo/pull/103557 Forward-Port-Of: odoo/enterprise#32982
This fix sets a default value to PlanningSlot.repeat_until (today + 1 week, as the default repeat_unit is 'week'). This will play the role of a 'placeholder' in the form view. task-3007122 related: https://github.com/odoo/odoo/pull/102860 Forward-Port-Of: odoo/enterprise#32615
Original PR description
This fix sets a default value to PlanningSlot.repeat_until (today + 1 week, as the default repeat_unit is 'week'). This will play the role of a 'placeholder' in the form view. task-3007122 related: https://github.com/odoo/odoo/pull/102860 Forward-Port-Of: odoo/enterprise#32615
[FIX] account consolidation export xlsx Xlsx was not working on account consolidation because the headers were not generate properly. Account reports expect headers to be in a list of lists and account consolidation was not in that format. Also some function in account reports change signature so account consolidation needed to update them. Forward-Port-Of: odoo/enterprise#32234
Original PR description
[FIX] account consolidation export xlsx Xlsx was not working on account consolidation because the headers were not generate properly. Account reports expect headers to be in a list of lists and account consolidation was not in that format. Also some function in account reports change signature so account consolidation needed to update them. Forward-Port-Of: odoo/enterprise#32234
When importing BoM, consumable products shall not be added to the MPS. Task : 2985735 Forward-Port-Of: odoo/enterprise#32949
Original PR description
When importing BoM, consumable products shall not be added to the MPS. Task : 2985735 Forward-Port-Of: odoo/enterprise#32949
To avoid warnings in the click_all nightly test Forward-Port-Of: odoo/enterprise#32941
Original PR description
To avoid warnings in the click_all nightly test Forward-Port-Of: odoo/enterprise#32941
In tablet view, a traceback occurs when 'set a new picture' on a step task: 2985735 Forward-Port-Of: odoo/enterprise#32922
Original PR description
In tablet view, a traceback occurs when 'set a new picture' on a step task: 2985735 Forward-Port-Of: odoo/enterprise#32922