Migration of mail_optional_follower_notification to 10.0

This commit is contained in:
Adrien Peiffer (ACSONE) 2016-10-24 11:46:07 +02:00 committed by Robin Goots
parent d0b462f900
commit 159a77df66
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>