From 0d3d0e95636cf8ae0d52c650a28f505a89c3dc89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?=
Date: Wed, 5 Mar 2014 18:36:10 +0100
Subject: [PATCH] [IMP] mail: improved link in notification, now of form Sent
from using , about , access in
bzr revid: tde@openerp.com-20140305173610-yw71rophyt3iyfi4
---
addons/mail/mail_followers.py | 5 ++---
addons/mail/mail_mail.py | 17 ++++++++++++++---
addons/portal/mail_mail.py | 6 +++---
3 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/addons/mail/mail_followers.py b/addons/mail/mail_followers.py
index 0059df90530..260d4849040 100644
--- a/addons/mail/mail_followers.py
+++ b/addons/mail/mail_followers.py
@@ -115,8 +115,7 @@ class mail_notification(osv.Model):
Administrator
"""
footer = ""
@@ -138,7 +137,7 @@ class mail_notification(osv.Model):
company = "%s" % (website_url, user.company_id.name)
else:
company = user.company_id.name
- sent_by = _('Sent by %(company)s using %(openerp)s.')
+ sent_by = _('Sent from %(company)s using %(openerp)s')
signature_company = '%s' % (sent_by % {
'company': company,
'openerp': "OpenERP"
diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index a8726c16a0d..eb8aaf3356e 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -148,6 +148,8 @@ class mail_mail(osv.Model):
""" Generate URLs for links in mails:
- partner is an user and has read access to the document: direct link to document with model, res_id
"""
+ if context is None:
+ context = {}
if partner and partner.user_ids:
base_url = self.pool.get('ir.config_parameter').get_param(cr, uid, 'web.base.url')
# the parameters to encode for the query and fragment part of url
@@ -160,9 +162,9 @@ class mail_mail(osv.Model):
fragment['message_id'] = mail.mail_message_id.id
elif mail.model and mail.res_id:
fragment.update(model=mail.model, res_id=mail.res_id)
-
+
url = urljoin(base_url, "?%s#%s" % (urlencode(query), urlencode(fragment)))
- return _("""""") % url
+ return _("""""") % (url, context.get('model_name', ''), mail.record_name)
else:
return None
@@ -239,10 +241,19 @@ class mail_mail(osv.Model):
email sending process has failed
:return: True
"""
+ if context is None:
+ context = {}
ir_mail_server = self.pool.get('ir.mail_server')
-
for mail in self.browse(cr, SUPERUSER_ID, ids, context=context):
try:
+ # TDE note: remove me when model_id field is present on mail.message - done here to avoid doing it multiple times in the sub method
+ if mail.model:
+ model_id = self.pool['ir.model'].search(cr, SUPERUSER_ID, [('model', '=', mail.model)], context=context)[0]
+ model = self.pool['ir.model'].browse(cr, SUPERUSER_ID, model_id, context=context)
+ else:
+ model = None
+ if model:
+ context['model_name'] = model.name
# handle attachments
attachments = []
for attach in mail.attachment_ids:
diff --git a/addons/portal/mail_mail.py b/addons/portal/mail_mail.py
index 18eb15361a3..094b3223560 100644
--- a/addons/portal/mail_mail.py
+++ b/addons/portal/mail_mail.py
@@ -39,8 +39,8 @@ class mail_mail(osv.Model):
if partner and not partner.user_ids:
contex_signup = dict(context, signup_valid=True)
signup_url = partner_obj._get_signup_url_for_action(cr, SUPERUSER_ID, [partner.id],
- action='login', model=mail.model, res_id=mail.res_id,
- context=contex_signup)[partner.id]
- return _("""""") % signup_url
+ action='login', model=mail.model, res_id=mail.res_id,
+ context=contex_signup)[partner.id]
+ return _("""""") % (context.get('model_name', ''), mail.record_name, signup_url)
else:
return super(mail_mail, self)._get_partner_access_link(cr, uid, mail, partner=partner, context=context)