Tuesday, September 3, 2024
31 changes · saas-17.4
Enhancements to existing features
The point of sale sales transfer smart button now displays its icon and text neatly aligned, preventing crowded or overlapping content. The label spelling was also corrected from "Transfered" to "Transferred," improving clarity and polish for users.
Original PR description
Before this commit: =================== The content was overloading in the smart button "Transferred from sale". Icon and text were not aligned  After this commit: ==================== Content is now aligned with the smart button. The icon and text are aligned now."Transfered" is changed to "Transferred"  task - 4080915
This update makes it easier to customize how billing periods are calculated for subscription invoice quantities. It helps businesses adapt subscription billing logic to their specific needs without changing core behavior for standard users.
Original PR description
Before this commit, the periods used in qty invoiced computation were not easily overridable.
Resolved issues and error corrections
Emptying the Discuss inbox no longer leaves a confusing “Jump to present” button on screen. This makes the inbox feel cleaner and avoids distracting users after they mark all messages as read.
Original PR description
Before this commit, when emptying inbox e.g. with "mark all as read" button, Inbox was showing the "Jump to present" at bottom of thread. Steps to reproduce: - With Mitchell Admin: set user…
Before this commit, when emptying inbox e.g. with "mark all as read" button, Inbox was showing the "Jump to present" at bottom of thread. Steps to reproduce: - With Mitchell Admin: set user preferences of notification to "Handle in Odoo" - With Marc Demo: send logged note in contact form view with `@Mitchell Admin` mentions - With Mitchell Admin: open Discuss app inbox then mark all messages as read => There's "Jump to present" at bottom of thread view of inbox This happens because when inbox is empty, it uses a special branching in template to display "Inbox is empty". In this branching, the invisible `span` "present-treshold" is not present, so by it being considered not visible it shows the bar. The `useVisible()` hook was resetting the value of `isVisible` to `false` when the ref.el changes, but it should actually be `undefined`. Which is what this commit fixes. This fixes the issue because condition to show "Jump to Present" relies on specific value `isVisible: false`, therefore `undefined` does not show the "Jump to Present" visual. <img width="982" alt="Screenshot 2024-09-02 at 16 03 08" src="https://github.com/user-attachments/assets/7dcc0e57-1b49-4d95-9dbd-24e76d7733f0">
Miscellaneous changes
Currently, a traceback is occurring when the user tries to download a card for a child partner of type `other` having no name. To reproduce this issue: 1) Install `Contacts` 2) Create a record in `Contact & Addresses` of type as `Other Addresses` in an existing contact 3) Now open the above-created contact 4) Download the Vcard for that record Error:- ``` AttributeError: 'bool' object has no attribute 'replace' ``` As you can see name is only required when the type is 'c
Original PR description
Currently, a traceback is occurring when the user tries to download a card for a child partner of type `other` having no name. To reproduce this issue: 1) Install `Contacts` 2) Create a record in…
Currently, a traceback is occurring when the user tries to download a card
for a child partner of type `other` having no name.
To reproduce this issue:
1) Install `Contacts`
2) Create a record in `Contact & Addresses` of type as `Other Addresses`
in an existing contact
3) Now open the above-created contact
4) Download the Vcard for that record
Error:-
```
AttributeError: 'bool' object has no attribute 'replace'
```
As you can see name is only required when the type is 'contact'.
When the user creates a partner record without a name and tried to download the Vcard, it led to a traceback.
Because the name was used in the Vcard, which is false in this case. https://github.com/odoo/odoo/blob/6abe8da981e10f56eb50d07e8c53dcf97422f0c4/addons/web/models/res_partner.py#L30
**Note:-**
Also in the below line, `/web_enterprise/partner/<model("res.partner"):partner>/vcard`
route was never used anywhere in the Odoo except in one test case.
which was also introduced from the same PR through which the above route was added.
Because `Vcard` was initially in `enterprise` and later shifted to `community`.
https://github.com/odoo/odoo/blob/6abe8da981e10f56eb50d07e8c53dcf97422f0c4/addons/web/controllers/vcard.py#L16-L17
This commit will resolve this issue by taking the `complete name`
when the partner record failed to provide the name.
sentry-5673082917
Forward-Port-Of: odoo/odoo#176166Marketing card templates now handle longer text more reliably. This prevents text from being cut off or disappearing and ensures backgrounds continue to cover the full card, producing cleaner shared marketing visuals.
Original PR description
There are some layout issues when text is too long in card templates. Make some adjustments so it's better handled (background covers everything, text doesn't disappear beyond the line limit) task-4102438 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix hides profit and loss account fields on bank journals from users who should not see them. It also removes access to Analytic Report and Tax Report menus for non-accountants, reducing confusion and keeping accounting information limited to the appropriate roles.
Original PR description
The profit & loss accounts fields are visible on bank journals with only `account`/`account_accountant` installed. add a groups attribute, to remove these fields remove menus (Analytic Report & Tax Report) that should only be visible to accountants. Task-4130326
Forms opened in pop-up dialogs now wait for users to choose Save or Discard instead of saving changes automatically. This prevents accidental updates and makes the dialog behavior match the visible action buttons.
Original PR description
When a form view is in a dialog, there is a save and discard button. The current implementation would autosave the form. The autosave feature really doesn't make sense in that case. So now, form views in dialog do not autosave. Task ID: 3996654
The Inventory on Hand dashboard has been corrected to use the current product storage indicator. This ensures stock reporting includes the right storable products after a recent underlying product field change.
Original PR description
Since https://github.com/odoo/odoo/pull/165372 , the type = 'product' was replaced by a boolean field `is_storable` but this was not reflected in the dashboard 'Inventory on hand'. task-4154706 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 fixes demo employee contract data so it uses the correct Belgian salary structure type. It prevents access errors when loading or using demo data, making evaluation and testing smoother for users.
Original PR description
In this commit, fixes demo contract assigned with belgian structure type. related task-3596938
This fixes an error that could occur when creating Mexican electronic invoices for down payments without a product. Invoice line names continue to show product names when available, while product-free down payment lines are now handled safely.
Original PR description
Description of the issue this commit addresses: While we tought mx could not have invoices without product, it is actually possible in down payments. Therefore a condition looking for whether there is a product or not is missing in the invoice line name's computation. --- Desired behavior after this commit is merged: The invoice line's name always contains the name of the product just as before but cases where there is no product are handled instead of raising an error. --- Note: While at it, the method computing the name is renamed to better fit the helpers present in the same file. --- opw-4156804
Fixed an issue where users could not start a signature request from the cog menu immediately after creating a new record. The action now uses the updated record information, so the signature workflow launches reliably without needing extra steps.
Original PR description
Before this commit, when a new record was just created, requesting a signature from the cog menu would not call the Signature Request action since we were fetching the record id from the wrong place (controller props). After this commit, when creating a new record, Signature request action is sucessfully called in newly created records since we fetch the record id from the controller state instead, which is mutable to record changes. task-4116177
The payroll setup walkthrough has been corrected to match the current employee contract screen layout. This helps HR users complete the guided process without getting blocked by a field that moved to a different place.
Original PR description
In this PR, fixes payroll tour as hr responsible field moves from notebook to main view. Note: target saas-17.4 related task-3621276
Users can now choose the Quote option from a retweet action without seeing an error. This keeps the social media workflow smoother and prevents interruptions when managing Twitter/X posts in Odoo.
Original PR description
Steps to reproduce: 1. Click on the retweet button. 2. Select Quote. 3. An error occurs. Technical Reason: The 'social.StreamPostCommentsOriginalPost' template receives 'undefined' in the 'state.isEditMode' variable, which is called from 'social_twitter.TwitterQuoteDialog'. After this Commit: No error will occur. Task-4072916
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock move, and without a warehouse id, it was impossible to find a stock rule for it. Now, with the correct warehouse and stock rule, the stock move is added on the transfers. Testing steps: --------------------- - go to configuration > settings > enable Multi-step routes - go to configuration > wareho
Original PR description
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock…
Since the rule refactor, additional byproducts are not considered in the post production picking. The problem is when we add a new byproduct, the backend do not add the warehouse_id on the stock move, and without a warehouse id, it was impossible to find a stock rule for it. Now, with the correct warehouse and stock rule, the stock move is added on the transfers. Testing steps: --------------------- - go to configuration > settings > enable Multi-step routes - go to configuration > warehouses and enable either 2 or 3 step manufacture - go to configuration > enable byproducts - create a BOM with some components/byproducts - create a MO with the BOM above, confirm it. Now, we can see the 'transfers' button with 2 transfers, one by the components and another one for the final products and the byproducts. - add a new byproduct with some produced quantity. Problem: ------------- No picking for the new byproduct when clicking on the transfer button Expected behaviour: ------------------------------ The byproduct should be in the list task: 3982566 Forward-Port-Of: odoo/odoo#177730 Forward-Port-Of: odoo/odoo#170280
If you created an event using GNOME Evolution/Calendar, it could add an `X-EVOLUTION-ENDDATE` parameter to the event's `RRULE`. When that happens, if the event is pushed to a Google Calendar and synced in Odoo, all participants' calendars stop syncing from there onwards. <details> ``` 2024-06-26 07:10:57,942 41 ERROR odoo odoo.addons.google_calendar.models.res_users: [res.users(15,)] Calendar Synchro - Exception : unsupported property: X-EVOLUTION-ENDDATE=20371102T114500Z ! Traceback
Original PR description
If you created an event using GNOME Evolution/Calendar, it could add an `X-EVOLUTION-ENDDATE` parameter to the event's `RRULE`. When that happens, if the event is pushed to a Google Calendar and…
If you created an event using GNOME Evolution/Calendar, it could add an `X-EVOLUTION-ENDDATE` parameter to the event's `RRULE`.
When that happens, if the event is pushed to a Google Calendar and synced in Odoo, all participants' calendars stop syncing from there onwards.
<details>
```
2024-06-26 07:10:57,942 41 ERROR odoo odoo.addons.google_calendar.models.res_users: [res.users(15,)] Calendar Synchro - Exception : unsupported property: X-EVOLUTION-ENDDATE=20371102T114500Z !
Traceback (most recent call last):
File "/opt/odoo/auto/addons/google_calendar/models/res_users.py", line 100, in _sync_all_google_calendar
user.with_user(user).sudo()._sync_google_calendar(google)
File "/opt/odoo/auto/addons/google_calendar/models/res_users.py", line 78, in _sync_google_calendar
synced_recurrences = self.env['calendar.recurrence'].with_context(write_dates=recurrences_write_dates)._sync_google2odoo(recurrences)
File "/opt/odoo/auto/addons/google_calendar/models/google_sync.py", line 185, in _sync_google2odoo
odoo_record.with_context(dont_notify=True)._write_from_google(gevent, vals)
File "/opt/odoo/auto/addons/google_calendar/models/calendar_recurrence_rule.py", line 88, in _write_from_google
super()._write_from_google(gevent, vals)
File "/opt/odoo/auto/addons/google_calendar/models/google_sync.py", line 304, in _write_from_google
self.write(vals)
File "/opt/odoo/auto/addons/google_calendar/models/google_sync.py", line 71, in write
result = super().write(vals)
File "/opt/odoo/custom/src/odoo/odoo/models.py", line 3808, in write
fields[0].determine_inverse(real_recs)
File "/opt/odoo/custom/src/odoo/odoo/fields.py", line 1401, in determine_inverse
determine(self.inverse, records)
File "/opt/odoo/custom/src/odoo/odoo/fields.py", line 98, in determine
return needle(*args)
File "/opt/odoo/auto/addons/calendar/models/calendar_recurrence.py", line 219, in _inverse_rrule
values = self._rrule_parse(recurrence.rrule, recurrence.dtstart)
File "/opt/odoo/auto/addons/calendar/models/calendar_recurrence.py", line 366, in _rrule_parse
rule = rrule.rrulestr(rule_str, dtstart=date_start)
File "/usr/local/lib/python3.10/site-packages/dateutil/rrule.py", line 1730, in __call__
return self._parse_rfc(s, **kwargs)
File "/usr/local/lib/python3.10/site-packages/dateutil/rrule.py", line 1698, in _parse_rfc
raise ValueError("unsupported property: "+name)
ValueError: unsupported property: X-EVOLUTION-ENDDATE=20371102T114500Z
```
</details>
In https://discourse.gnome.org/t/working-with-evolution-mail-and-web-calendar-using-rrule-fail-because-of-x-evolution-enddate-in-rrule/19710/3 it explains why this happens and how it's actually a supported feature of RFC 5545.
Dateutil doesn't support that feature. It just fails with `ValueError`. Progress is being tracked in https://github.com/dateutil/dateutil/pull/1374.
Regarding what matters to Odoo, we can just strip any X-named params from the RRULE prefix and live happy with the rest (or fail if there's really a wrongly-formatted RRULE param). This way we avoid dateutil to fail unnecessarily and unlock users Google calendars synchronizations.
@moduon MT-6287
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#171784Since Chrome 128, the default headless mode has been updated to the "new" engine (which is closer to the regular rendering engine). This new mode only supports the window_size syntax where the seperator is a colon. Note: this syntax was already supported by previous Chrome versions. This commit forces the conversion to this new syntax because the old one is plainly ignored starting from Chrome 128, preventing "mobile" tests - at least - from being run in the proper resolution. Refe
Original PR description
Since Chrome 128, the default headless mode has been updated to the "new" engine (which is closer to the regular rendering engine). This new mode only supports the window_size syntax where the seperator is a colon. Note: this syntax was already supported by previous Chrome versions. This commit forces the conversion to this new syntax because the old one is plainly ignored starting from Chrome 128, preventing "mobile" tests - at least - from being run in the proper resolution. Reference: https://chromium.googlesource.com/chromium/src/+/b9b39a430f71c710d16aafcc67278ef77440c18d Forward-Port-Of: odoo/odoo#178687 Forward-Port-Of: odoo/odoo#178320
**Steps:** - Go to Shop - Add a product to the wishlist. - Access the Wishlist page and apply the Mobile View. - Apply Zoom on the mobile view **Issue:** - For some languages (like French) the full button can't be seen at the standard 100% view. Also a column of image is shown extra even though the image is not displayed **Fix:** - Removing the column of image for smaller screens will resolve our issue, and we would be able to see the button upto a lot more zooming ratio. **Affec
Original PR description
**Steps:** - Go to Shop - Add a product to the wishlist. - Access the Wishlist page and apply the Mobile View. - Apply Zoom on the mobile view **Issue:** - For some languages (like French) the full button can't be seen at the standard 100% view. Also a column of image is shown extra even though the image is not displayed **Fix:** - Removing the column of image for smaller screens will resolve our issue, and we would be able to see the button upto a lot more zooming ratio. **Affected version:** 17.0~master opw-4089951 Forward-Port-Of: odoo/odoo#178329
When a table of content is edited, the anchor ids to each of its h1 and h2 headings are re-generated in order to make the possibly updated navigation links target each individual heading. These ids are generated based on time for the table of content itself and a unique id for the heading. Because of this when links are defined to target those headings anchors, the links do not reference the correct id anymore if the table of content snippet is edited in any way. This commit fixes this
Original PR description
When a table of content is edited, the anchor ids to each of its h1 and h2 headings are re-generated in order to make the possibly updated navigation links target each individual heading. These ids are generated based on time for the table of content itself and a unique id for the heading. Because of this when links are defined to target those headings anchors, the links do not reference the correct id anymore if the table of content snippet is edited in any way. This commit fixes this issue's general case by keeping track of a generated id for the table of content, and assigning ids to headings in their sequence order. Steps to reproduce: - Drop a "Table of Content" block - Define a link to a heading (`#table_of_content_heading_...`) - Save - Edit - Select table of content => The link anchor does not match the heading id anymore. opw-3974850 Forward-Port-Of: odoo/odoo#178576 Forward-Port-Of: odoo/odoo#169408
### Steps to reproduce the issue: 1. Make sure you have access to the Analytic Distribution fields 2. Create an expense 3. Open the Split Expense Wizard and add Analytic Distribution to the new Expenses - Click out of the Analytic Distribution widget to close it, don't use the close icon 4. Finish the splitting process 5. On the Tree view that follows, the Analytic Distribution fields are empty ### Explanation: `onWindowClick` checks if the `analytic_distirbution` widget should
Original PR description
### Steps to reproduce the issue: 1. Make sure you have access to the Analytic Distribution fields 2. Create an expense 3. Open the Split Expense Wizard and add Analytic Distribution to the new…
### Steps to reproduce the issue:
1. Make sure you have access to the Analytic Distribution fields
2. Create an expense
3. Open the Split Expense Wizard and add Analytic Distribution to the new Expenses
- Click out of the Analytic Distribution widget to close it, don't use the close icon
4. Finish the splitting process
5. On the Tree view that follows, the Analytic Distribution fields are empty
### Explanation:
`onWindowClick` checks if the `analytic_distirbution` widget should close. If the conditions are met, `forceCloseEditor` is called and the data is saved.
In this case, one of the `selectors` is retrieved by `ev.target.closest`, namely `.modal:not(.o_inactive_modal)`, therefore not meeting the conditions to call `forceCloseEditor`, but the widget still closes.
### Fix reasoning:
We want `forceCloseEditor` to be called in this situation, since the user is not clicking on an element related to `analytic_distribution`. We can use `o_act_window` to filter Search More modals from Wizards, as it is absent from the former.
opw-4001757
Forward-Port-Of: odoo/odoo#178136
Forward-Port-Of: odoo/odoo#177161### Steps to reproduce: - Install the 'l10n_uk' module - The module "l10n_uk_bacs" is not installed, but it should ### Solution: Add a post init hook in `l10n_uk` to download `l10n_uk_bacs`. opw-4122475 Forward-Port-Of: odoo/odoo#178331
Original PR description
### Steps to reproduce: - Install the 'l10n_uk' module - The module "l10n_uk_bacs" is not installed, but it should ### Solution: Add a post init hook in `l10n_uk` to download `l10n_uk_bacs`. opw-4122475 Forward-Port-Of: odoo/odoo#178331
Steps to reproduce: - Go to a website blog post page > Drop a "Table of Content" snippet inside the blog post content. - Switch to translation mode > Try to translate a TOC title > The corresponding navigation label won't be automatically updated. - Save > The translation will be applied depending on whether the title and the navbar item have exactly the same content or not [*]. Starting from [1], the translation of a "Table of Content" navigation label was automatically applied
Original PR description
Steps to reproduce: - Go to a website blog post page > Drop a "Table of Content" snippet inside the blog post content. - Switch to translation mode > Try to translate a TOC title > The corresponding…
Steps to reproduce:
- Go to a website blog post page > Drop a "Table of Content" snippet
inside the blog post content.
- Switch to translation mode > Try to translate a TOC title > The
corresponding navigation label won't be automatically updated.
- Save > The translation will be applied depending on whether the title
and the navbar item have exactly the same content or not [*].
Starting from [1], the translation of a "Table of Content" navigation
label was automatically applied (only the text content) when the
corresponding title was translated, and the user was also warned when
trying to edit them directly in "translation" mode.
This implementation relied on the field observers mechanism to
synchronize translations for the table of content navigation and content
headers.
Unfortunately, the field mutations handler doesn't take translation
fields into consideration when they are part of another field's DOM:
1. Before trying to set the updated field value on its duplicates in the
DOM, the handler is using `_pauseOdooFieldObservers()` to `disconnect()`
all the observers of other fields to prevent receiving mutations from
its own updates.
2. In translation mode, and when the updated field has some inner
translation `<span/>`s, their observers will be disconnected too, and
their mutations will never be linked to the right target.
3. Finally, the `_observeOdooFieldChanges()` is used to observe the
fields again.
Let's take the following example:
```
<div data-oe-model="...">
<span data-oe-translation-initial-sha="...">Text Content</span>
</div>
```
In this case, two observers are created, one for the `[data-oe-model]`
(`O1`) and the other for the `[data-oe-translation-initial-sha]` (`O2`).
When editing the "Text Content" of the `<span/>`, `O1` will be triggered
(for the parent field) and will temporarily disconnect all other fields
observers (including (`O2`)) and as a consequence, `O2` won't be able to
synchronize the value of the translation field on the ones with the same
`data-oe-translation-initial-sha` (which is the same situation as in a
"Table of Content" block).
The goal of this commit is to simply prevent disconnecting inner
translation field observers to allow the translation synchronization
inside a parent field DOM.
[*]: Remark: when a TOC title and its navigation item have different DOM
(e.g., the font color of the title changed), the code from [1] will
always temporarily set the same `data-oe-translation-initial-sha` on
both of them (and restore the original ones before saving), which
explains the different translation values when the field observers are
not working correctly.
[1]: https://github.com/odoo/odoo/commit/5776a358e1b42186d2c26c9bc25010a12811f416
opw-3990039
opw-3888871
Forward-Port-Of: odoo/odoo#178439
Forward-Port-Of: odoo/odoo#176198Somes files need freezegun to run in master. We add this module in the new image 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#178002
Original PR description
Somes files need freezegun to run in master. We add this module in the new image 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#178002
This commit improves the performance of the related_models.js file by using Map instead of Object and Array to keep ordering of records. This commit also improves the performance of the product_screen.js file by filtering product after slicing the product list. Forward-Port-Of: odoo/odoo#173309 Forward-Port-Of: odoo/odoo#172303
Original PR description
This commit improves the performance of the related_models.js file by using Map instead of Object and Array to keep ordering of records. This commit also improves the performance of the product_screen.js file by filtering product after slicing the product list. Forward-Port-Of: odoo/odoo#173309 Forward-Port-Of: odoo/odoo#172303
### Issue: The bank accounts of a company are not accessible from the branches of this company. ### Steps to reproduce: - In Settings, create a company and a branch company - In the contact app, add a bank account for the company - Switch to the branch company - In the Accounting app, create a Customer invoice - In the "Other Info", change the Company to the branch - The bank account created does not show up in the selection of the field "Recipient Bank" ### Cause: The current doma
Original PR description
### Issue: The bank accounts of a company are not accessible from the branches of this company. ### Steps to reproduce: - In Settings, create a company and a branch company - In the contact app, add…
### Issue:
The bank accounts of a company are not accessible from the branches of this company.
### Steps to reproduce:
- In Settings, create a company and a branch company
- In the contact app, add a bank account for the company
- Switch to the branch company
- In the Accounting app, create a Customer invoice
- In the "Other Info", change the Company to the branch
- The bank account created does not show up in the selection of the field "Recipient Bank"
### Cause:
The current domain is `domain="[('partner_id', '=', bank_partner_id)]"` which is only taking the res.partner.bank record linked with the partner of the company (bank_partner_id).
### Solution:
The solution must work on companies not partners and use the 'parent_of' keyword so that the branches can access the records. Changing the domain to `[('partner_id.ref_company_ids', 'parent_of', company_id)]` works.
### Note:
- The field `ref_company_ids` is an old field that is almost not used anymore, but it is the only link between res.partner.bank and the company it is linked to.
- This domain used `partner_id.ref_company_ids` in an old version of Odoo, but it was changed in this commit: https://github.com/odoo/odoo/commit/1db371721f3549276ee622e8b4369db7ce13863c because of a bug. I did not manage to reproduce the bug in v17 with this fix.
Ticket [link](https://www.odoo.com/odoo/project.task/4027680)
opw-4027680
Forward-Port-Of: odoo/odoo#173287Because the signature is precomputed and includes the server URL, when running with a non-standard port the test fails as the port does not match the original value used to precompute the signature. - reset `web.base.url` to its default / precomputation value. - patch `TestPaymentTransaction.base_url` to return the same, as that is what `PaymentHttpCommon._build_url` uses to... build the url. Forward-Port-Of: odoo/odoo#178584
Original PR description
Because the signature is precomputed and includes the server URL, when running with a non-standard port the test fails as the port does not match the original value used to precompute the signature. - reset `web.base.url` to its default / precomputation value. - patch `TestPaymentTransaction.base_url` to return the same, as that is what `PaymentHttpCommon._build_url` uses to... build the url. Forward-Port-Of: odoo/odoo#178584
Versions: ------------- saas-17.2 Steps to Reproduce: ---------------------------- 1. Go to the Calendar app. 2. Switch to list view. 3. Select multiple events. 4. Attempt to duplicate the selected events. Issue: -------- An error occurs when trying to duplicate multiple events. Cause: ---------- After a recent update, the `copy` method now processes records in batches, calling the `create` method with multiple records at once. Previously, this was done one by one. This chan
Original PR description
Versions: ------------- saas-17.2 Steps to Reproduce: ---------------------------- 1. Go to the Calendar app. 2. Switch to list view. 3. Select multiple events. 4. Attempt to duplicate the selected events. Issue: -------- An error occurs when trying to duplicate multiple events. Cause: ---------- After a recent update, the `copy` method now processes records in batches, calling the `create` method with multiple records at once. Previously, this was done one by one. This change causes issues because the `default_get` method, used during creation, now encounters multiple records in `self`, leading to a singleton error. Solution: ------------ Instead of using `self.default_get()` with multiple records, we now use `self.env['calendar.event'].default_get()`. This ensures that the default values are set correctly without causing the singleton error. Task-4098739 Forward-Port-Of: odoo/odoo#175804
Once we clicked the "Pair" button, a notification showing "No new IoT Box found." was displayed. We want to avoid that. Forward-Port-Of: odoo/enterprise#69002
Original PR description
Once we clicked the "Pair" button, a notification showing "No new IoT Box found." was displayed. We want to avoid that. Forward-Port-Of: odoo/enterprise#69002
Before this commit, some tests were failing because the time was not correctly frozen. The failing test could be seen when run like this: faketime '2024-08-31 02:01:00 UTC' ./odoo-bin -c ... runbot errors: 76518, 76519, 76520 Forward-Port-Of: odoo/enterprise#69267
Original PR description
Before this commit, some tests were failing because the time was not correctly frozen. The failing test could be seen when run like this: faketime '2024-08-31 02:01:00 UTC' ./odoo-bin -c ... runbot errors: 76518, 76519, 76520 Forward-Port-Of: odoo/enterprise#69267
Before this fix, invoices with multiple sale.orders linked to invoice lines broke _get_extra_payment_form_values and subscription_transaction methods after odoo/enterprise#36656, which targeted single invoices only. Since multiple subscriptions can be linked to the same invoice, we needed to adapt that flow. After this fix, invoices with multiple sale.orders linked to their lines can now be processed correctly, and payment automation works normally. We now consider the flow of multiple subscr
Original PR description
Before this fix, invoices with multiple sale.orders linked to invoice lines broke _get_extra_payment_form_values and subscription_transaction methods after odoo/enterprise#36656, which targeted single invoices only. Since multiple subscriptions can be linked to the same invoice, we needed to adapt that flow. After this fix, invoices with multiple sale.orders linked to their lines can now be processed correctly, and payment automation works normally. We now consider the flow of multiple subscriptions properly. This fix resolves the issue and ensures seamless payment automation. task-4048237 Forward-Port-Of: odoo/enterprise#66675
test_shop_floor fails with only mrp_workorder installed. With quality_mrp (as in runbot), test succeeds. Origin is in _compute_lot_line_id which set lot_id even when no qty_done. Forward-Port-Of: odoo/enterprise#69063 Forward-Port-Of: odoo/enterprise#68226
Original PR description
test_shop_floor fails with only mrp_workorder installed. With quality_mrp (as in runbot), test succeeds. Origin is in _compute_lot_line_id which set lot_id even when no qty_done. Forward-Port-Of: odoo/enterprise#69063 Forward-Port-Of: odoo/enterprise#68226
Steps to reproduce (in odoo) - Open a spreadsheet - do something such that there's a least one revisions - leave the spreadsheet => non-deterministic concurrent update because we save the thumbnail and we snapshot at the same time. I'm able to reproduce more when my laptop power setting is on "performance" compared to "balanced" Task: 4080148 Forward-Port-Of: odoo/enterprise#68918
Original PR description
Steps to reproduce (in odoo) - Open a spreadsheet - do something such that there's a least one revisions - leave the spreadsheet => non-deterministic concurrent update because we save the thumbnail and we snapshot at the same time. I'm able to reproduce more when my laptop power setting is on "performance" compared to "balanced" Task: 4080148 Forward-Port-Of: odoo/enterprise#68918