Friday, August 13, 2021
25 changes · master
New functionality added to Odoo
Products can now be enriched with images in batches by using their barcodes, making product records easier to recognize visually. This helps teams save time when maintaining catalogs and improves day-to-day product identification.
Original PR description
Users will now have a quick way to add images on their products in batches, allowing fast visual identification of them. task-2518519 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Enhancements to existing features
The mailing list contact form is clearer and easier to use. Users can now choose tag colors directly, while bounce counts and creation dates are handled more cleanly when creating new contacts.
Original PR description
This PR will improve the form view of 'Mailing List Contacts'. It will:
- Add a color picker on the tag ('tag_ids').
- Make the bouncing counter ('message_bounce') unmodifiable.
- Make the creation date ('create_date') and the bouncing counter ('message_bounce') invisible when the user creates a new record.
task-2611112
--
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prResolved issues and error corrections
This fixes test behavior so searches correctly follow the active record filter setting. It helps ensure the web interface handles archived and active records consistently during automated checks, reducing the risk of incorrect search behavior reaching users.
Original PR description
The support for "active_test" context key was ignored in "search" and "search_read" methods. See https://github.com/odoo/odoo/commit/bf0e3403098a9a36cb7c818388ccca1ea87682bd -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
before this commit, Clicking on the 'Save & new' button shows the old value in the tag name input field instead of the blank value. after this commit, Clicking on the 'Save & new' button will show the blank value in the tag name input field. TaskID-2323194 Forward-Port-Of: odoo/odoo#74992 Forward-Port-Of: odoo/odoo#68233
Original PR description
before this commit, Clicking on the 'Save & new' button shows the old value in the tag name input field instead of the blank value. after this commit, Clicking on the 'Save & new' button will show the blank value in the tag name input field. TaskID-2323194 Forward-Port-Of: odoo/odoo#74992 Forward-Port-Of: odoo/odoo#68233
The Email Marketing form now gives the email editor more room by removing nested panels and moving the discussion area into its own tab. Long emails are easier to edit because extra scrollbars were removed and the sidebar stays visible while scrolling.
Original PR description
RATIONALE Currently, editing a mail feels a little claustrophobic because of the boxes within boxes within boxes design. Purpose of this task is to improve layout of mailing form view when being in…
RATIONALE Currently, editing a mail feels a little claustrophobic because of the boxes within boxes within boxes design. Purpose of this task is to improve layout of mailing form view when being in Email Marketing, notably displaying editor in full width. SPECIFICATIONS In this task we remove the chatter and the sheet from the form view so that the mail editor takes up more horizontal space. The chatter is then moved into one of the notebook's tabs. Mass mailing form view currently has a scrollbar for the contents of the editor: one for the form view itself and one for the sidebar. In consequence we sometimes end up with three scrollbars side by side, which is ugly and confusing. In this task we ensure the height of the iframe is always the same as its contents so there is no need for a scrollbar. Note that SMS Marketing is untouched as it keeps the old layout. Indeed there is no need of such changes as it does not use the HTML editor. Actions that are generic (systray, list view, ...) also use the old display.. LINKS Task-2545445
Event website pages now hide related 'other' sections when there is only one track, room, or exhibitor to show. This keeps smaller events such as online concerts or single-session conferences looking cleaner and avoids displaying unnecessary empty-looking sections.
Original PR description
…n there is a single item This commit hides "other" tracks/rooms and exhibitor sections if there is only a single record for these. Purpose is: Allow users to handle events that do not have a ton of things happening at the same time without showing empty sections. Example: I use Odoo events to broadcast my concert/zoom conference/... online and want my website to look neat. Task-2531084 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Settings screen now shows a more helpful empty-state message when a search returns no results. Instead of a plain “No record found” notice, users see clearer guidance to try another keyword, making the experience more polished and easier to understand.
Original PR description
PURPOSE Currently, empty screen of the settings is not very sexy without helper and decoration. it return only `no record found` message when the search for a setting does not return anything. SPECIFICATION after this PR replace the `No record found` message by an actual content helper with title `No setting found` and description `Try searching for another keyword`. TaskID: 2588387 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update strengthens test coverage for the web search matching behavior, helping ensure users get consistent search results in the interface. It is a low-risk internal improvement that supports ongoing quality and reliability.
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
Odoo now supports certificate-based email server authentication and reduces sender spoofing when sending messages. This helps improve email deliverability, lowers the chance of messages being marked as spam, and gives administrators safer options for configuring mail relays such as Office 365.
Original PR description
Purpose ======= The global purpose of this PR is to improve the score of the emails sent by Odoo as well as allowing to authenticate the Odoo server with SSL certificate. SSL authentication…
Purpose
=======
The global purpose of this PR is to improve the score of the emails sent by
Odoo as well as allowing to authenticate the Odoo server with SSL certificate.
SSL authentication
==================
We want to be able to authenticate our servers with a certificate for the
entire domain name instead of using an username and a password. That way
we will be able to configure an SMTP relay (on Office 365 e.g.) based on an
SSL certificate instead of an hard-coded IP address.
The host name of the server is defined in the MX DNS record on your domain.
The certificate must be valid for your domain name.
e.g.
> Host: openerp-org.mail.protection.outlook.com
Port: 25
Username: \<keep it blank>
Password: \<keep it blank>
Security: STARTTLS
Email: admin@odoobe.com
No spoofing
===========
Before, we were spoofing the FROM headers all the times. E.g., if someone has
an email address outside of the current email server (e.g. `test@gmail.com`)
we sent it using the default mail server and we spoofed the FROM. This causes
some issues, because emails may be marked as spam by the email clients. A
small fix for stable was merged at odoo/odoo#69218 and will be reverted as this merge
improves that behavior.
Now, we try to *not* spoof the mail from in the SMTP protocol. For that purpose
we define a default email address which is used when no mail server is
available for the sender email address. In that case, the email address
of the sender will be "encapsulated" in the default email address
(e.g. `"Admin (admin@gmail.com)" <notifications@odoo.com>`).
To know for which email address an outgoing mail server can be used, we use a
field "`from_filter`" which can be either an complete email address or a
domain name.
The headers are changed following this heuristic
1. We first look for a mail server which match the entire mail FROM
in that case, we do not change the email header (not needed)
2. If not found, we search a mail server which match the domain name of
the mail from (do not need to change the headers in that case)
3. If not found, find the mail server linked to the "notifications"
email (defined in the system parameter). Then change the FROM header
to the notifications email, and put the old one in the name part of
this header.
e.g.
Initial mail from: "Admin" < admin@example.com >
Final mail from: "Admin (admin@odoo.com)" < notifications@odoo.com >
4. If no notifications email is configured or if no mail server are
found for the notifications email, fallback to the old system and
spoof the FROM header. In that case we do not have the choice if we
want to send the email, he will probably be marked as spam.
LINKS
Task-2367946CRM now uses probability as an additional factor when choosing the most confident lead or opportunity during merges. This helps sales teams keep the opportunity that is more likely to close when duplicate records are combined.
Original PR description
Purpose Improve the Confidence level sorting for lead/opportunities Specifications 1) Confidence level (from feedback 2176733) Current : When merging opportunities. They are sorted by "confidence level", which is basically * opp > lead * stage sequence higher is better * older ID is better* To Be => Include the probability as the third criterion taken into account. The higher the probability, the better. LINKS PR: #51893 Task-id: 2198562
Odoo now turns multi-currency access on automatically when more than one currency is active, and turns it off when only one currency remains active. This reduces manual configuration for businesses using multiple currencies and updates currency display data such as symbols and symbol placement.
Original PR description
[IMP] base, account: simplify multi currency setup Automatically activate `group_multi_currency` if there is more than one active currency, deactivate it if there is only one active currency This mean the group_multi_currency field is hidden on the `res.config.settings` view Task 2610735 [IMP] base: improve currency data Improve currency symbols and their positions Task 2610735
Accounting and invoice extraction tests were adjusted to match the system's automatic activation of multi-currency support. This keeps reporting and invoice processing checks aligned with current behavior, while removing a duplicate eBay sales configuration action.
Original PR description
Since group_multi_currency is automatically activated in odoo/odoo#74396 Removed duplicated action `action_currency_all_form` and adapt sale_ebay Task 2610735
Error handling now checks for available handlers at the moment an error occurs, rather than only when the service starts. This helps ensure newly registered handlers are found and used, reducing the chance that errors are missed or handled incorrectly.
Original PR description
Before this commit, error handlers were listed at the start of the service and some handlers couldn't be found if they are not in the registry when the service is started. Now, they are listed when errors are handled.
This fixes the visual layout of the Documents Spreadsheet top bar so it looks cleaner and more consistent. The change helps users work with spreadsheets in Documents with a more polished and reliable interface.
Forward-Port-Of: odoo/odoo#74979
Original PR description
Forward-Port-Of: odoo/odoo#74979
Step to follow Create a sale order for a kit with a quantity of one and Dozens as a unit of measure Confirm and validate the delivery The delivered quantity will be 12 instead of 1 Cause of the issue The delivered quantity wasn't recomputed in relation to the sales order quantity opw-2535193 Forward-Port-Of: odoo/odoo#74918
Original PR description
Step to follow Create a sale order for a kit with a quantity of one and Dozens as a unit of measure Confirm and validate the delivery The delivered quantity will be 12 instead of 1 Cause of the issue The delivered quantity wasn't recomputed in relation to the sales order quantity opw-2535193 Forward-Port-Of: odoo/odoo#74918
Steps to reproduce the bug: When making a payment intent from Adyen terminal with the POS, the payment intent was validated by Adyen but Odoo stopped polling because a connection failure happened and then on retry it made second payment even if the first one was successful. Fix: Now after a failure, it will try to poll again the last transaction (with get_latest_adyen_status) and set the payment as successful or cancelled based on the last response. opw:2587625 Co-authored-by:
Original PR description
Steps to reproduce the bug: When making a payment intent from Adyen terminal with the POS, the payment intent was validated by Adyen but Odoo stopped polling because a connection failure happened and then on retry it made second payment even if the first one was successful. Fix: Now after a failure, it will try to poll again the last transaction (with get_latest_adyen_status) and set the payment as successful or cancelled based on the last response. opw:2587625 Co-authored-by: nle-odoo <nle@odoo.com> Forward-Port-Of: odoo/odoo#74972
Old shortcut (ctrl+K) was conflicting with the new command palette feature, so we change it to CTRL+M. task-2593213 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#74940
Original PR description
Old shortcut (ctrl+K) was conflicting with the new command palette feature, so we change it to CTRL+M. task-2593213 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#74940
In subcontracting, there wasn't a way to make the subcontracting resupply delivery plan before the subcontracting receipt. Now the hidden subcontracted MO, take in account (in his planning) the `produce_delay` (in days) of the product which is automatically plan the subcontracting resupply delivery correctly. task-2486811 Forward-Port-Of: odoo/odoo#74999
Original PR description
In subcontracting, there wasn't a way to make the subcontracting resupply delivery plan before the subcontracting receipt. Now the hidden subcontracted MO, take in account (in his planning) the `produce_delay` (in days) of the product which is automatically plan the subcontracting resupply delivery correctly. task-2486811 Forward-Port-Of: odoo/odoo#74999
Steps to reproduce: Step 1: make a MO and create less than the quantity to produce Step 2: Mark As Done (with no backorder) Step 3: duplicate the MO and try to change the quantity to produce Expected result: qty to produce changes as expected Actual result: server error Issue is due to the copied MO's `move_finished_ids` including a copy of the cancelled finished move (i.e. the qty not backordered) so there were 2 `move_finished_ids` for the product to produce. This resulted in an a
Original PR description
Steps to reproduce: Step 1: make a MO and create less than the quantity to produce Step 2: Mark As Done (with no backorder) Step 3: duplicate the MO and try to change the quantity to produce Expected result: qty to produce changes as expected Actual result: server error Issue is due to the copied MO's `move_finished_ids` including a copy of the cancelled finished move (i.e. the qty not backordered) so there were 2 `move_finished_ids` for the product to produce. This resulted in an access error since the onchange to update the `move_finished_ids` only expects 1 move for the product to produce and results in a singleton error. Issue 2 of Task: 2618962 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#75001 Forward-Port-Of: odoo/odoo#74864
reserved_availability is expressed in move uom forecast_availability must be in product base uom 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#75021 Forward-Port-Of: odoo/odoo#74961
Original PR description
reserved_availability is expressed in move uom forecast_availability must be in product base uom 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#75021 Forward-Port-Of: odoo/odoo#74961
Steps to reproduce the bug: - Create a storable product, e.g:”Product A”, with a AVCO + Automated category - Make sure to assign an account in the price difference account field - Create an RFQ with the “Product A” - Confirm RFQ and receive the product - Create the vendor bill and edit to change the unit cost from 55 to 56 - Post the bill - Check journal items Problem: Price difference accounts have no partner_id  opw-2616388 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#75038
Purpose ======= Allow users to enrich and update existing Odoo company from the Gmail plugin so they can have more information on their contact. Add translations for the new strings in the plugin. If the partner was removed after the user open the email on the Gmail side, return a clean error message instead of raising a traceback. Links ===== Task-2567566 See /pull/73762 See odoo/mail-client-extensions/pull/15 Forward-Port-Of: odoo/odoo#73762
Original PR description
Purpose ======= Allow users to enrich and update existing Odoo company from the Gmail plugin so they can have more information on their contact. Add translations for the new strings in the plugin. If the partner was removed after the user open the email on the Gmail side, return a clean error message instead of raising a traceback. Links ===== Task-2567566 See /pull/73762 See odoo/mail-client-extensions/pull/15 Forward-Port-Of: odoo/odoo#73762
Fix traceback introduced by: https://github.com/odoo/enterprise/commit/07b79fb852cd6b63e4f936b9c7853c22ed849bab opw-2618520 Forward-Port-Of: odoo/enterprise#20222 Forward-Port-Of: odoo/enterprise#20166
Original PR description
Fix traceback introduced by: https://github.com/odoo/enterprise/commit/07b79fb852cd6b63e4f936b9c7853c22ed849bab opw-2618520 Forward-Port-Of: odoo/enterprise#20222 Forward-Port-Of: odoo/enterprise#20166
- Create a price included [TAX], i.e. 10% - Create a subscription product with [TAX] and a price 500 - Create a new subscription of this product - Change the quantity of the subscription product to 6 Save, confirm and generate invoice The recurring price is off by a small amount with respect to the invoice price. Recurring price should be $2727.27 but is displaying $2727.30 When generating an invoice, the price shows correctly as $2727.27 opw-2600171 Forward-Port-Of: odoo/enterprise
Original PR description
- Create a price included [TAX], i.e. 10% - Create a subscription product with [TAX] and a price 500 - Create a new subscription of this product - Change the quantity of the subscription product to 6 Save, confirm and generate invoice The recurring price is off by a small amount with respect to the invoice price. Recurring price should be $2727.27 but is displaying $2727.30 When generating an invoice, the price shows correctly as $2727.27 opw-2600171 Forward-Port-Of: odoo/enterprise#20054