Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 22 additions & 20 deletions mail_composer_cc_bcc/i18n/nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,111 +6,113 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 18.0\n"
"Report-Msgid-Bugs-To: \n"
"Last-Translator: Automatically generated\n"
"PO-Revision-Date: 2026-06-03 16:42+0000\n"
"Last-Translator: Bosd <c5e2fd43-d292-4c90-9d1f-74ff3436329a@anonaddy.me>\n"
"Language-Team: none\n"
"Language: nl\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_compose_message__partner_bcc_ids
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_mail__email_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_template__email_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_template_preview__email_bcc
msgid "Bcc"
msgstr ""
msgstr "Bcc"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_mail__recipient_bcc_ids
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_message__recipient_bcc_ids
msgid "Bcc (Partners)"
msgstr ""
msgstr "Bcc (Relaties)"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,help:mail_composer_cc_bcc.field_mail_template_preview__email_bcc
msgid "Blind Carbon copy recipients"
msgstr ""
msgstr "Bcc-ontvangers"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,help:mail_composer_cc_bcc.field_mail_mail__email_bcc
msgid "Blind Cc message recipients"
msgstr ""
msgstr "Bcc-berichtontvangers"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,help:mail_composer_cc_bcc.field_mail_template__email_bcc
msgid "Blind cc recipients (placeholders may be used here)"
msgstr ""
msgstr "Bcc-ontvangers (placeholders kunnen hier worden gebruikt)"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_compose_message__partner_cc_ids
msgid "Cc"
msgstr ""
msgstr "Cc"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_mail__recipient_cc_ids
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_mail_message__recipient_cc_ids
msgid "Cc (Partners)"
msgstr ""
msgstr "Cc (Relaties)"

#. module: mail_composer_cc_bcc
#: model_terms:ir.ui.view,arch_db:mail_composer_cc_bcc.email_template_form_inherit
#: model_terms:ir.ui.view,arch_db:mail_composer_cc_bcc.view_mail_form_inherit
msgid "Comma-separated blind carbon copy recipients addresses"
msgstr ""
msgstr "Door komma's gescheiden adressen van Bcc-ontvangers"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_res_company
msgid "Companies"
msgstr ""
msgstr "Bedrijven"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_res_company__default_partner_bcc_ids
msgid "Default Bcc"
msgstr ""
msgstr "Standaard Bcc"

#. module: mail_composer_cc_bcc
#: model:ir.model.fields,field_description:mail_composer_cc_bcc.field_res_company__default_partner_cc_ids
msgid "Default Cc"
msgstr ""
msgstr "Standaard Cc"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_template_preview
msgid "Email Template Preview"
msgstr ""
msgstr "Voorbeeld e-mailsjabloon"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_template
msgid "Email Templates"
msgstr ""
msgstr "E-mailsjablonen"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_thread
msgid "Email Thread"
msgstr ""
msgstr "E-maildiscussie"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_compose_message
msgid "Email composition wizard"
msgstr ""
msgstr "Wizard e-mail opstellen"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_ir_mail_server
msgid "Mail Server"
msgstr ""
msgstr "Mailserver"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_message
msgid "Message"
msgstr ""
msgstr "Bericht"

#. module: mail_composer_cc_bcc
#: model:ir.model,name:mail_composer_cc_bcc.model_mail_mail
msgid "Outgoing Mails"
msgstr ""
msgstr "Uitgaande e-mails"

#. module: mail_composer_cc_bcc
#: model_terms:ir.ui.view,arch_db:mail_composer_cc_bcc.view_mail_form_inherit
msgid "Partners"
msgstr ""
msgstr "Relaties"
137 changes: 137 additions & 0 deletions mail_thread_disable_auto_follower/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,137 @@
=================================
Disable Mail Thread Auto-follower
=================================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:fa79b5e41d473cdccf8b3879058a40600fb5eba961deb26806818df52f494732
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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-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%2Fmail-lightgray.png?logo=github
:target: https://github.com/OCA/mail/tree/18.0/mail_thread_disable_auto_follower
:alt: OCA/mail
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/mail-18-0/mail-18-0-mail_thread_disable_auto_follower
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/mail&target_branch=18.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Odoo automatically adds record creators and message senders as followers
of document threads. While this is useful in many scenarios, it can lead
to cluttered chatter mailboxes and unwanted email notifications —
especially on high-volume models like Sales Orders, Purchase Orders, or
Contacts.

