forked from OCA/social
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge commit 'refs/pull/923/head' of https://github.com/oca/social in…
…to 15.0-5755
- Loading branch information
Showing
19 changed files
with
291 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
======================= | ||
Partner Mail Forwarding | ||
======================= | ||
|
||
.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
!! This file is generated by oca-gen-addon-readme !! | ||
!! changes will be overwritten. !! | ||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! | ||
.. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png | ||
:target: https://odoo-community.org/page/development-status | ||
:alt: Production/Stable | ||
.. |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/13.0/mail_debrand | ||
:alt: OCA/social | ||
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png | ||
:target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mail_debrand | ||
:alt: Translate me on Weblate | ||
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png | ||
:target: https://runbot.odoo-community.org/runbot/205/13.0 | ||
:alt: Try me on Runbot | ||
|
||
|badge1| |badge2| |badge3| |badge4| |badge5| | ||
|
||
This module allows to select a related partner (called "Forwarding Partner") in each partner in order to send all the notifications | ||
to the Forwarding Partner. | ||
|
||
|
||
**Table of contents** | ||
|
||
.. contents:: | ||
:local: | ||
|
||
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 <https://github.com/OCA/social/issues/new?body=module:%20mail_debrand%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. | ||
|
||
Do not contact contributors directly about support or help with technical issues. | ||
|
||
Credits | ||
======= | ||
|
||
Authors | ||
~~~~~~~ | ||
|
||
* AdHoc SA | ||
|
||
Contributors | ||
~~~~~~~~~~~~ | ||
|
||
* Nicolás Mac Rouillon <nmr@adhoc.com.ar> | ||
|
||
Maintainers | ||
~~~~~~~~~~~ | ||
|
||
This module is maintained by the OCA. | ||
|
||
.. image:: https://odoo-community.org/logo.png | ||
:alt: Odoo Community Association | ||
:target: https://odoo-community.org | ||
|
||
OCA, or the Odoo Community Association, is a nonprofit organization whose | ||
mission is to support the collaborative development of Odoo features and | ||
promote its widespread use. | ||
|
||
This module is part of the `OCA/social <https://github.com/OCA/social/tree/13.0/mail_backup_user>`_ project on GitHub. | ||
|
||
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import models |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# Copyright 2022 AdHoc SA - Pablo Paez | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). | ||
|
||
{ | ||
"name": "Partner Mail Forwarding", | ||
"summary": "Forwarding notifications for partners", | ||
"version": "15.0.1.0.0", | ||
"category": "Social Network", | ||
"website": "https://github.com/OCA/social", | ||
"author": "ADHOC SA, Odoo Community Association (OCA)", | ||
"license": "AGPL-3", | ||
"installable": True, | ||
"depends": ["mail"], | ||
"data": ["views/res_user_views.xml", "views/res_partner_views.xml"], | ||
"development_status": "Production/Stable", | ||
"maintainers": [], | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
from . import res_partner | ||
from . import res_user | ||
from . import mail_thread |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
from odoo import models | ||
|
||
|
||
class MailThread(models.AbstractModel): | ||
_inherit = "mail.thread" | ||
|
||
def _notify_compute_recipients(self, message, msg_vals): | ||
"""Inherit this method to add in the list of partners to be notify | ||
the forwarding_partner_id of any partners in the list""" | ||
recipient_data = super()._notify_compute_recipients(message, msg_vals) | ||
if not recipient_data: | ||
return recipient_data | ||
partner_dict = {x.get("id"): x for x in recipient_data} | ||
forwarded_partner_ids = [] | ||
# for each partner being notified we check if it has a | ||
# forwarding_partner_id configured that is not being notified yet | ||
for partner in ( | ||
self.env["res.partner"] | ||
.sudo() | ||
.with_context(prefetch_fields=False) | ||
.browse(partner_dict.keys()) | ||
): | ||
if ( | ||
partner.forwarding_partner_id | ||
and partner.forwarding_partner_id.id not in partner_dict.keys() | ||
and partner.forwarding_partner_id.id not in forwarded_partner_ids | ||
): | ||
forwarded_partner_ids.append(partner.forwarding_partner_id.id) | ||
data = partner_dict[partner.id].copy() | ||
notif = ( | ||
partner.forwarding_partner_id.user_ids | ||
and partner.forwarding_partner_id.user_ids[0].notification_type | ||
or "email" | ||
) | ||
data.update( | ||
{ | ||
"id": partner.forwarding_partner_id.id, | ||
"share": partner.partner_share, | ||
"notif": notif, | ||
} | ||
) | ||
recipient_data.append(data) | ||
return recipient_data |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
from odoo import fields, models | ||
|
||
|
||
class ResPartner(models.Model): | ||
_inherit = "res.partner" | ||
|
||
forwarding_partner_id = fields.Many2one( | ||
"res.partner", | ||
string="Forwarding Partner", | ||
help="Messages will be forwarded only for partners that are followers but no " | ||
"partners being notify because they belong to channel that is following the thread", | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
from odoo import fields, models | ||
|
||
|
||
class ResUsers(models.Model): | ||
_inherit = "res.users" | ||
|
||
forwarding_partner_id = fields.Many2one( | ||
related="partner_id.forwarding_partner_id", readonly=False | ||
) | ||
|
||
@property | ||
def SELF_WRITEABLE_FIELDS(self): | ||
return super().SELF_WRITEABLE_FIELDS + ["forwarding_partner_id"] | ||
|
||
@property | ||
def SELF_READABLE_FIELDS(self): | ||
return super().SELF_READABLE_FIELDS + ["forwarding_partner_id"] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
* Nicolás Mac Rouillon <nmr@adhoc.com.ar> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
This module allows to select a related user (called "Forwarding partner") in each partner in order to send all the notifications to the Forwarding partner. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
13.0.1.0.0 (2022-01-03) | ||
~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
* [NEW] Module in v13. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
To use this module, you need to: | ||
|
||
* Install it. | ||
* Set a Forwarding partner in your partner. | ||
* Your Forwarding partner also will be notify of your notifications |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import test_mail_forwarding |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
from . import fake_order |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Copyright 2021 Camptocamp (http://www.camptocamp.com). | ||
# @author Iván Todorovich <ivan.todorovich@gmail.com> | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from odoo import fields, models | ||
|
||
|
||
class FakeOrder(models.Model): | ||
_name = "fake.order" | ||
_inherit = "mail.thread" | ||
_description = "Fake sale.order like model" | ||
|
||
partner_id = fields.Many2one("res.partner", required=True) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from odoo_test_helper import FakeModelLoader | ||
|
||
from odoo import _ | ||
from odoo.tests.common import SavepointCase, tagged | ||
|
||
|
||
@tagged("post_install", "-at_install") | ||
class TestMailForwarding(SavepointCase): | ||
@classmethod | ||
def setUpClass(cls): | ||
super().setUpClass() | ||
# Setup env | ||
cls.env = cls.env(context=dict(cls.env.context, tracking_disable=True)) | ||
# Load fake order model | ||
cls.loader = FakeModelLoader(cls.env, cls.__module__) | ||
cls.loader.backup_registry() | ||
from .models.fake_order import FakeOrder | ||
|
||
cls.loader.update_registry((FakeOrder,)) | ||
cls.fake_order_model = cls.env["ir.model"].search( | ||
[("model", "=", "fake.order")] | ||
) | ||
# Partner To forward | ||
cls.partner_1 = cls.env.ref("base.user_demo").partner_id | ||
cls.partner_2 = cls.env.ref("base.user_admin").partner_id | ||
|
||
# Configurate in the user setting the user to be forwarding | ||
cls.partner_2.forwarding_partner_id = cls.partner_1 | ||
# Empty fake.order | ||
cls.order = cls.env["fake.order"].create({"partner_id": cls.partner_2.id}) | ||
|
||
@classmethod | ||
def tearDownClass(cls): | ||
cls.loader.restore_registry() | ||
return super().tearDownClass() | ||
|
||
def test_message_post_forwarding(self): | ||
"""Test forwarding when send a message for the user""" | ||
self.order.message_post( | ||
body=_("Test"), | ||
message_type="comment", | ||
subtype="mail.mt_comment", | ||
partner_ids=[self.partner_2.id], | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
<!-- Copyright 2022 AdHoc SA | ||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> | ||
<odoo> | ||
|
||
<record id="view_partner_form" model="ir.ui.view"> | ||
<field name="name">res.partner.form.forwarding</field> | ||
<field name="model">res.partner</field> | ||
<field name="inherit_id" ref="base.view_partner_form" /> | ||
<field name="arch" type="xml"> | ||
<field name="website" position="before"> | ||
<field name="forwarding_partner_id" /> | ||
</field> | ||
</field> | ||
</record> | ||
|
||
</odoo> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
<!-- Copyright 2022 AdHoc SA | ||
License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). --> | ||
<odoo> | ||
|
||
<record id="view_users_form_mail" model="ir.ui.view"> | ||
<field name="name">res.users.form.user.forwarding</field> | ||
<field name="model">res.users</field> | ||
<field name="inherit_id" ref="base.view_users_form" /> | ||
<field name="arch" type="xml"> | ||
<xpath expr="//field[@name='login']//.." position="after"> | ||
<label for="forwarding_partner_id" /> | ||
<field name="forwarding_partner_id" /> | ||
</xpath> | ||
</field> | ||
</record> | ||
|
||
<record id="view_users_form_mail_preferences" model="ir.ui.view"> | ||
<field name="name">res.users.form.user.forwarding.preferences</field> | ||
<field name="model">res.users</field> | ||
<field name="inherit_id" ref="base.view_users_form_simple_modif" /> | ||
<field name="arch" type="xml"> | ||
<field name="email" position="after"> | ||
<field name="forwarding_partner_id" readonly="0" /> | ||
</field> | ||
</field> | ||
</record> | ||
|
||
</odoo> |
1 change: 1 addition & 0 deletions
1
setup/mail_partner_forwarding/odoo/addons/mail_partner_forwarding
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../../../mail_partner_forwarding |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
import setuptools | ||
|
||
setuptools.setup( | ||
setup_requires=['setuptools-odoo'], | ||
odoo_addon=True, | ||
) |