Browse Source

🆙1️⃣3️⃣ porting mail_private

Signed-off-by: Enigma228322 <safin@it-projects.info>
pull/349/head
Ubuntu 4 years ago
committed by Denis Mudarisov
parent
commit
183d9bcaed
No known key found for this signature in database GPG Key ID: B9AD74DAFB7B53DA
  1. 2
      mail_private/__manifest__.py
  2. 79
      mail_private/models.py
  3. 4
      mail_private/static/src/js/mail_private.js

2
mail_private/__manifest__.py

@ -25,7 +25,7 @@
"post_init_hook": None,
"uninstall_hook": None,
"auto_install": False,
"installable": False,
"installable": True,
# "demo_title": "{MODULE_NAME}",
# "demo_addons": [
# ],

79
mail_private/models.py

@ -11,6 +11,36 @@ class MailComposeMessage(models.TransientModel):
is_private = fields.Boolean(string="Send Internal Message")
class MailThread(models.AbstractModel):
_inherit = "mail.thread"
def _notify_thread(self, message, msg_vals=False, **kwargs):
# import wdb;wdb.set_trace()
self_sudo = self.sudo()
msg_vals = msg_vals if msg_vals else {}
return super(MailThread, self)._notify_thread(
message,
msg_vals
)
def _notify_compute_recipients(self, message, msg_vals):
recipient_data = super(MailThread, self)._notify_compute_recipients(
message, msg_vals
)
if (
"is_private" in message._context
):
pids = (
[x for x in msg_vals.get("partner_ids")]
if "partner_ids" in msg_vals
else self.sudo().partner_ids.ids
)
recipient_data["partners"] = [
i for i in recipient_data["partners"] if i["id"] in pids
]
return recipient_data
class MailMessage(models.Model):
_inherit = "mail.message"
@ -48,55 +78,6 @@ class MailMessage(models.Model):
# })
return result
def _notify(
self,
record,
msg_vals,
force_send=False,
send_after_commit=True,
model_description=False,
mail_auto_delete=True,
):
self_sudo = self.sudo()
msg_vals = msg_vals if msg_vals else {}
if (
"is_private" not in self_sudo._context
or not self_sudo._context["is_private"]
):
return super(MailMessage, self)._notify(
record,
msg_vals,
force_send,
send_after_commit,
model_description,
mail_auto_delete,
)
else:
rdata = self._notify_compute_internal_recipients(record, msg_vals)
return self._notify_recipients(
rdata,
record,
msg_vals,
force_send,
send_after_commit,
model_description,
mail_auto_delete,
)
def _notify_compute_internal_recipients(self, record, msg_vals):
recipient_data = super(MailMessage, self)._notify_compute_recipients(
record, msg_vals
)
pids = (
[x[1] for x in msg_vals.get("partner_ids")]
if "partner_ids" in msg_vals
else self.sudo().partner_ids.ids
)
recipient_data["partners"] = [
i for i in recipient_data["partners"] if i["id"] in pids
]
return recipient_data
def get_internal_users_ids(self):
internal_users_ids = self.env["res.users"].search([("share", "=", False)]).ids
return internal_users_ids

4
mail_private/static/src/js/mail_private.js

@ -88,7 +88,7 @@ odoo.define("mail_private", function(require) {
});
}
})
.fail(function() {
.guardedCatch(function() {
self._enableComposer();
});
});
@ -177,7 +177,7 @@ odoo.define("mail_private", function(require) {
def.resolve(message);
} else {
var check_suggested_partners = self._getCheckedSuggestedPartners();
self._checkSuggestedPartners(check_suggested_partners).done(
self._checkSuggestedPartners(check_suggested_partners).then(
function(partnerIDs) {
message.partner_ids = (message.partner_ids || []).concat(
partnerIDs

Loading…
Cancel
Save