Daily updates from Odoo
Navigate
Branch
Wednesday, January 15, 2020
28 changes
Enhancements to existing features
Website editing now makes internal drop areas visible inside newly placed snippets, so users can more easily see where content can be added. Helpful editor messages are also refreshed when snippets are dropped, making page building clearer and smoother.
Original PR description
- Apply the style of drag&drop zones (.oe_structure.oe_empty) even when it is a descendant of the editable element, not the editable element itself. This change allows to add a visible drag&drop zone in any snippet. - Add the editor messages (data-editor-message) on drag&drop zones when a snippet is dropped (not only on editor start as before). In preparation of task-2152185
This update improves several website building blocks so editors can arrange accordion items with arrows, use clearer drag-and-drop areas, and customize tabs more easily. It also simplifies some default snippets by removing oversized titles and improving spacing, making page building smoother and more flexible.
Original PR description
Adding arrows to move the items above and below each others and remove the big title task-2152185 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 website editor now updates its left-side options panel only after focus-related changes have been applied. This makes the panel more reliable and prepares the editor for upcoming improvements that depend on focus behavior.
Original PR description
Call the `onFocus` method before the `updateUI` one so that we can make changes before we update/render the UI (so that `updateUI` may be influenced by something done in `onFocus`). Needed for upcoming task: https://github.com/odoo/odoo/pull/42189
The Home Menu interface was refined to align with updated user experience standards and improve consistency. Supporting test utilities were also updated so the interface behaves more reliably during validation.
Original PR description
Improvements to the user interface of the Home Menu Extension of enterprise PR: https://github.com/odoo/enterprise/pull/7643
Partner bank account information is no longer shown in the general base partner view and is now available through the Accounting area. This keeps accounting-specific details in the right place, reducing clutter for non-accounting users while preserving access for finance teams.
This change streamlines how CRM and email marketing count leads and opportunities by using one shared count field instead of duplicate fields. It keeps the displayed labels clear for users while improving the underlying calculation for better efficiency.
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
The home menu was refined to feel cleaner and easier to use, including a more flexible search bar and simplified footer area. Search results now reset when users return to the home menu, helping avoid confusion and making navigation smoother.
Original PR description
- Centered footer logo - Dynamic search bar height Task 2170371 Community PR: https://github.com/odoo/odoo/pull/43125
The reconciliation widget now suggests matching the statement line amount when adding a larger invoice, instead of defaulting to the remaining open balance. This makes bank reconciliation faster and reduces manual correction for partial payments.
Original PR description
Suppose a statement line of 100. Add an invoice of 1000.0 in the reconciliation widget. The widget will suggest a partial payment of 100 instead of an open-balance of 900. --task: 2071055
Resolved issues and error corrections
This fixes an issue where edited custom text on product pages could block future website template updates. Product page custom text is now handled in a way that preserves update compatibility, reducing maintenance issues for online stores.
Original PR description
Custom text on a product was not an oe_structure thus preventing who modifies it to receive updates on the view. oe_structure save method wasnot saving the tag text. task-2040764 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix removes unintended accounting access from stock managers while preserving the stock valuation actions they need. Stock managers can still work with stock accounting records where appropriate, but broader billing permissions are no longer granted automatically.
Original PR description
The inheritance of account billing group gives stock managers the access to account module. This commit is to remove this inheritance. When we need to access account.move model, check if the user is a stock manager. If so, use sudo() to get the access. 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
Portal users can now post comments on demo project tasks without encountering an access-related error. This helps keep customer-facing collaboration smooth in demo or sample project environments.
Original PR description
When a portal user was commenting on a project task, the ir.rule `mail.message: portal/public: read published messages` was preventing the method _notify_record_by_email to get the messages's parent_id on the demo data. This commit aims to define a default value in such cases. task: 2009615 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 emoji button now appears only once when multiple languages are enabled. This avoids duplicate controls and keeps the emoji button aligned with the language button, making multilingual message editing cleaner and easier to use.
Original PR description
Bug === When we have 2 languages activated, `this.$el` contains 2 elements 1. The input text element 2. A `div.o_field_translate` element So, when we do `this.$el.after([...])` we add the button to 2 elements Fix === If we have multiple element in `this.$el` - Add a CSS class on the emojis button (this CSS class add some right margin) - Add the button on the last element in `this.$el`, so we have only one emojis button Adjust vertical position, so the button is aligned with the language button. Task #2168338
This fixes an internal purchase/manufacturing workflow error where the system could return the wrong type of value when no linked purchase line existed. The change helps prevent downstream processing issues in affected purchasing and manufacturing operations.
Original PR description
Commit e923058 aims to ensure the key 'created_purchase_line_id is
returned only if the move as this field filled. The issue is due to
the way python compare falsy object.
a = b and c will return b if b is falsy
will return c if neither b nor c are falsy.
If move_raw_id passed in the method doesn't have created_purchase_line_id
iterate_key = purchase.line.id() or 'created_purchase_line_id'
= purchase.line.id()
which is not correct as the method should return a string.
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-prFixes dropdown actions on financial report lines so options like Journal Items receive the needed account reference. This helps users navigate from reports to the underlying accounting entries without errors or broken actions.
Original PR description
The actions in the dropdown of a financial report line needs an id to work. For example, the "Journal Items" action needs a valid account.account id.
Miscellaneous changes
Some code modify return of res.users().context_get, but this is a cached method so this will unexpectedly affects totally unrelated code. For example, changing the company with the company switcher could add `allowed_company_ids` inside the cache, then it will be cached until the server is restarted, even if we change company again inbetween. Added test failed with: "NotImplementedError: '__setitem__' not supported on frozendict" on the line with `User = User.with_context(context)
Original PR description
Some code modify return of res.users().context_get, but this is a cached method so this will unexpectedly affects totally unrelated code. For example, changing the company with the company switcher could add `allowed_company_ids` inside the cache, then it will be cached until the server is restarted, even if we change company again inbetween. Added test failed with: "NotImplementedError: '__setitem__' not supported on frozendict" on the line with `User = User.with_context(context)` where User already contained `allowed_company_ids` in its context. opw-2158340 Forward-Port-Of: odoo/odoo#42514 Forward-Port-Of: odoo/odoo#42465
Since this field is not required on res.partner.bank (which is fine: we want it to be synchronized with the journal's currency, which is None if the journal uses company currency), the parameter received by validate_swiss_code_arguments ended out being an empty recordset in case the company was directly in CHF. This caused the QR code to never be displayed in this situation. Forward-Port-Of: odoo/odoo#43282
Original PR description
Since this field is not required on res.partner.bank (which is fine: we want it to be synchronized with the journal's currency, which is None if the journal uses company currency), the parameter received by validate_swiss_code_arguments ended out being an empty recordset in case the company was directly in CHF. This caused the QR code to never be displayed in this situation. Forward-Port-Of: odoo/odoo#43282
Complement of 6a6a7e6e64a7e3727a6de1ca8d35361112d99de8 Display the price tag correctly on the eCommerce. opw-2159838 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#43344
Original PR description
Complement of 6a6a7e6e64a7e3727a6de1ca8d35361112d99de8 Display the price tag correctly on the eCommerce. opw-2159838 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#43344
If we have a many2many_tags widget that is writable then becomes readonly, some data will still be present and possibly cause error. For example, if we have an attribute: `<field widget="many2many_tags" attrs="{'readonly': 'condition'}"/>` if the field goes from editable to readonly, we have on the field a `many2one` attribute that will for example cause an error in `getFocusableElement` because we try to focus on removed element. TODO: add a test opw-2154471 Forward-Port-Of:
Original PR description
If we have a many2many_tags widget that is writable then becomes
readonly, some data will still be present and possibly cause error.
For example, if we have an attribute:
`<field widget="many2many_tags" attrs="{'readonly': 'condition'}"/>`
if the field goes from editable to readonly, we have on the field a
`many2one` attribute that will for example cause an error in
`getFocusableElement` because we try to focus on removed element.
TODO: add a test
opw-2154471
Forward-Port-Of: odoo/odoo#43231
Forward-Port-Of: odoo/odoo#43137### Description of the issue/feature this PR addresses: The demo data for the exportation invoices was wrong created. ### Current behavior before PR: Exportation invoices were created in the regular journal named "Sales Journal"  ### Desired behavior after PR is merged: Exportation invoices are created in the exportation journal named "Exportation Sales Journal"  ### Desired behavior after PR is merged: Exportation invoices are created in the exportation journal named "Exportation Sales Journal"  -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#42993
In 13.0, account.invoice.line `name` Text field was transformed into account.move.line `name` Char field. So when we want to have this field on several line, we need to specify the widget `text` instead of `char` explicitely. opw-2160694 Forward-Port-Of: odoo/odoo#42395
Original PR description
In 13.0, account.invoice.line `name` Text field was transformed into account.move.line `name` Char field. So when we want to have this field on several line, we need to specify the widget `text` instead of `char` explicitely. opw-2160694 Forward-Port-Of: odoo/odoo#42395
Previous versions of this action had a context. It was removed at https://github.com/odoo/odoo/commit/2d3e6d7383aaa3c1589f220ab3a97c715d73e00a. Set explicitly an empty context to force the removal when upgrading the module. **Description of the issue/feature this PR addresses:** Fine tunning of https://github.com/odoo/odoo/pull/34581/commits/93465630090e2c42397fbdd9ab3ca5a5c3663079. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port
Original PR description
Previous versions of this action had a context. It was removed at https://github.com/odoo/odoo/commit/2d3e6d7383aaa3c1589f220ab3a97c715d73e00a. Set explicitly an empty context to force the removal when upgrading the module. **Description of the issue/feature this PR addresses:** Fine tunning of https://github.com/odoo/odoo/pull/34581/commits/93465630090e2c42397fbdd9ab3ca5a5c3663079. -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43310 Forward-Port-Of: odoo/odoo#36007
Description of the issue/feature this PR addresses: Fixes https://github.com/odoo/odoo/issues/43122 Current behavior before PR: Before this commit, Creating Journal without Bank account number will be failed as, It tries to update Related field 'l10n_ch_postal' while bank_account_id is not set. Desired behavior after PR is merged: In this commit, we update 'l10n_ch_postal' if 'bank_account_id' is present on Journal -- I confirm I have signed the CLA and read the PR guidelines
Original PR description
Description of the issue/feature this PR addresses: Fixes https://github.com/odoo/odoo/issues/43122 Current behavior before PR: Before this commit, Creating Journal without Bank account number will be failed as, It tries to update Related field 'l10n_ch_postal' while bank_account_id is not set. Desired behavior after PR is merged: In this commit, we update 'l10n_ch_postal' if 'bank_account_id' is present on Journal -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#43158
The `unsubscribe` feature of mass mailings repose on having a link with HREF attribute `/unsubscribe_from_list` inside the mail message. When the mass mailing is sent: - relative URL are replaced by absolute URL (`/unsubscribe_from_list` is replaced by `{system parameter web.base.url}/unsubscribe_from_list`) - `{system parameter web.base.url}/unsubscribe_from_list` is replaced by the real mass mailing link containing info that will be used to unsubscribe the user. But there was an issu
Original PR description
The `unsubscribe` feature of mass mailings repose on having a link with HREF attribute `/unsubscribe_from_list` inside the mail message. When the mass mailing is sent: - relative URL are replaced by…
The `unsubscribe` feature of mass mailings repose on having a link with
HREF attribute `/unsubscribe_from_list` inside the mail message.
When the mass mailing is sent:
- relative URL are replaced by absolute URL (`/unsubscribe_from_list` is
replaced by `{system parameter web.base.url}/unsubscribe_from_list`)
- `{system parameter web.base.url}/unsubscribe_from_list` is replaced by
the real mass mailing link containing info that will be used to
unsubscribe the user.
But there was an issue in the case of multiple domain, if this scenario
happened:
- system parameter web.base.url is http://domain1
- a user use "Test" button on a mass mailing
- system parameter web.base.url becomes http://domain2
- the mass mailing is sent
The unsubscribe link is broken, this is because the implementation of
"Test Mailing" feature would update the mass mailing with absolute
links, so if the domain change, we the `unsubscribe` link is no longer
found and replaced into the source.
opw-2124890
Forward-Port-Of: odoo/odoo#43277
Forward-Port-Of: odoo/odoo#42373Sort of but not really, this commit fixes a special case in which launching a --test-file of a file with at least two SavepointCases would create a postgresql deadlock and it would be impossible to terminate the Odoo process without sending a SIGKILL or waiting for the lock to timeout. This was introduced at #39368 and happens because of the way that unittests unwraps suites, to keep it short, when it unwraps the custom OdooSuite class internally, it ends up with a vanilla TestSuite wit
Original PR description
Sort of but not really, this commit fixes a special case in which launching a --test-file of a file with at least two SavepointCases would create a postgresql deadlock and it would be impossible to…
Sort of but not really, this commit fixes a special case in which launching a --test-file of a file with at least two SavepointCases would create a postgresql deadlock and it would be impossible to terminate the Odoo process without sending a SIGKILL or waiting for the lock to timeout. This was introduced at #39368 and happens because of the way that unittests unwraps suites, to keep it short, when it unwraps the custom OdooSuite class internally, it ends up with a vanilla TestSuite with which to run the different test cases, and since #39368 depends on the overrides added to OdooSuite to function, the class cleanups are not triggered at the end of a test class (rollback, cache cleanups, env reset, registry reset, etc.). The fix is to manually unwrap the suite of tests to keep OdooSuite as the suite with which to call the tests, which was already done for --test-enable (although for different reasons, --test-tags?) which is why --test-enable didn't have any problems. This commit also fixes a typo I found on the backport, which meant classCleanups were not being executed if the setUpClass failed, but it had no effect on classCleanups during tearDownClass. Task-ID 2160398 Depends on #43135 Forward-Port-Of: odoo/odoo#43267
An http-port provided on the command line (may also have been an issue for config files, didn't check) would not be taken in account anymore, because `odoo.tests.common` would be imported during the import of `odoo` itself (when loading odoo.service.server), itself importing `odoo.tools.config` leading to a default configuration being set up. * remove `odoo.tests.common.PORT`, `config['http_port']` should be used always * defer the import of odoo.tests.common by moving it inside lo
Original PR description
An http-port provided on the command line (may also have been an issue for config files, didn't check) would not be taken in account anymore, because `odoo.tests.common` would be imported during the import of `odoo` itself (when loading odoo.service.server), itself importing `odoo.tools.config` leading to a default configuration being set up. * remove `odoo.tests.common.PORT`, `config['http_port']` should be used always * defer the import of odoo.tests.common by moving it inside load_test_file * stop generating default configs Forward-Port-Of: odoo/odoo#43135
Forward-Port-Of: odoo/enterprise#7286
Original PR description
Forward-Port-Of: odoo/enterprise#7286
…2020 taskID: 2166731 Forward-Port-Of: odoo/enterprise#7723
Original PR description
…2020 taskID: 2166731 Forward-Port-Of: odoo/enterprise#7723
…her than withholding tax Forward-Port-Of: odoo/enterprise#6978
Original PR description
…her than withholding tax Forward-Port-Of: odoo/enterprise#6978