[MIG] mail_composer_cc_bcc: Migrate to version 16.0

pull/1224/head
sonhd91 2023-09-24 21:54:01 +07:00
parent 06f668ad6c
commit 438c025c7e
11 changed files with 105 additions and 66 deletions

View File

@ -7,7 +7,7 @@ Email CC and BCC
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:6fa9b387cfbaefaeb1ce535a6ac50d81397cc2891238490fd1426918260940d1 !! source digest: sha256:5db429b9ae0f739ec6b4aa02e8b8e717c47c128c2643f218d54f7a3e1b0a673e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png
@ -17,13 +17,13 @@ Email CC and BCC
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
:target: https://github.com/OCA/social/tree/15.0/mail_composer_cc_bcc :target: https://github.com/OCA/social/tree/16.0/mail_composer_cc_bcc
:alt: OCA/social :alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_composer_cc_bcc :target: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_composer_cc_bcc
:alt: Translate me on Weblate :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=15.0 :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=16.0
:alt: Try me on Runboat :alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@ -61,11 +61,11 @@ Configuration
In company form there are two fields to set default cc and bcc In company form there are two fields to set default cc and bcc
partners. partners.
.. image:: https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png .. image:: https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png
In template form there are two fields to set cc and bcc emails. In template form there are two fields to set cc and bcc emails.
.. image:: https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png .. image:: https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png
Usage Usage
===== =====
@ -73,13 +73,18 @@ Usage
The partners cc and bcc from company form will be used to fill in mail composer The partners cc and bcc from company form will be used to fill in mail composer
form. form.
.. image:: https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png .. image:: https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png
When select a template that has cc and/or bcc emails, the emails will be used When select a template that has cc and/or bcc emails, the emails will be used
to lookup partners then found partners will be added to corresponding mail to lookup partners then found partners will be added to corresponding mail
composer's fields. composer's fields.
.. image:: https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png .. image:: https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png
Known issues / Roadmap
======================
* Extract `account` customization (`account.invoice.send` wizard) to a specific module `mail_composer_cc_bcc_account`
Bug Tracker Bug Tracker
=========== ===========
@ -87,7 +92,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/social/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/social/issues>`_.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/social/issues/new?body=module:%20mail_composer_cc_bcc%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/social/issues/new?body=module:%20mail_composer_cc_bcc%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@ -105,11 +110,12 @@ Contributors
* `Trobz <https://www.trobz.com>`_: * `Trobz <https://www.trobz.com>`_:
* Hai N. Le <hailn@trobz.com> * Hai N. Le <hailn@trobz.com>
* Son Ho <sonhd@trobz.com>
Other credits Other credits
~~~~~~~~~~~~~ ~~~~~~~~~~~~~
The creation of this module was financially supported by Camptocamp. The creation and migration from 15.0 to 16.0 of this module were financially supported by Camptocamp.
Maintainers Maintainers
~~~~~~~~~~~ ~~~~~~~~~~~
@ -132,6 +138,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-hailangvn2023| |maintainer-hailangvn2023|
This module is part of the `OCA/social <https://github.com/OCA/social/tree/15.0/mail_composer_cc_bcc>`_ project on GitHub. This module is part of the `OCA/social <https://github.com/OCA/social/tree/16.0/mail_composer_cc_bcc>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -3,7 +3,7 @@
{ {
"name": "Email CC and BCC", "name": "Email CC and BCC",
"summary": "This module enables sending mail to CC and BCC partners in mail composer form.", "summary": "This module enables sending mail to CC and BCC partners in mail composer form.",
"version": "15.0.1.0.0", "version": "16.0.1.0.0",
"development_status": "Alpha", "development_status": "Alpha",
"category": "Social", "category": "Social",
"website": "https://github.com/OCA/social", "website": "https://github.com/OCA/social",
@ -25,6 +25,4 @@
"wizards/account_invoice_send_views.xml", "wizards/account_invoice_send_views.xml",
"wizards/mail_compose_message_view.xml", "wizards/mail_compose_message_view.xml",
], ],
"demo": [],
"qweb": [],
} }

View File

@ -1,3 +1,6 @@
# Copyright 2023 Camptocamp SA
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
import ast import ast
import base64 import base64
import logging import logging
@ -121,9 +124,8 @@ class MailMail(models.Model):
) )
# `test_mail_bounce_during_send`, force immediate update to obtain the lock. # `test_mail_bounce_during_send`, force immediate update to obtain the lock.
# see rev. 56596e5240ef920df14d99087451ce6f06ac6d36 # see rev. 56596e5240ef920df14d99087451ce6f06ac6d36
notifs.flush( notifs.flush_recordset(
fnames=["notification_status", "failure_type", "failure_reason"], ["notification_status", "failure_type", "failure_reason"]
records=notifs,
) )
# protect against ill-formatted email_from when formataddr was used on an already formatted email # noqa: B950 # protect against ill-formatted email_from when formataddr was used on an already formatted email # noqa: B950

View File

@ -20,30 +20,32 @@ class MailThread(models.AbstractModel):
res.recipient_bcc_ids = partners_bcc res.recipient_bcc_ids = partners_bcc
return res return res
def _notify_by_email_add_values(self, base_mail_values): def _notify_by_email_get_base_mail_values(self, message, additional_values=None):
""" """
This is to add cc, bcc addresses to mail.mail objects so that email This is to add cc, bcc addresses to mail.mail objects so that email
can be sent to those addresses. can be sent to those addresses.
""" """
context = self.env.context context = self.env.context
res = super()._notify_by_email_get_base_mail_values(
message, additional_values=additional_values
)
partners_cc = context.get("partner_cc_ids", None) partners_cc = context.get("partner_cc_ids", None)
if partners_cc: if partners_cc:
base_mail_values["email_cc"] = format_emails(partners_cc) res["email_cc"] = format_emails(partners_cc)
partners_bcc = context.get("partner_bcc_ids", None) partners_bcc = context.get("partner_bcc_ids", None)
if partners_bcc: if partners_bcc:
base_mail_values["email_bcc"] = format_emails(partners_bcc) res["email_bcc"] = format_emails(partners_bcc)
res = super()._notify_by_email_add_values(base_mail_values)
return res return res
def _notify_compute_recipients(self, message, msg_vals): def _notify_get_recipients(self, message, msg_vals, **kwargs):
""" """
This is to add cc, bcc recipients so that they can be grouped with This is to add cc, bcc recipients so that they can be grouped with
other recipients. other recipients.
""" """
ResPartner = self.env["res.partner"] ResPartner = self.env["res.partner"]
MailFollowers = self.env["mail.followers"] MailFollowers = self.env["mail.followers"]
rdata = super()._notify_compute_recipients(message, msg_vals) rdata = super()._notify_get_recipients(message, msg_vals, **kwargs)
context = self.env.context context = self.env.context
is_from_composer = context.get("is_from_composer", False) is_from_composer = context.get("is_from_composer", False)
if not is_from_composer: if not is_from_composer:
@ -60,28 +62,35 @@ class MailThread(models.AbstractModel):
recipients_cc_bcc = MailFollowers._get_recipient_data( recipients_cc_bcc = MailFollowers._get_recipient_data(
None, message_type, subtype_id, partners_cc_bcc.ids None, message_type, subtype_id, partners_cc_bcc.ids
) )
for pid, active, pshare, notif, groups in recipients_cc_bcc: for _, value in recipients_cc_bcc.items():
if not pid: for _, data in value.items():
if not data.get("id"):
continue continue
if not notif: # notif is False, has no user, is therefore customer if not data.get(
"notif"
): # notif is False, has no user, is therefore customer
notif = "email" notif = "email"
msg_type = "customer" msg_type = "customer"
pdata = { pdata = {
"id": pid, "id": data.get("id"),
"active": active, "active": data.get("active"),
"share": pshare, "share": data.get("share"),
"groups": groups or [], "notif": data.get("notif") and data.get("notif") or notif,
"notif": notif,
"type": msg_type, "type": msg_type,
"is_follower": data.get("is_follower"),
} }
rdata.append(pdata) rdata.append(pdata)
return rdata return rdata
def _notify_email_recipient_values(self, recipient_ids): def _notify_by_email_get_final_mail_values(
self, recipient_ids, base_mail_values, additional_values=None
):
""" """
This is to add cc, bcc recipients' ids to recipient_ids of mail.mail This is to add cc, bcc recipients' ids to recipient_ids of mail.mail
""" """
res = super()._notify_email_recipient_values(recipient_ids) res = super()._notify_by_email_get_final_mail_values(
recipient_ids, base_mail_values, additional_values=additional_values
)
context = self.env.context context = self.env.context
r_ids = list(recipient_ids) r_ids = list(recipient_ids)
partners_cc = context.get("partner_cc_ids", None) partners_cc = context.get("partner_cc_ids", None)
@ -94,8 +103,10 @@ class MailThread(models.AbstractModel):
res["recipient_ids"] = tuple(set(r_ids)) res["recipient_ids"] = tuple(set(r_ids))
return res return res
def _notify_classify_recipients(self, recipient_data, model_name, msg_vals=None): def _notify_get_recipients_classify(
res = super()._notify_classify_recipients( self, recipient_data, model_name, msg_vals=None
):
res = super()._notify_get_recipients_classify(
recipient_data, model_name, msg_vals=msg_vals recipient_data, model_name, msg_vals=msg_vals
) )
is_from_composer = self.env.context.get("is_from_composer", False) is_from_composer = self.env.context.get("is_from_composer", False)

View File

@ -1,3 +1,4 @@
* `Trobz <https://www.trobz.com>`_: * `Trobz <https://www.trobz.com>`_:
* Hai N. Le <hailn@trobz.com> * Hai N. Le <hailn@trobz.com>
* Son Ho <sonhd@trobz.com>

