Migration of mail_optional_follower_notification to 10.0

pull/476/head
Adrien Peiffer (ACSONE) 2016-10-24 11:46:07 +02:00 committed by Laurent Mignon (ACSONE)
parent 51b54e734b
commit 9498134a14
7 changed files with 30 additions and 16 deletions

View File

@ -25,7 +25,7 @@ This field it's initialized to true to keep the standard behavior.
.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas .. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot :alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/205/9.0 :target: https://runbot.odoo-community.org/runbot/205/10.0
* https://www.odoo.com/forum/help-1 * https://www.odoo.com/forum/help-1
@ -35,8 +35,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 smashing it by providing a detailed and welcomed feedback If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
`here <https://github.com/OCA/social/issues/new?body=module:%20mail_optional_follower_notification%0Aversion:%208.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Credits Credits
======= =======

View File

@ -2,7 +2,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api from odoo import models, api
class MailMessage(models.Model): class MailMessage(models.Model):
@ -17,3 +17,15 @@ class MailMessage(models.Model):
force_partners_to_notify = [d['id'] for d in partner_list] force_partners_to_notify = [d['id'] for d in partner_list]
ctx['force_partners_to_notify'] = force_partners_to_notify ctx['force_partners_to_notify'] = force_partners_to_notify
return super(MailMessage, self.with_context(ctx)).create(values) return super(MailMessage, self.with_context(ctx)).create(values)
@api.multi
def _notify(self, force_send=False, send_after_commit=True,
user_signature=True):
res = super(MailMessage, self)._notify(
force_send=force_send, send_after_commit=send_after_commit,
user_signature=user_signature)
if not self.env.context.get('notify_followers'):
# Needaction only for recipients
self.needaction_partner_ids = [(6, 0, self.partner_ids.ids)]
return res

View File

@ -2,17 +2,19 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api from odoo import models, api
class ResPartner(models.Model): class ResPartner(models.Model):
_inherit = 'res.partner' _inherit = 'res.partner'
@api.multi @api.multi
def _notify(self, message, force_send=False, user_signature=True): def _notify(self, message, force_send=False, send_after_commit=True,
user_signature=True):
if self.env.context.get('force_partners_to_notify'): if self.env.context.get('force_partners_to_notify'):
partners_to_notify =\ partners_to_notify =\
self.env.context.get('force_partners_to_notify') self.env.context.get('force_partners_to_notify')
self = self.filtered(lambda p: p.id in partners_to_notify) self = self.filtered(lambda p: p.id in partners_to_notify)
super(ResPartner, self)._notify( super(ResPartner, self)._notify(
message, force_send=False, user_signature=True) message, force_send=force_send,
send_after_commit=send_after_commit, user_signature=user_signature)

View File

@ -2,7 +2,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp.tests import common from odoo.tests import common
class TestMailOptionalFollowernotifications(common.TransactionCase): class TestMailOptionalFollowernotifications(common.TransactionCase):
@ -11,8 +11,8 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
super(TestMailOptionalFollowernotifications, self).setUp() super(TestMailOptionalFollowernotifications, self).setUp()
self.partner_obj = self.env['res.partner'] self.partner_obj = self.env['res.partner']
self.partner_01 = self.env.ref('base.res_partner_2') self.partner_01 = self.env.ref('base.res_partner_2')
self.partner_02 = self.env.ref('base.res_partner_3') self.demo_user = self.env.ref('base.user_demo')
self.partner_03 = self.env.ref('base.res_partner_4') self.partner_03 = self.demo_user.copy().partner_id
def test_send_email_optional_follower_notifications(self): def test_send_email_optional_follower_notifications(self):
ctx = self.env.context.copy() ctx = self.env.context.copy()
@ -22,10 +22,11 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
'default_composition_mode': 'comment', 'default_composition_mode': 'comment',
}) })
mail_compose = self.env['mail.compose.message'] mail_compose = self.env['mail.compose.message']
self.partner_01.message_subscribe_users(user_ids=[self.demo_user.id])
values = mail_compose.with_context(ctx)\ values = mail_compose.with_context(ctx)\
.onchange_template_id(False, 'comment', 'res.partner', .onchange_template_id(False, 'comment', 'res.partner',
self.partner_01.id)['value'] self.partner_01.id)['value']
values['partner_ids'] = [(4, self.partner_02.id), values['partner_ids'] = [(4, self.demo_user.partner_id.id),
(4, self.partner_03.id)] (4, self.partner_03.id)]
compose_id = mail_compose.with_context(ctx).create(values) compose_id = mail_compose.with_context(ctx).create(values)
compose_id.with_context(ctx).send_mail() compose_id.with_context(ctx).send_mail()
@ -35,7 +36,7 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
self.assertEqual(len(res.ids), 1) self.assertEqual(len(res.ids), 1)
message = self.env['mail.message'] message = self.env['mail.message']
for record in res: for record in res:
if record.notified_partner_ids.ids == [self.partner_03.id] and\ if record.notification_ids.mapped('res_partner_id').ids == [self.partner_03.id] and\
record.partner_ids.ids == [self.partner_03.id]: record.partner_ids.ids == [self.partner_03.id]:
message += record message += record
self.assertEqual(len(message.ids), 0) self.assertEqual(len(message.ids), 0)
@ -48,7 +49,7 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
('res_id', '=', self.partner_01.id)]) ('res_id', '=', self.partner_01.id)])
message = self.env['mail.message'] message = self.env['mail.message']
for record in res: for record in res:
if record.notified_partner_ids.ids == [self.partner_03.id] and\ if record.notification_ids.mapped('res_partner_id').ids == [self.partner_03.id] and\
record.partner_ids.ids == [self.partner_03.id]: record.partner_ids.ids == [self.partner_03.id]:
message += record message += record
self.assertEqual(len(message.ids), 1) self.assertEqual(len(message.ids), 1)

View File

@ -2,7 +2,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>) # Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, fields, api from odoo import models, fields, api
class MailComposeMessage(models.TransientModel): class MailComposeMessage(models.TransientModel):

View File

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<openerp> <odoo>
<data noupdate="0"> <data noupdate="0">
<record model="ir.ui.view" id="email_compose_message_wizard_inherit_form"> <record model="ir.ui.view" id="email_compose_message_wizard_inherit_form">
<field name="name">mail.compose.message.form (mail_optional_autofollow)</field> <field name="name">mail.compose.message.form (mail_optional_autofollow)</field>
@ -15,4 +15,4 @@
</field> </field>
</record> </record>
</data> </data>
</openerp> </odoo>