[11.0][IMP] message_auto_subscribe_notify_own: Allow to select models to be notified in

pull/414/head
hveficent 2019-02-20 14:21:09 +01:00 committed by OCA-git-bot
parent 5ff085d627
commit 806006b937
15 changed files with 173 additions and 31 deletions

View File

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

View File

@ -1 +1,2 @@
from . import models from . import models
from .tests import test_fake_model

View File

@ -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'
]
} }

View File

@ -1 +1,2 @@
from . import auto_subscribe_notify_own_model
from . import mail_thread from . import mail_thread

View File

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

View File

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

View File

@ -0,0 +1,3 @@
Configure models you want to be notified on your own creation
* Go to Settings > Technical > Email > Notify Own Models

View File

@ -1 +1,2 @@
* Jordi Ballester Alomar <jordi.ballester@eficent.com> * Jordi Ballester Alomar <jordi.ballester@eficent.com>
* Hector Villarreal Ortega <hector.villarreal@eficent.com>

View File

@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 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
3 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
4 access_fake_model_test fake.model.test model_message_auto_subscribe_notify_own_test base.group_user 1 1 1 1

View File

@ -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 &gt; Technical &gt; Email &gt; 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 youll receive a notification.</p> will see that youll 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 &lt;<a class="reference external" href="mailto:jordi.ballester&#64;eficent.com">jordi.ballester&#64;eficent.com</a>&gt;</li> <li>Jordi Ballester Alomar &lt;<a class="reference external" href="mailto:jordi.ballester&#64;eficent.com">jordi.ballester&#64;eficent.com</a>&gt;</li>
<li>Hector Villarreal Ortega &lt;<a class="reference external" href="mailto:hector.villarreal&#64;eficent.com">hector.villarreal&#64;eficent.com</a>&gt;</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

View File

@ -0,0 +1 @@
from . import test_message_auto_subscribe_notify_own

View File

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

View File

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

View File

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