Browse Source

Migration of mail_optional_follower_notification to 10.0

pull/115/head
Adrien Peiffer (ACSONE) 8 years ago
parent
commit
1665bc95ec
  1. 5
      mail_optional_follower_notification/README.rst
  2. 0
      mail_optional_follower_notification/__manifest__.py
  3. 14
      mail_optional_follower_notification/models/mail_message.py
  4. 8
      mail_optional_follower_notification/models/res_partner.py
  5. 13
      mail_optional_follower_notification/tests/test_mail_optional_follower_notifications.py
  6. 2
      mail_optional_follower_notification/wizard/mail_compose_message.py
  7. 4
      mail_optional_follower_notification/wizard/mail_compose_message_view.xml

5
mail_optional_follower_notification/README.rst

@ -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
`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 Credits
======= =======

0
mail_optional_follower_notification/__openerp__.py → mail_optional_follower_notification/__manifest__.py

14
mail_optional_follower_notification/models/mail_message.py

@ -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

8
mail_optional_follower_notification/models/res_partner.py

@ -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)

13
mail_optional_follower_notification/tests/test_mail_optional_follower_notifications.py

@ -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.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): 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)

2
mail_optional_follower_notification/wizard/mail_compose_message.py

@ -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):

4
mail_optional_follower_notification/wizard/mail_compose_message_view.xml

@ -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>
Loading…
Cancel
Save