Tuesday, July 27, 2021
12 changes · master
Enhancements to existing features
Users can now view and open Odoo tasks related to a Gmail email sender directly from the Gmail plugin. They can also create new tasks from emails, choose or create projects, and benefit from clearer plugin messages and more consistent email content handling in CRM.
Original PR description
Purpose ======= Allow users to connect their tasks to their Gmail mailbox. Specifications ============== Show the tasks related to the current partner (the sender of the opened email) and allow to open them in Odoo. Allow the users to create a task from the current email. He could search the projects in which he want to create the task or even create a new project. Task 2518668 See odoo/mail-client-extensions/pull/12
Sending and printing an invoice now avoids generating the email and PDF content twice. This reduces waiting time for users, cutting the action from over 3 seconds to just over 1 second for a single invoice.
Original PR description
action_invoice_sent() triggers two onchanges which normally don't happen at the same time. Added a check to one of them (onchange_is_email()), so that on action_invoice_sent(), only one of them calls the computationally expensive onchange_template_id_wrapper(), effectively halving the time taken. Time for executing the action for one invoice dropped from over 3 seconds to a bit over 1.
CRM users get clearer and more consistent dialogs when converting leads to opportunities or merging opportunities. The update reduces repeated selections, automatically picks the best destination opportunity and salesperson assignment, and makes the workflow easier to understand.
Original PR description
Adds various improvements : - As both modals (crm_merge_opportunities and crm_lead_to_opportunity) are using quite the same code to merge opportunities, this duplicated code has been put into a…
Adds various improvements : - As both modals (crm_merge_opportunities and crm_lead_to_opportunity) are using quite the same code to merge opportunities, this duplicated code has been put into a single common class that can be inherited by both modals. For Lead to opportunity modal : - The user do not have to re-select the crm.lead currently being converted to opportunity in field 'opportunity_ids'. - Field 'opportunity_ids' and 'Customers' moved below radio button 'Conversion action'. - Validation error message changed into : 'Please select at least one lead or opportunity to merge with.' For merge opportunities modal : - Field 'opportunity_ids' moved below 'Customers' For both modals : - Field Destination opportunity added : This opportunity will be considered as the head opportunity into which the other opportunities will be merged with. - Onchange added on 'opportunities_ids': Everytime a crm.lead is added/removed, the destination opportunity is updated as the one having the highest confidence level (and which has a 'user_id'). - Onchange added on destination opportunity : set the 'user_id' from the destination opportunity. Or the opportunity which has the highest confidence level (and which has a 'user_id'). - Apply usage of crm.common.merge.opportunity. Task : https://www.odoo.com/web?#id=1915325&action=327&model=project.task&view_type=form&menu_id=4720 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Vendor bills and refunds for the same partner can now be selected and paid together in a single net payment. This reduces extra payment entries and makes supplier payment processing simpler and clearer for accounting teams.
Original PR description
Improve usability of payments. Allow selecting multiple Vendor Bills AND Refunds and pay them all together in one single payment. E.g. When running server action “Register Payment” for : - one 100€ Vendor Bill - one 50€ Vendor Bill - one 80€ Refund Previous result = one 150€ outgoing payment + one 80€ incoming payment New result = one 70€ outgoing payment Task: 2475598 Enterprise PR: https://github.com/odoo/enterprise/pull/19902
The Discuss interface now uses a dedicated top bar instead of the previous control panel, making conversations easier to navigate and manage. This improves the user experience across Mail and Live Chat, including related mobile and thread view updates.
Original PR description
Part of task-2369636
The employee presence report now displays action buttons in a clearer two-row layout and fixes an issue that made part of a button unclickable. Users can also undo a manually set presence state, making attendance status management easier and less error-prone.
Original PR description
Previously all buttons would be displayed in a single row, this commit changes it to two rows. Also the bottom half of the button was unclickable due to an invisible div, fixed with css. Another button has been added to undo a manual presence state. Task ID: 2584198
Invoice and bill filters have been reorganized to use clearer, more business-friendly groupings. This makes it easier for users to find the records they need without relying on technical filter names, with a small list view refinement for better usability.
Original PR description
- Group filters into less technical/more functional approach - Small tree view change Task: 2541366
Resolved issues and error corrections
This update prevents errors when message history is moved between different business records and some tracked fields do not exist on the destination record. Sensitive tracked values remain hidden from regular users while still being available to administrators, helping keep record activity reliable and appropriately protected.
Original PR description
Purpose
=======
The method 'message_change_thread' transfers the list of the mail
thread messages from an model to another.
So as the mail.tracking.values. But it a mail.tracking.value is
linked to the field 'phone' for example, that doesn't exist on the
other model, this will crash when trying to compute the fields
groups.
In that case obfuscate the mail.tracking.value with the group_sytem,
so that potential group-protected values ('wage' for example) don't
show up on the chatter, but is still available for the super user.
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-prCode cleanup and technical improvements
The CRM lead conversion and opportunity merge dialogs were simplified internally so they can handle customer and lead information more consistently. This makes the related sales and CRM workflows more reliable and easier to extend, with little direct disruption for users.
Original PR description
rework of : #29464
Email campaigns now show a cleaner preview snippet in external mail clients like Gmail and Outlook. This helps recipients see relevant text before opening the email, improving presentation and reducing confusing preview clutter.
Original PR description
Purpose ======= When we send an email, the mail client (gmail, outlook...) compute a mail preview based on the content. Actually, this preview contains a lot of garbage, and it should contain only relevant text. Technical ========= To build this preview, all mail clients read the content of the email. The only way to be able to customize the preview is to add an invisible HTML element at the beginning of the email with the wanted preview text. We add at the end of the preview `‌` (zero-width non-joiner) to fill the end of the preview in order to not have the beginning of the mail at the end of the preview. It doesn't work with simple space as the mail clients trim each HTML element content. Task-2172125
This fix stops Odoo from automatically adding email recipients as followers when that behavior was explicitly turned off. It reduces unwanted subscriptions and notifications across sales, purchasing, portal sharing, invoicing, and website sales workflows.
Original PR description
**Description of the issue/feature this PR addresses:** In action server write `env['purchase.order'].browse(an id).with_context(mail_post_autofollow=False).message_post(self, partner_id=x,body='hello'):` the partner x is add in follower. @mart-e -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Email and campaign tracking records have been consolidated into one shared notification model. This simplifies how Odoo manages delivery status, bounces, cancellations, and mailing statistics, improving maintainability while keeping campaign reporting aligned.
Original PR description
PURPOSE Merge the model 'mailing.trace' of mass_mailing module with 'mail.notification' of mail module. SPECS [REF] mail: prepare mail notification for merge mailing trace Prepare the mail…
PURPOSE
Merge the model 'mailing.trace' of mass_mailing module with 'mail.notification'
of mail module.
SPECS
[REF] mail: prepare mail notification for merge mailing trace
Prepare the mail notification model to be merge more
easily with the mailing.trace for the mass mailing
application :
- Rename class of 'Notification' into 'MailNotification' (consistency)
- Remove sql contraint to allow notification without partner
- Remove required contraint on the mail_message_id and res_partner_id (more flexible)
- Order fields more logically
- Change "string" value of some fields to be more generic
- Change the rec_name because partner is now not mandatory
- Change the selection of notification_status (bounce -> bounced and ready -> outgoing)
[REF] mail: rename SQL table of mail notification
The "mail_message_res_partner_needaction_rel" SQL table name for the
mail notification was legacy, change it to be the default one for
the model ("mail_notification").
[REF] mass_mailing(_sms): prepare mailing trace to merge with notification
- Change a selection value of 'trace_type' field: 'mail' -> 'email'.
- Change a selection value of 'state' field: 'ignored' -> 'canceled'
- Then, rename 'ignored' field into 'canceled'.
- Rename 'mail_mail_id' field into 'mail_id' to be consistant with
mail.notification (also with mail_mail_id_int).
- Rename 'sms_sms_id' field into 'sms_id' for the same reason
(also for sms_sms_id_int).
- Remove not used windows action : 'action_view_mail_mail_statistics_mailing'
[REF] mass_mailing(_sms): merge mailing trace with notification model
Merge the 'mailing.trace' (mass_mailing) into
the 'mail.notification' model (mail). Now the a mailing trace
is a mail notification with a mass mailing set.
Update the performance test of mass mailing to take in account
few additionnal requests.
LINKS
odoo/enterprise#6939
odoo/upgrade#828
task-2083854