View File

@ -1 +1 @@
The creation of this module was financially supported by Camptocamp. The creation and migration from 15.0 to 16.0 of this module were financially supported by Camptocamp.

View File

@ -0,0 +1 @@
* Extract `account` customization (`account.invoice.send` wizard) to a specific module `mail_composer_cc_bcc_account`

View File

@ -3,18 +3,18 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils: https://docutils.sourceforge.io/" /> <meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
<title>Email CC and BCC</title> <title>Email CC and BCC</title>
<style type="text/css"> <style type="text/css">
/* /*
:Author: David Goodger (goodger@python.org) :Author: David Goodger (goodger@python.org)
:Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $ :Id: $Id: html4css1.css 7952 2016-07-26 18:15:59Z milde $
:Copyright: This stylesheet has been placed in the public domain. :Copyright: This stylesheet has been placed in the public domain.
Default cascading style sheet for the HTML output of Docutils. Default cascading style sheet for the HTML output of Docutils.
See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
customize this style sheet. customize this style sheet.
*/ */
@ -367,9 +367,9 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:6fa9b387cfbaefaeb1ce535a6ac50d81397cc2891238490fd1426918260940d1 !! source digest: sha256:5db429b9ae0f739ec6b4aa02e8b8e717c47c128c2643f218d54f7a3e1b0a673e
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/social/tree/15.0/mail_composer_cc_bcc"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_composer_cc_bcc"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/social&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Alpha" src="https://img.shields.io/badge/maturity-Alpha-red.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/social/tree/16.0/mail_composer_cc_bcc"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/social-16-0/social-16-0-mail_composer_cc_bcc"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runboat.odoo-community.org/builds?repo=OCA/social&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Odoo native does not support defining a Cc field in the Mail Composer <p>Odoo native does not support defining a Cc field in the Mail Composer
by default; instead, it only has a unique Recipients fields, which is by default; instead, it only has a unique Recipients fields, which is
confusing for a lot of end users.</p> confusing for a lot of end users.</p>
@ -394,48 +394,55 @@ Only for development or testing purpose, do not use in production.
<p><strong>Table of contents</strong></p> <p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents"> <div class="contents local topic" id="contents">
<ul class="simple"> <ul class="simple">
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li> <li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li> <li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-3">Bug Tracker</a></li> <li><a class="reference internal" href="#known-issues-roadmap" id="id3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#credits" id="toc-entry-4">Credits</a></li> <li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id5">Credits</a></li>
</ul> </ul>
</div> </div>
<div class="section" id="configuration"> <div class="section" id="configuration">
<h2><a class="toc-backref" href="#toc-entry-1">Configuration</a></h2> <h2><a class="toc-backref" href="#id1">Configuration</a></h2>
<p>In company form there are two fields to set default cc and bcc <p>In company form there are two fields to set default cc and bcc
partners.</p> partners.</p>
<blockquote> <blockquote>
<img alt="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png" /> <img alt="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/res_company_form_default_cc_bcc.png" />
</blockquote> </blockquote>
<p>In template form there are two fields to set cc and bcc emails.</p> <p>In template form there are two fields to set cc and bcc emails.</p>
<blockquote> <blockquote>
<img alt="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png" /> <img alt="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/email_template_form_cc_bcc.png" />
</blockquote> </blockquote>
</div> </div>
<div class="section" id="usage"> <div class="section" id="usage">
<h2><a class="toc-backref" href="#toc-entry-2">Usage</a></h2> <h2><a class="toc-backref" href="#id2">Usage</a></h2>
<p>The partners cc and bcc from company form will be used to fill in mail composer <p>The partners cc and bcc from company form will be used to fill in mail composer
form.</p> form.</p>
<blockquote> <blockquote>
<img alt="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png" /> <img alt="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_default_cc_bcc.png" />
</blockquote> </blockquote>
<p>When select a template that has cc and/or bcc emails, the emails will be used <p>When select a template that has cc and/or bcc emails, the emails will be used
to lookup partners then found partners will be added to corresponding mail to lookup partners then found partners will be added to corresponding mail
composers fields.</p> composers fields.</p>
<blockquote> <blockquote>
<img alt="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/15.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png" /> <img alt="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png" src="https://raw.githubusercontent.com/OCA/social/16.0/mail_composer_cc_bcc/static/img/mail_compose_message_template_cc_bcc.png" />
</blockquote> </blockquote>
</div> </div>
<div class="section" id="known-issues-roadmap">
<h2><a class="toc-backref" href="#id3">Known issues / Roadmap</a></h2>
<ul class="simple">
<li>Extract <cite>account</cite> customization (<cite>account.invoice.send</cite> wizard) to a specific module <cite>mail_composer_cc_bcc_account</cite></li>
</ul>
</div>
<div class="section" id="bug-tracker"> <div class="section" id="bug-tracker">
<h2><a class="toc-backref" href="#toc-entry-3">Bug Tracker</a></h2> <h2><a class="toc-backref" href="#id4">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/social/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/social/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/social/issues/new?body=module:%20mail_composer_cc_bcc%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/social/issues/new?body=module:%20mail_composer_cc_bcc%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
<h2><a class="toc-backref" href="#toc-entry-4">Credits</a></h2> <h2><a class="toc-backref" href="#id5">Credits</a></h2>
</div> </div>
</div> </div>
<div class="section" id="authors"> <div class="section" id="authors">
@ -451,6 +458,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
<blockquote> <blockquote>
<ul class="simple"> <ul class="simple">
<li>Hai N. Le &lt;<a class="reference external" href="mailto:hailn&#64;trobz.com">hailn&#64;trobz.com</a>&gt;</li> <li>Hai N. Le &lt;<a class="reference external" href="mailto:hailn&#64;trobz.com">hailn&#64;trobz.com</a>&gt;</li>
<li>Son Ho &lt;<a class="reference external" href="mailto:sonhd&#64;trobz.com">sonhd&#64;trobz.com</a>&gt;</li>
</ul> </ul>
</blockquote> </blockquote>
</li> </li>
@ -458,7 +466,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
</div> </div>
<div class="section" id="other-credits"> <div class="section" id="other-credits">
<h1>Other credits</h1> <h1>Other credits</h1>
<p>The creation of this module was financially supported by Camptocamp.</p> <p>The creation and migration from 15.0 to 16.0 of this module were financially supported by Camptocamp.</p>
</div> </div>
<div class="section" id="maintainers"> <div class="section" id="maintainers">
<h1>Maintainers</h1> <h1>Maintainers</h1>
@ -468,8 +476,8 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
mission is to support the collaborative development of Odoo features and mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p> <p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/hailangvn2023"><img alt="hailangvn2023" src="https://github.com/hailangvn2023.png?size=40px" /></a></p> <p><a class="reference external" href="https://github.com/hailangvn2023"><img alt="hailangvn2023" src="https://github.com/hailangvn2023.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/social/tree/15.0/mail_composer_cc_bcc">OCA/social</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/social/tree/16.0/mail_composer_cc_bcc">OCA/social</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@ -10,7 +10,9 @@ from odoo.tests import Form
from odoo.addons.mail.models.mail_mail import MailMail as upstream from odoo.addons.mail.models.mail_mail import MailMail as upstream
from odoo.addons.mail.tests.test_mail_composer import TestMailComposer from odoo.addons.mail.tests.test_mail_composer import TestMailComposer
VALID_HASHES = ["5f8b9bd28ccfe4f4ef1702002b2ab3fc", "0e47779dfd6e70de1cc1457792c68c0f"] VALID_HASHES = [
"d52cb36b88b33abc9556f7be6718d93f",
]
class TestMailCcBcc(TestMailComposer): class TestMailCcBcc(TestMailComposer):
@ -31,6 +33,8 @@ class TestMailCcBcc(TestMailComposer):
"default_partner_ids": test_record.ids, "default_partner_ids": test_record.ids,
"default_model": test_record._name, "default_model": test_record._name,
"default_res_id": test_record.id, "default_res_id": test_record.id,
# to ensure consistent test results even when mail_post_defer is installed
"mail_notify_force_send": True,
} }
form = Form(self.env["mail.compose.message"].with_context(**ctx)) form = Form(self.env["mail.compose.message"].with_context(**ctx))
form.body = "<p>Hello</p>" form.body = "<p>Hello</p>"
@ -44,6 +48,7 @@ class TestMailCcBcc(TestMailComposer):
"active_ids": test_record.ids, "active_ids": test_record.ids,
"default_model": "account.move", "default_model": "account.move",
"default_res_id": test_record.id, "default_res_id": test_record.id,
"mail_notify_force_send": True,
} }
form = Form(self.env["account.invoice.send"].with_context(**ctx)) form = Form(self.env["account.invoice.send"].with_context(**ctx))
form.body = "<p>Hello</p>" form.body = "<p>Hello</p>"

View File

@ -0,0 +1 @@
../../../../mail_composer_cc_bcc

View File

@ -0,0 +1,6 @@
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)