IMP mail_show_follower metadata and style
Display CC according to notification_type
This commit is contained in:
parent
ea1424a476
commit
87329aebb7
@ -1,82 +0,0 @@
|
|||||||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg
|
|
||||||
:target: http://www.gnu.org/licenses/agpl
|
|
||||||
:alt: License: AGPL-3
|
|
||||||
|
|
||||||
==================
|
|
||||||
Mail Show Follower
|
|
||||||
==================
|
|
||||||
|
|
||||||
This module extends the functionality of mailing to show the document followers in head of the mails.
|
|
||||||
In the cc, only appear when:
|
|
||||||
|
|
||||||
#. The followers only count if are contacts or external users (Inner Followers will be discriminated)
|
|
||||||
#. The number of followers are more than 1.
|
|
||||||
|
|
||||||
|
|
||||||
Installation
|
|
||||||
============
|
|
||||||
|
|
||||||
To install this module, you need to:
|
|
||||||
|
|
||||||
#. Only install.
|
|
||||||
|
|
||||||
|
|
||||||
Configuration
|
|
||||||
=============
|
|
||||||
|
|
||||||
To configure this module, you need to:
|
|
||||||
|
|
||||||
#. Go General settings/Discuss/Show Internal Users CC and set if want to show or not internal users in cc details.
|
|
||||||
#. Go Settings/Users & Company salect any user in 'Preferences' check or not the 'Show in CC' field if this user need to appear in the cc note.
|
|
||||||
|
|
||||||
|
|
||||||
Usage
|
|
||||||
=====
|
|
||||||
|
|
||||||
To use this module, you need to:
|
|
||||||
|
|
||||||
#. Send an email from any document of odoo.
|
|
||||||
|
|
||||||
|
|
||||||
ROADMAP
|
|
||||||
=======
|
|
||||||
|
|
||||||
|
|
||||||
* ...
|
|
||||||
|
|
||||||
|
|
||||||
Bug Tracker
|
|
||||||
===========
|
|
||||||
|
|
||||||
Bugs and errors are managed in `issues of GitHub <https://github.com/sygel-technology/sy-server-backend/issues>`_.
|
|
||||||
In case of problems, please check if your problem has already been
|
|
||||||
reported. If you are the first to discover it, help us solving it by indicating
|
|
||||||
a detailed description `here <https://github.com/sygel-technology/sy-server-backend/issues/new>`_.
|
|
||||||
|
|
||||||
Do not contact contributors directly about support or help with technical issues.
|
|
||||||
|
|
||||||
|
|
||||||
Credits
|
|
||||||
=======
|
|
||||||
|
|
||||||
Authors
|
|
||||||
~~~~~~~
|
|
||||||
|
|
||||||
* Sygel, Odoo Community Association (OCA)
|
|
||||||
|
|
||||||
|
|
||||||
Contributors
|
|
||||||
~~~~~~~~~~~~
|
|
||||||
|
|
||||||
* Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
|
|
||||||
|
|
||||||
Maintainer
|
|
||||||
~~~~~~~~~~
|
|
||||||
|
|
||||||
This module is maintained by Sygel.
|
|
||||||
|
|
||||||
|
|
||||||
This module is part of the `Sygel/sy-server-backend <https://github.com/sygel-technology/sy-server-backend>`_.
|
|
||||||
|
|
||||||
To contribute to this module, please visit https://github.com/sygel-technology.
|
|
@ -1,4 +1 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
"summary": "Show CC document followers in mails.",
|
"summary": "Show CC document followers in mails.",
|
||||||
"version": "12.0.1.0.0",
|
"version": "12.0.1.0.0",
|
||||||
"category": "Mail",
|
"category": "Mail",
|
||||||
"website": "https://www.sygel.es",
|
"website": "https://github.com/OCA/social",
|
||||||
"author": "Sygel, Odoo Community Association (OCA)",
|
"author": "Sygel, Odoo Community Association (OCA)",
|
||||||
"license": "AGPL-3",
|
"license": "AGPL-3",
|
||||||
"application": False,
|
"application": False,
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from . import mail_mail
|
from . import mail_mail
|
||||||
from . import res_company
|
from . import res_company
|
||||||
from . import res_config_settings
|
from . import res_config_settings
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import models, api
|
from odoo import models, api
|
||||||
|
|
||||||
|
|
||||||
@ -9,7 +6,12 @@ class MailMail(models.Model):
|
|||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def _send(self, auto_commit=False, raise_exception=False, smtp_session=None):
|
def _send(self, auto_commit=False, raise_exception=False, smtp_session=None):
|
||||||
plain_text = '<div summary="o_mail_notification" style="padding: 0px; font-size: 10px;"><b>CC</b>: %s<hr style="background-color:rgb(204,204,204);border:medium none;clear:both;display:block;font-size:0px;min-height:1px;line-height:0; margin:4px 0 12px 0;"></div>'
|
plain_text = (
|
||||||
|
'<div summary="o_mail_notification" style="padding: 0px; '
|
||||||
|
'font-size: 10px;"><b>CC</b>: %s<hr style="background-color:'
|
||||||
|
'rgb(204,204,204);border:medium none;clear:both;display:block;'
|
||||||
|
'font-size:0px;min-height:1px;line-height:0; margin:4px 0 12px 0;"></div>'
|
||||||
|
)
|
||||||
group_portal = self.env.ref('base.group_portal')
|
group_portal = self.env.ref('base.group_portal')
|
||||||
for mail_id in self.ids:
|
for mail_id in self.ids:
|
||||||
mail = self.browse(mail_id)
|
mail = self.browse(mail_id)
|
||||||
@ -25,27 +27,43 @@ class MailMail(models.Model):
|
|||||||
user_partner_ids = self.env['res.users'].search([
|
user_partner_ids = self.env['res.users'].search([
|
||||||
('active', 'in', (True, False)),
|
('active', 'in', (True, False)),
|
||||||
('show_in_cc', '=', False),
|
('show_in_cc', '=', False),
|
||||||
]).filtered(lambda x: not group_portal in x.groups_id).mapped('partner_id').ids
|
]).filtered(
|
||||||
|
lambda x: group_portal not in x.groups_id
|
||||||
|
).mapped('partner_id').ids
|
||||||
partners_len = len(partners_obj.filtered(
|
partners_len = len(partners_obj.filtered(
|
||||||
lambda x: x.id not in user_partner_ids and (not x.user_ids or group_portal in x.user_ids.groups_id)
|
lambda x: x.id not in user_partner_ids and (
|
||||||
))
|
not x.user_ids or group_portal in x.user_ids.groups_id
|
||||||
|
)))
|
||||||
if partners_len > 1:
|
if partners_len > 1:
|
||||||
# get partners
|
# get partners
|
||||||
partners = None
|
|
||||||
cc_internal = True
|
cc_internal = True
|
||||||
# else get company in object
|
# else get company in object
|
||||||
if hasattr(obj, "company_id") and obj.company_id:
|
if hasattr(obj, "company_id") and obj.company_id:
|
||||||
cc_internal = obj.company_id.show_internal_users_cc
|
cc_internal = obj.company_id.show_internal_users_cc
|
||||||
# get company in user
|
# get company in user
|
||||||
elif mail.env and mail.env.user and mail.env.user.company_id:
|
elif mail.env and mail.env.user and mail.env.user.company_id:
|
||||||
cc_internal = self.env.user.company_id.show_internal_users_cc
|
cc_internal = self.env.user.company_id.\
|
||||||
|
show_internal_users_cc
|
||||||
if cc_internal:
|
if cc_internal:
|
||||||
partners = partners_obj.filtered(
|
partners = partners_obj.filtered(
|
||||||
lambda x: x.id not in user_partner_ids and (not x.user_ids or x.user_ids.show_in_cc)
|
lambda x: x.id not in user_partner_ids and (
|
||||||
|
not x.user_ids or x.user_ids.show_in_cc
|
||||||
|
)
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
partners = partners_obj.filtered(
|
partners = partners_obj.filtered(
|
||||||
lambda x: x.id not in user_partner_ids and (not x.user_ids or group_portal in x.user_ids.groups_id)
|
lambda x: x.id not in user_partner_ids and (
|
||||||
|
not x.user_ids or group_portal in
|
||||||
|
x.user_ids.groups_id
|
||||||
|
)
|
||||||
|
)
|
||||||
|
partners = partners.filtered(
|
||||||
|
lambda x:
|
||||||
|
not x.user_ids
|
||||||
|
or
|
||||||
|
# otherwise, email is not sent
|
||||||
|
x.user_ids and "email" in x.user_ids.mapped(
|
||||||
|
"notification_type")
|
||||||
)
|
)
|
||||||
# get names and emails
|
# get names and emails
|
||||||
final_cc = None
|
final_cc = None
|
||||||
@ -57,4 +75,7 @@ class MailMail(models.Model):
|
|||||||
# it is saved in the body_html field so that it does
|
# it is saved in the body_html field so that it does
|
||||||
# not appear in the odoo log
|
# not appear in the odoo log
|
||||||
mail.body_html = final_cc + mail.body_html
|
mail.body_html = final_cc + mail.body_html
|
||||||
return super(MailMail, self)._send(auto_commit=auto_commit, raise_exception=raise_exception, smtp_session=smtp_session)
|
return super(MailMail, self)._send(
|
||||||
|
auto_commit=auto_commit, raise_exception=raise_exception,
|
||||||
|
smtp_session=smtp_session
|
||||||
|
)
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import models, fields
|
from odoo import models, fields
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import fields, models
|
from odoo import fields, models
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,6 +1,3 @@
|
|||||||
# Copyright 2020 Valentin Vinagre <valentin.vinagre@sygel.es>
|
|
||||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
|
|
||||||
|
|
||||||
from odoo import models, fields
|
from odoo import models, fields
|
||||||
|
|
||||||
|
|
||||||
|
4
mail_show_follower/readme/CONFIGURE.rst
Normal file
4
mail_show_follower/readme/CONFIGURE.rst
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
To configure this module, you need to:
|
||||||
|
|
||||||
|
#. Go General settings/Discuss/Show Internal Users CC and set if want to show or not internal users in cc details.
|
||||||
|
#. Go Settings/Users & Company salect any user in 'Preferences' check or not the 'Show in CC' field if this user need to appear in the cc note.
|
2
mail_show_follower/readme/CONTRIBUTORS.rst
Normal file
2
mail_show_follower/readme/CONTRIBUTORS.rst
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
* Valentin Vinagre <valentin.vinagre@sygel.es>
|
||||||
|
* Lorenzo Battistini
|
5
mail_show_follower/readme/DESCRIPTION.rst
Normal file
5
mail_show_follower/readme/DESCRIPTION.rst
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
This module extends the functionality of mailing to show the document followers in head of the mails.
|
||||||
|
In the cc, only appear when:
|
||||||
|
|
||||||
|
#. The followers only count if are contacts or external users (Inner Followers will be discriminated)
|
||||||
|
#. The number of followers are more than 1.
|
3
mail_show_follower/readme/USAGE.rst
Normal file
3
mail_show_follower/readme/USAGE.rst
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
To use this module, you need to:
|
||||||
|
|
||||||
|
#. Send an email from any document of odoo.
|
Binary file not shown.
Before Width: | Height: | Size: 35 KiB |
Loading…
Reference in New Issue
Block a user