This module lets you **selectively disable** that automatic follower
behavior on a per-model basis. It provides a single, centralized
configuration page (accessible only in Developer / debug mode) where
system administrators can choose exactly which models should skip Odoo's
built-in auto-follower subscription logic.

**Table of contents**

.. contents::
:local:

Usage
=====

Configuration Workflow
----------------------

Step 1 — Access the Configuration Menu
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Activate **Developer Mode (debug)** in your Odoo database, then navigate
to:

**Settings > Technical > Automation > Disable Auto-Follower
Configuration**

|Menu Navigation|

Step 2 — Unified Singleton Form View
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The menu action opens a single, clean Form view that represents the
global configuration. Record creation and deletion are intentionally
restricted to maintain system integrity — there is always exactly one
configuration record.

|Singleton Form View|

Step 3 — Select Models
~~~~~~~~~~~~~~~~~~~~~~

Use the **Many2many tags** dropdown field to select the target models on
which auto-follower subscriptions should be disabled (e.g.
``sale.order``, ``purchase.order``, ``res.partner``). Save your changes.

|Selecting Models|

Step 4 — Verification
~~~~~~~~~~~~~~~~~~~~~

Create a new record on one of the selected models (for example, create a
Sales Order). You will notice that the record creator is **not**
automatically subscribed as a follower in the document's chatter thread.

|Auto-subscription Bypass Verification|

.. |Menu Navigation| image:: https://raw.githubusercontent.com/OCA/mail/18.0/mail_thread_disable_auto_follower/static/description/screenshots/img1.png
.. |Singleton Form View| image:: https://raw.githubusercontent.com/OCA/mail/18.0/mail_thread_disable_auto_follower/static/description/screenshots/img2.png
.. |Selecting Models| image:: https://raw.githubusercontent.com/OCA/mail/18.0/mail_thread_disable_auto_follower/static/description/screenshots/img3.png
.. |Auto-subscription Bypass Verification| image:: https://raw.githubusercontent.com/OCA/mail/18.0/mail_thread_disable_auto_follower/static/description/screenshots/img4.png

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/mail/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/mail/issues/new?body=module:%20mail_thread_disable_auto_follower%0Aversion:%2018.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
-------

* CIT Services

Contributors
------------

- CIT Services https://cit-services.eu
- Prayag prayag.k@cit-services.eu

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/mail <https://github.com/OCA/mail/tree/18.0/mail_thread_disable_auto_follower>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
5 changes: 5 additions & 0 deletions mail_thread_disable_auto_follower/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Copyright 2026 CIT Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import models
from . import wizards
20 changes: 20 additions & 0 deletions mail_thread_disable_auto_follower/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# Copyright 2026 CIT Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Disable Mail Thread Auto-follower",
"summary": "Disable automatic follower subscriptions on selected models.",
"author": "CIT Services, Odoo Community Association (OCA)",
"company": "CIT Services",
"website": "https://github.com/OCA/mail",
"category": "Social Network",
"version": "18.0.1.0.0",
"license": "AGPL-3",
"depends": ["mail"],
"data": [
"security/ir.model.access.csv",
"data/mail_thread_disable_auto_followers_data.xml",
"views/mail_thread_disable_auto_followers_views.xml",
],
"installable": True,
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8" ?>
<odoo noupdate="1">
<record
id="mail_thread_disable_auto_followers_config_default"
model="mail.thread.disable.auto.followers.config"
>
<field name="name">Configuration</field>
</record>
</odoo>
6 changes: 6 additions & 0 deletions mail_thread_disable_auto_follower/models/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Copyright 2026 CIT Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from . import mail_thread
from . import mail_followers
from . import mail_thread_disable_auto_followers_config
27 changes: 27 additions & 0 deletions mail_thread_disable_auto_follower/models/mail_followers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2026 CIT Services
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

from odoo import models


class MailFollowers(models.AbstractModel):
_inherit = "mail.followers"

def _get_subscription_data(
self, doc_data, pids, include_pshare=False, include_active=False
):
res = super()._get_subscription_data(
doc_data, pids, include_pshare=include_pshare, include_active=include_active
)
daf_models = self.env.context.get("mail_thread_disable_auto_followers", [])
if (
self.env.context.get("mail_create_nosubscribe")
and self.env.context.get("active_model") in daf_models
):
res_out = []
for row in res:
row_list = list(row)
row_list[2] = None # Replace partner_id (index 2) with None
res_out.append(tuple(row_list))
return res_out
return res
Loading
Loading