diff --git a/message_auto_subscribe_notify_own/README.rst b/message_auto_subscribe_notify_own/README.rst
index 880987b72..6dc095f63 100644
--- a/message_auto_subscribe_notify_own/README.rst
+++ b/message_auto_subscribe_notify_own/README.rst
@@ -10,9 +10,9 @@ Message Auto Subscribe Notify Own
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
-.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
- :target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
- :alt: License: LGPL-3
+.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
+ :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/11.0/message_auto_subscribe_notify_own
:alt: OCA/social
@@ -40,6 +40,13 @@ a reminder sent to your mailbox that you are now responsible for that object.
.. contents::
:local:
+Configuration
+=============
+
+Configure models you want to be notified on your own creation
+
+* Go to Settings > Technical > Email > Notify Own Models
+
Usage
=====
@@ -68,6 +75,7 @@ Contributors
~~~~~~~~~~~~
* Jordi Ballester Alomar
+* Hector Villarreal Ortega
Maintainers
~~~~~~~~~~~
diff --git a/message_auto_subscribe_notify_own/__init__.py b/message_auto_subscribe_notify_own/__init__.py
index 0650744f6..967a6694a 100644
--- a/message_auto_subscribe_notify_own/__init__.py
+++ b/message_auto_subscribe_notify_own/__init__.py
@@ -1 +1,2 @@
from . import models
+from .tests import test_fake_model
diff --git a/message_auto_subscribe_notify_own/__manifest__.py b/message_auto_subscribe_notify_own/__manifest__.py
index fdc837db0..d3ccc20f4 100644
--- a/message_auto_subscribe_notify_own/__manifest__.py
+++ b/message_auto_subscribe_notify_own/__manifest__.py
@@ -1,17 +1,21 @@
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
# Copyright 2019 Aleph Objects, Inc.
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
{
"name": "Message Auto Subscribe Notify Own",
"summary": "Receive notifications of your own subscriptions",
- "version": "11.0.1.0.0",
+ "version": "11.0.2.0.0",
"category": "Social Network",
"website": "https://github.com/OCA/social",
"author": "Eficent, "
"Odoo Community Association (OCA)",
- "license": "LGPL-3",
+ "license": "AGPL-3",
"installable": True,
"depends": [
"mail",
],
+ "data": [
+ 'security/ir.model.access.csv',
+ 'views/auto_subscribe_notify_own_model.xml'
+ ]
}
diff --git a/message_auto_subscribe_notify_own/models/__init__.py b/message_auto_subscribe_notify_own/models/__init__.py
index b70a9f2d0..080eccd8b 100644
--- a/message_auto_subscribe_notify_own/models/__init__.py
+++ b/message_auto_subscribe_notify_own/models/__init__.py
@@ -1 +1,2 @@
+from . import auto_subscribe_notify_own_model
from . import mail_thread
diff --git a/message_auto_subscribe_notify_own/models/auto_subscribe_notify_own_model.py b/message_auto_subscribe_notify_own/models/auto_subscribe_notify_own_model.py
new file mode 100644
index 000000000..b92b431fe
--- /dev/null
+++ b/message_auto_subscribe_notify_own/models/auto_subscribe_notify_own_model.py
@@ -0,0 +1,18 @@
+# Copyright 2019 Aleph Objects, Inc.
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+
+from odoo import api, fields, models
+
+
+class AutoSubscribeNotifyOwnModel(models.Model):
+ _name = 'auto.subscribe.notify.own.model'
+
+ name = fields.Char(compute='_compute_name')
+ model_id = fields.Many2one('ir.model', 'Model', required=True)
+ active = fields.Boolean(default=True)
+
+ @api.multi
+ @api.depends('model_id')
+ def _compute_name(self):
+ for record in self:
+ record.name = record.model_id.model
diff --git a/message_auto_subscribe_notify_own/models/mail_thread.py b/message_auto_subscribe_notify_own/models/mail_thread.py
index b930ba216..41d6dc1f3 100644
--- a/message_auto_subscribe_notify_own/models/mail_thread.py
+++ b/message_auto_subscribe_notify_own/models/mail_thread.py
@@ -1,6 +1,6 @@
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
# Copyright 2019 Aleph Objects, Inc.
-# License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl.html).
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
from odoo import api, models
@@ -12,14 +12,17 @@ class MailThread(models.AbstractModel):
def message_auto_subscribe(self, updated_fields, values=None):
super(MailThread, self).message_auto_subscribe(updated_fields,
values=values)
- user_field_lst = self._message_get_auto_subscribe_fields(
- updated_fields)
- to_add_users = self.env['res.users'].sudo().browse(
- [values[name] for name in user_field_lst if values.get(name)]
- ).filtered(lambda u: u.partner_id.active)
- user_pids = [user.partner_id.id for user in to_add_users
- if user == self.env.user and
- user.notification_type == 'email']
- if user_pids:
- self._message_auto_subscribe_notify(user_pids)
+ self_notify_model = self.env['auto.subscribe.notify.own.model'].search(
+ [('model_id', '=', self._name), ('active', '=', 'True')], limit=1)
+ if self_notify_model:
+ user_field_lst = self._message_get_auto_subscribe_fields(
+ updated_fields)
+ to_add_users = self.env['res.users'].sudo().browse(
+ [values[name] for name in user_field_lst if values.get(name)]
+ ).filtered(lambda u: u.partner_id.active)
+ user_pids = [user.partner_id.id for user in to_add_users
+ if user == self.env.user and
+ user.notification_type == 'email']
+ if user_pids:
+ self._message_auto_subscribe_notify(user_pids)
return True
diff --git a/message_auto_subscribe_notify_own/readme/CONFIGURE.rst b/message_auto_subscribe_notify_own/readme/CONFIGURE.rst
new file mode 100644
index 000000000..9219e3adf
--- /dev/null
+++ b/message_auto_subscribe_notify_own/readme/CONFIGURE.rst
@@ -0,0 +1,3 @@
+Configure models you want to be notified on your own creation
+
+* Go to Settings > Technical > Email > Notify Own Models
diff --git a/message_auto_subscribe_notify_own/readme/CONTRIBUTORS.rst b/message_auto_subscribe_notify_own/readme/CONTRIBUTORS.rst
index 6860affe2..429ffaf61 100644
--- a/message_auto_subscribe_notify_own/readme/CONTRIBUTORS.rst
+++ b/message_auto_subscribe_notify_own/readme/CONTRIBUTORS.rst
@@ -1 +1,2 @@
* Jordi Ballester Alomar
+* Hector Villarreal Ortega
diff --git a/message_auto_subscribe_notify_own/readme/DESCRIPTION.rst b/message_auto_subscribe_notify_own/readme/DESCRIPTION.rst
index 2a74c7daa..153808778 100644
--- a/message_auto_subscribe_notify_own/readme/DESCRIPTION.rst
+++ b/message_auto_subscribe_notify_own/readme/DESCRIPTION.rst
@@ -6,4 +6,4 @@ In general Odoo will notify other users in this situation, but not the own
user who has performed the action.
But in certain situations it is better that you receive this notification, as
-a reminder sent to your mailbox that you are now responsible for that object.
\ No newline at end of file
+a reminder sent to your mailbox that you are now responsible for that object.
diff --git a/message_auto_subscribe_notify_own/security/ir.model.access.csv b/message_auto_subscribe_notify_own/security/ir.model.access.csv
new file mode 100644
index 000000000..dee204267
--- /dev/null
+++ b/message_auto_subscribe_notify_own/security/ir.model.access.csv
@@ -0,0 +1,4 @@
+id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
+access_auto_subscribe_notify_own_model_user,access_auto_subscribe_notify_own_model_user,model_auto_subscribe_notify_own_model,base.group_user,1,0,0,0
+access_auto_subscribe_notify_own_model_erp_manager,access_auto_subscribe_notify_own_model_admin,model_auto_subscribe_notify_own_model,base.group_erp_manager,1,1,1,1
+access_fake_model_test,fake.model.test,model_message_auto_subscribe_notify_own_test,base.group_user,1,1,1,1
diff --git a/message_auto_subscribe_notify_own/static/description/index.html b/message_auto_subscribe_notify_own/static/description/index.html
index 75b14540c..8ea6ea2ca 100644
--- a/message_auto_subscribe_notify_own/static/description/index.html
+++ b/message_auto_subscribe_notify_own/static/description/index.html
@@ -367,7 +367,7 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

