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
: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
@ -35,8 +35,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
`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**>`_.
If you spotted it first, help us smashing it by providing a detailed and welcomed feedback.
Credits
=======

View File

@ -2,7 +2,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# 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):
@ -17,3 +17,15 @@ class MailMessage(models.Model):
force_partners_to_notify = [d['id'] for d in partner_list]
ctx['force_partners_to_notify'] = force_partners_to_notify
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>)
# 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):
_inherit = 'res.partner'
@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'):
partners_to_notify =\
self.env.context.get('force_partners_to_notify')
self = self.filtered(lambda p: p.id in partners_to_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>)
# 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):
@ -11,8 +11,8 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
super(TestMailOptionalFollowernotifications, self).setUp()
self.partner_obj = self.env['res.partner']
self.partner_01 = self.env.ref('base.res_partner_2')
self.partner_02 = self.env.ref('base.res_partner_3')
self.partner_03 = self.env.ref('base.res_partner_4')
self.demo_user = self.env.ref('base.user_demo')
self.partner_03 = self.demo_user.copy().partner_id
def test_send_email_optional_follower_notifications(self):
ctx = self.env.context.copy()
@ -22,10 +22,11 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
'default_composition_mode': 'comment',
})
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)\
.onchange_template_id(False, 'comment', 'res.partner',
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)]
compose_id = mail_compose.with_context(ctx).create(values)
compose_id.with_context(ctx).send_mail()
@ -35,7 +36,7 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
self.assertEqual(len(res.ids), 1)
message = self.env['mail.message']
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]:
message += record
self.assertEqual(len(message.ids), 0)
@ -48,7 +49,7 @@ class TestMailOptionalFollowernotifications(common.TransactionCase):
('res_id', '=', self.partner_01.id)])
message = self.env['mail.message']
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]:
message += record
self.assertEqual(len(message.ids), 1)

View File

@ -2,7 +2,7 @@
# Copyright 2016 ACSONE SA/NV (<http://acsone.eu>)
# 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):

View File

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