[16.0][MIG] mass_mailing_list_dynamic: Migration to 16.0

pull/1089/head
Minh Chien 2023-03-06 11:07:59 +07:00 committed by Pedro M. Baeza
parent 27045d08f5
commit 5f2bde737e
8 changed files with 62 additions and 25 deletions

View File

@ -14,14 +14,14 @@ Dynamic Mass Mailing Lists
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
:target: https://github.com/OCA/social/tree/14.0/mass_mailing_list_dynamic
:target: https://github.com/OCA/social/tree/16.0/mass_mailing_list_dynamic
:alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/social-14-0/social-14-0-mass_mailing_list_dynamic
:target: https://translation.odoo-community.org/projects/social-16-0/social-16-0-mass_mailing_list_dynamic
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/205/14.0
:alt: Try me on Runbot
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/webui/builds.html?repo=OCA/social&target_branch=16.0
:alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5|
@ -88,7 +88,7 @@ Bug Tracker
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.
If you spotted it first, help us smashing it by providing a detailed and welcomed
`feedback <https://github.com/OCA/social/issues/new?body=module:%20mass_mailing_list_dynamic%0Aversion:%2014.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:%20mass_mailing_list_dynamic%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.
@ -115,6 +115,19 @@ Contributors
* Jared Kipe <jared@hibou.io>
* `Dynapps N.V. <https://www.dynapps.be>`_:
* Xander De Jaegere
* `Trobz <https://trobz.com>`_:
* Nguyễn Minh Chiến <chien@trobz.com>
Other credits
~~~~~~~~~~~~~
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp
Maintainers
~~~~~~~~~~~
@ -128,6 +141,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.
This module is part of the `OCA/social <https://github.com/OCA/social/tree/14.0/mass_mailing_list_dynamic>`_ project on GitHub.
This module is part of the `OCA/social <https://github.com/OCA/social/tree/16.0/mass_mailing_list_dynamic>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@ -5,7 +5,7 @@
{
"name": "Dynamic Mass Mailing Lists",
"summary": "Mass mailing lists that get autopopulated",
"version": "15.0.1.0.0",
"version": "16.0.1.0.0",
"category": "Marketing",
"website": "https://github.com/OCA/social",
"author": "Tecnativa, Odoo Community Association (OCA)",

View File

@ -65,7 +65,7 @@ class MassMailingList(models.Model):
Contact.create(vals_list)
one.is_synced = True
# Invalidate cached contact count
self.invalidate_cache(["contact_count"], dynamic.ids)
dynamic.invalidate_recordset(["contact_count"])
@api.onchange("dynamic", "sync_method", "sync_domain")
def _onchange_dynamic(self):

View File

@ -13,3 +13,7 @@
* `Dynapps N.V. <https://www.dynapps.be>`_:
* Xander De Jaegere
* `Trobz <https://trobz.com>`_:
* Nguyễn Minh Chiến <chien@trobz.com>

View File

@ -0,0 +1 @@
The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp

View File