With this module you will receive a notification when you assign yourself
to an object that has a responsible user, like the salesperson in
leads/opportunities.
@@ -378,23 +378,31 @@ a reminder sent to your mailbox that you are now responsible for that object.
Table of contents
+
+
+
Configure models you want to be notified on your own creation
+
+- Go to Settings > Technical > Email > Notify Own Models
+
+
-
+
Assign yourself as salesperson of a lead/opportunity, for example, and you
will see that you’ll receive a notification.
-
+
Bugs are tracked on GitHub 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
@@ -402,21 +410,22 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
Do not contact contributors directly about support or help with technical issues.
-
+
-
+
This module is maintained by the OCA.
OCA, or the Odoo Community Association, is a nonprofit organization whose
diff --git a/message_auto_subscribe_notify_own/tests/__init__.py b/message_auto_subscribe_notify_own/tests/__init__.py
new file mode 100644
index 000000000..69a65e7e3
--- /dev/null
+++ b/message_auto_subscribe_notify_own/tests/__init__.py
@@ -0,0 +1 @@
+from . import test_message_auto_subscribe_notify_own
diff --git a/message_auto_subscribe_notify_own/tests/test_fake_model.py b/message_auto_subscribe_notify_own/tests/test_fake_model.py
new file mode 100644
index 000000000..3af2da8fe
--- /dev/null
+++ b/message_auto_subscribe_notify_own/tests/test_fake_model.py
@@ -0,0 +1,15 @@
+# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
+# Copyright 2019 Aleph Objects, Inc.
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+from odoo import fields, models
+
+
+class MessageAutoSubscribeNotifyOwnTest(models.Model):
+ """A Fake model to Test."""
+
+ _name = 'message_auto_subscribe_notify_own.test'
+ _inherit = 'mail.thread'
+
+ name = fields.Char()
+ user_id = fields.Many2one(comodel_name='res.users',
+ track_visibility='onchange')
diff --git a/message_auto_subscribe_notify_own/tests/test_message_auto_subscribe_notify_own.py b/message_auto_subscribe_notify_own/tests/test_message_auto_subscribe_notify_own.py
new file mode 100644
index 000000000..08aca84ec
--- /dev/null
+++ b/message_auto_subscribe_notify_own/tests/test_message_auto_subscribe_notify_own.py
@@ -0,0 +1,48 @@
+# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
+# Copyright 2019 Aleph Objects, Inc.
+# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
+from odoo.tests.common import TransactionCase
+
+
+class TestMessageAutoSubscribeNotifyOwn(TransactionCase):
+
+ def setUp(self):
+ super(TestMessageAutoSubscribeNotifyOwn, self).setUp()
+
+ self.user_root = self.env.ref('base.user_root')
+ self.user_root.notification_type = 'email'
+
+ self.fake_model_id = self.env['ir.model'].search(
+ [('name', '=', 'message_auto_subscribe_notify_own.test')])
+
+ self.env['auto.subscribe.notify.own.model'].create(dict(
+ model_id=self.fake_model_id.id
+ ))
+ self.fake_test = self.env[
+ 'message_auto_subscribe_notify_own.test'].create(
+ dict(name='Test Fake Model',
+ user_id=self.env.ref('base.user_demo').id))
+
+ def tearDown(self):
+ super(TestMessageAutoSubscribeNotifyOwn, self).tearDown()
+
+ def test_message_auto_subscribe_notify_own(self):
+ prev_mail_messages = self.env['mail.message'].search([
+ ('record_name', '=', self.fake_test.name),
+ ('reply_to', '=', self.user_root.email_formatted)
+ ])
+ self.fake_test.update(dict(
+ user_id=self.user_root.id
+ ))
+ mail_messages = self.env['mail.message'].search([
+ ('record_name', '=', self.fake_test.name),
+ ('reply_to', '=', self.user_root.email_formatted)
+ ])
+ self.assertEqual(len(mail_messages-prev_mail_messages), 1)
+
+ def test_compute_name(self):
+ notified_model = self.env['auto.subscribe.notify.own.model'].search(
+ [('model_id', '=', self.fake_model_id.id)])
+ notified_model._compute_name()
+ self.assertTrue(notified_model.name,
+ 'message_auto_subscribe_notify_own.test')
diff --git a/message_auto_subscribe_notify_own/views/auto_subscribe_notify_own_model.xml b/message_auto_subscribe_notify_own/views/auto_subscribe_notify_own_model.xml
new file mode 100644
index 000000000..7778c6478
--- /dev/null
+++ b/message_auto_subscribe_notify_own/views/auto_subscribe_notify_own_model.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+ auto.subscribe.notify.own.model.tree
+ auto.subscribe.notify.own.model
+ 10
+
+
+
+
+
+
+
+
+
+
+ Notify Own Models
+ auto.subscribe.notify.own.model
+ form
+ tree,form
+
+
+
+