mirror of https://github.com/OCA/social.git
[11.0][IMP] message_auto_subscribe_notify_own: Allow to select models to be notified in
parent
5ff085d627
commit
806006b937
|
@ -10,9 +10,9 @@ Message Auto Subscribe Notify Own
|
||||||
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
|
||||||
:target: https://odoo-community.org/page/development-status
|
:target: https://odoo-community.org/page/development-status
|
||||||
:alt: Beta
|
:alt: Beta
|
||||||
.. |badge2| image:: https://img.shields.io/badge/licence-LGPL--3-blue.png
|
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
|
||||||
:target: http://www.gnu.org/licenses/lgpl-3.0-standalone.html
|
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
|
||||||
:alt: License: LGPL-3
|
:alt: License: AGPL-3
|
||||||
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github
|
.. |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
|
:target: https://github.com/OCA/social/tree/11.0/message_auto_subscribe_notify_own
|
||||||
:alt: OCA/social
|
:alt: OCA/social
|
||||||
|
@ -40,6 +40,13 @@ a reminder sent to your mailbox that you are now responsible for that object.
|
||||||
.. contents::
|
.. contents::
|
||||||
:local:
|
:local:
|
||||||
|
|
||||||
|
Configuration
|
||||||
|
=============
|
||||||
|
|
||||||
|
Configure models you want to be notified on your own creation
|
||||||
|
|
||||||
|
* Go to Settings > Technical > Email > Notify Own Models
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
@ -68,6 +75,7 @@ Contributors
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
||||||
|
* Hector Villarreal Ortega <hector.villarreal@eficent.com>
|
||||||
|
|
||||||
Maintainers
|
Maintainers
|
||||||
~~~~~~~~~~~
|
~~~~~~~~~~~
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
from . import models
|
from . import models
|
||||||
|
from .tests import test_fake_model
|
||||||
|
|
|
@ -1,17 +1,21 @@
|
||||||
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
|
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
|
||||||
# Copyright 2019 Aleph Objects, Inc.
|
# 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",
|
"name": "Message Auto Subscribe Notify Own",
|
||||||
"summary": "Receive notifications of your own subscriptions",
|
"summary": "Receive notifications of your own subscriptions",
|
||||||
"version": "11.0.1.0.0",
|
"version": "11.0.2.0.0",
|
||||||
"category": "Social Network",
|
"category": "Social Network",
|
||||||
"website": "https://github.com/OCA/social",
|
"website": "https://github.com/OCA/social",
|
||||||
"author": "Eficent, "
|
"author": "Eficent, "
|
||||||
"Odoo Community Association (OCA)",
|
"Odoo Community Association (OCA)",
|
||||||
"license": "LGPL-3",
|
"license": "AGPL-3",
|
||||||
"installable": True,
|
"installable": True,
|
||||||
"depends": [
|
"depends": [
|
||||||
"mail",
|
"mail",
|
||||||
],
|
],
|
||||||
|
"data": [
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
'views/auto_subscribe_notify_own_model.xml'
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
|
from . import auto_subscribe_notify_own_model
|
||||||
from . import mail_thread
|
from . import mail_thread
|
||||||
|
|
|
@ -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
|
|
@ -1,6 +1,6 @@
|
||||||
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
|
# Copyright 2019 Eficent Business and IT Consulting Services, S.L.
|
||||||
# Copyright 2019 Aleph Objects, Inc.
|
# 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
|
from odoo import api, models
|
||||||
|
|
||||||
|
@ -12,6 +12,9 @@ class MailThread(models.AbstractModel):
|
||||||
def message_auto_subscribe(self, updated_fields, values=None):
|
def message_auto_subscribe(self, updated_fields, values=None):
|
||||||
super(MailThread, self).message_auto_subscribe(updated_fields,
|
super(MailThread, self).message_auto_subscribe(updated_fields,
|
||||||
values=values)
|
values=values)
|
||||||
|
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(
|
user_field_lst = self._message_get_auto_subscribe_fields(
|
||||||
updated_fields)
|
updated_fields)
|
||||||
to_add_users = self.env['res.users'].sudo().browse(
|
to_add_users = self.env['res.users'].sudo().browse(
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
Configure models you want to be notified on your own creation
|
||||||
|
|
||||||
|
* Go to Settings > Technical > Email > Notify Own Models
|
|
@ -1 +1,2 @@
|
||||||
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
* Jordi Ballester Alomar <jordi.ballester@eficent.com>
|
||||||
|
* Hector Villarreal Ortega <hector.villarreal@eficent.com>
|
||||||
|
|
|
@ -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
|
|
|
@ -367,7 +367,7 @@ ul.auto-toc {
|
||||||
!! This file is generated by oca-gen-addon-readme !!
|
!! This file is generated by oca-gen-addon-readme !!
|
||||||
!! changes will be overwritten. !!
|
!! changes will be overwritten. !!
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
|
||||||
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/social/tree/11.0/message_auto_subscribe_notify_own"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/social-11-0/social-11-0-message_auto_subscribe_notify_own"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/205/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
<p><a class="reference external" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external" href="https://github.com/OCA/social/tree/11.0/message_auto_subscribe_notify_own"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external" href="https://translation.odoo-community.org/projects/social-11-0/social-11-0-message_auto_subscribe_notify_own"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external" href="https://runbot.odoo-community.org/runbot/205/11.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
|
||||||
<p>With this module you will receive a notification when you assign yourself
|
<p>With this module you will receive a notification when you assign yourself
|
||||||
to an object that has a responsible user, like the salesperson in
|
to an object that has a responsible user, like the salesperson in
|
||||||
leads/opportunities.</p>
|
leads/opportunities.</p>
|
||||||
|
@ -378,23 +378,31 @@ a reminder sent to your mailbox that you are now responsible for that object.</p
|
||||||
<p><strong>Table of contents</strong></p>
|
<p><strong>Table of contents</strong></p>
|
||||||
<div class="contents local topic" id="contents">
|
<div class="contents local topic" id="contents">
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li><a class="reference internal" href="#usage" id="id1">Usage</a></li>
|
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
|
||||||
<li><a class="reference internal" href="#bug-tracker" id="id2">Bug Tracker</a></li>
|
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
|
||||||
<li><a class="reference internal" href="#credits" id="id3">Credits</a><ul>
|
<li><a class="reference internal" href="#bug-tracker" id="id3">Bug Tracker</a></li>
|
||||||
<li><a class="reference internal" href="#authors" id="id4">Authors</a></li>
|
<li><a class="reference internal" href="#credits" id="id4">Credits</a><ul>
|
||||||
<li><a class="reference internal" href="#contributors" id="id5">Contributors</a></li>
|
<li><a class="reference internal" href="#authors" id="id5">Authors</a></li>
|
||||||
<li><a class="reference internal" href="#maintainers" id="id6">Maintainers</a></li>
|
<li><a class="reference internal" href="#contributors" id="id6">Contributors</a></li>
|
||||||
|
<li><a class="reference internal" href="#maintainers" id="id7">Maintainers</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="section" id="configuration">
|
||||||
|
<h1><a class="toc-backref" href="#id1">Configuration</a></h1>
|
||||||
|
<p>Configure models you want to be notified on your own creation</p>
|
||||||
|
<ul class="simple">
|
||||||
|
<li>Go to Settings > Technical > Email > Notify Own Models</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
<div class="section" id="usage">
|
<div class="section" id="usage">
|
||||||
<h1><a class="toc-backref" href="#id1">Usage</a></h1>
|
<h1><a class="toc-backref" href="#id2">Usage</a></h1>
|
||||||
<p>Assign yourself as salesperson of a lead/opportunity, for example, and you
|
<p>Assign yourself as salesperson of a lead/opportunity, for example, and you
|
||||||
will see that you’ll receive a notification.</p>
|
will see that you’ll receive a notification.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="bug-tracker">
|
<div class="section" id="bug-tracker">
|
||||||
<h1><a class="toc-backref" href="#id2">Bug Tracker</a></h1>
|
<h1><a class="toc-backref" href="#id3">Bug Tracker</a></h1>
|
||||||
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/social/issues">GitHub Issues</a>.
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/social/issues">GitHub Issues</a>.
|
||||||
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
|
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
|
||||||
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="credits">
|
<div class="section" id="credits">
|
||||||
<h1><a class="toc-backref" href="#id3">Credits</a></h1>
|
<h1><a class="toc-backref" href="#id4">Credits</a></h1>
|
||||||
<div class="section" id="authors">
|
<div class="section" id="authors">
|
||||||
<h2><a class="toc-backref" href="#id4">Authors</a></h2>
|
<h2><a class="toc-backref" href="#id5">Authors</a></h2>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>Eficent</li>
|
<li>Eficent</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="contributors">
|
<div class="section" id="contributors">
|
||||||
<h2><a class="toc-backref" href="#id5">Contributors</a></h2>
|
<h2><a class="toc-backref" href="#id6">Contributors</a></h2>
|
||||||
<ul class="simple">
|
<ul class="simple">
|
||||||
<li>Jordi Ballester Alomar <<a class="reference external" href="mailto:jordi.ballester@eficent.com">jordi.ballester@eficent.com</a>></li>
|
<li>Jordi Ballester Alomar <<a class="reference external" href="mailto:jordi.ballester@eficent.com">jordi.ballester@eficent.com</a>></li>
|
||||||
|
<li>Hector Villarreal Ortega <<a class="reference external" href="mailto:hector.villarreal@eficent.com">hector.villarreal@eficent.com</a>></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div class="section" id="maintainers">
|
<div class="section" id="maintainers">
|
||||||
<h2><a class="toc-backref" href="#id6">Maintainers</a></h2>
|
<h2><a class="toc-backref" href="#id7">Maintainers</a></h2>
|
||||||
<p>This module is maintained by the OCA.</p>
|
<p>This module is maintained by the OCA.</p>
|
||||||
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
|
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
|
||||||
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
from . import test_message_auto_subscribe_notify_own
|
|
@ -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')
|
|
@ -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')
|
|
@ -0,0 +1,26 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
|
||||||
|
<record model="ir.ui.view" id="view_auto_subscribe_notify_own_model_tree">
|
||||||
|
<field name="name">auto.subscribe.notify.own.model.tree</field>
|
||||||
|
<field name="model">auto.subscribe.notify.own.model</field>
|
||||||
|
<field name="priority">10</field>
|
||||||
|
<field name="arch" type="xml">
|
||||||
|
<tree string="Self Subscribe Notify Own" editable="bottom" create="true">
|
||||||
|
<field name="name"/>
|
||||||
|
<field name="model_id" domain="[('is_mail_thread','=', True)]"/>
|
||||||
|
<field name="active"/>
|
||||||
|
</tree>
|
||||||
|
</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.actions.act_window" id="action_view_auto_subscribe_notify_own_model">
|
||||||
|
<field name="name">Notify Own Models</field>
|
||||||
|
<field name="res_model">auto.subscribe.notify.own.model</field>
|
||||||
|
<field name="view_type">form</field>
|
||||||
|
<field name="view_mode">tree,form</field>
|
||||||
|
</record>
|
||||||
|
<menuitem name="Notify Own Models" id="menu_message_auto_subscribe_notify_own_model" parent="base.menu_email" action="action_view_auto_subscribe_notify_own_model"/>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
Loading…
Reference in New Issue