@ -3,7 +3,7 @@
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="generator" content="Docutils 0.15.1: http://docutils.sourceforge.net/" />
<meta name="generator" content="Docutils: http://docutils.sourceforge.net/" />
<title>Dynamic Mass Mailing Lists</title>
<style type="text/css">
@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/14.0/mass_mailing_list_dynamic"><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-14-0/social-14-0-mass_mailing_list_dynamic"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/205/14.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.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/mass_mailing_list_dynamic"><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-mass_mailing_list_dynamic"><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/webui/builds.html?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>Without this addon you have to choose between providing a dynamic domain and
letting your mass mailings reach all partners that match it.</p>
<p>This addon allows you to create dynamic mailing lists, so you can now benefit
@ -381,7 +381,8 @@ from both things.</p>
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
<li><a class="reference internal" href="#other-credits" id="id7">Other credits</a></li>
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
</ul>
</li>
</ul>
@ -436,7 +437,7 @@ list.</p>
<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.
If you spotted it first, help us smashing it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/social/issues/new?body=module:%20mass_mailing_list_dynamic%0Aversion:%2014.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:%20mass_mailing_list_dynamic%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>
</div>
<div class="section" id="credits">
@ -449,8 +450,9 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
</div>
<div class="section" id="contributors">
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
<ul>
<li><p class="first"><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:</p>
<ul class="simple">
<li><a class="reference external" href="https://www.tecnativa.com">Tecnativa</a>:<ul>
<li>Jairo Llopis</li>
<li>Pedro M. Baeza</li>
<li>David Vidal</li>
@ -458,20 +460,37 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
<li>Víctor Martínez</li>
</ul>
</li>
<li><a class="reference external" href="https://hibou.io">Hibou Corp.</a>:<ul>
<li><p class="first"><a class="reference external" href="https://hibou.io">Hibou Corp.</a>:</p>
<ul class="simple">
<li>Jared Kipe &lt;<a class="reference external" href="mailto:jared&#64;hibou.io">jared&#64;hibou.io</a>&gt;</li>
</ul>
</li>
<li><p class="first"><a class="reference external" href="https://www.dynapps.be">Dynapps N.V.</a>:</p>
<ul class="simple">
<li>Xander De Jaegere</li>
</ul>
</li>
<li><p class="first"><a class="reference external" href="https://trobz.com">Trobz</a>:</p>
<blockquote>
<ul class="simple">
<li>Nguyễn Minh Chiến &lt;<a class="reference external" href="mailto:chien&#64;trobz.com">chien&#64;trobz.com</a>&gt;</li>
</ul>
</blockquote>
</li>
</ul>
</div>
<div class="section" id="other-credits">
<h2><a class="toc-backref" href="#id7">Other credits</a></h2>
<p>The migration of this module from 15.0 to 16.0 was financially supported by Camptocamp</p>
</div>
<div class="section" id="maintainers">
<h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
<h2><a class="toc-backref" href="#id8">Maintainers</a></h2>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/social/tree/14.0/mass_mailing_list_dynamic">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/mass_mailing_list_dynamic">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>
</div>
</div>

View File

@ -2,7 +2,7 @@
# Copyright 2020 Hibou Corp. - Jared Kipe
# Copyright 2021 Tecnativa - Víctor Martínez
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from mock import patch
from unittest.mock import patch
from odoo.exceptions import ValidationError
from odoo.tests import common, tagged
@ -51,12 +51,12 @@ class DynamicListCase(common.TransactionCase):
contact0 = Contact.create(
{"list_ids": [(4, self.list.id)], "partner_id": self.partners[0].id}
)
self.list.flush()
self.list.flush_recordset()
self.assertEqual(self.list.contact_count, 1)
# Set list as add-synced
self.list.dynamic = True
self.list.action_sync()
self.list.flush()
self.list.flush_recordset()
self.assertEqual(self.list.contact_count, 4)
self.assertTrue(contact0.exists())
# Set list as full-synced
@ -68,7 +68,7 @@ class DynamicListCase(common.TransactionCase):
]
).unlink()
self.list.action_sync()
self.list.flush()
self.list.flush_recordset()
self.assertEqual(self.list.contact_count, 3)
self.assertFalse(contact0.exists())
# Cannot add or edit contacts in fully synced lists
@ -93,7 +93,7 @@ class DynamicListCase(common.TransactionCase):
def test_sync_when_sending_mail(self):
"""Check that list in synced when sending a mass mailing."""
self.list.action_sync()
self.list.flush()
self.list.flush_recordset()
self.assertEqual(self.list.contact_count, 5)
# Create a new partner
self.partners.create(
@ -107,7 +107,7 @@ class DynamicListCase(common.TransactionCase):
with patch("odoo.addons.mail.models.mail_mail.MailMail.send") as s:
self.mail.action_send_mail()
self.assertEqual(1, s.call_count)
self.list.flush()
self.list.flush_recordset()
self.assertEqual(6, self.list.contact_count)
def test_load_filter(self):

View File

@ -35,7 +35,7 @@
/>
</div>
</group>
<group attrs="{'invisible': [('dynamic', '=', False)]}">
<div attrs="{'invisible': [('dynamic', '=', False)]}">
<div class="alert alert-info" role="alert">
<i
class="fa fa-info-circle"
@ -47,7 +47,7 @@
class="fa fa-info-circle"
/> You cannot make manual editions of contacts in fully synchronized lists.
</div>
</group>
</div>
<group colspan="4" attrs="{'invisible': [('dynamic', '=', False)]}">
<field
name="sync_domain"