You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 lines
1.9 KiB

# -*- coding: utf-8 -*-
# © 2016 Antiun Ingeniería S.L. - Jairo Llopis
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import _, api, models, tools
class MailNotification(models.Model):
_inherit = "mail.notification"
@api.model
def get_signature_footer(self, user_id, res_model=None, res_id=None,
user_signature=True):
"""Generate signature footer only with the chosen parts.
Now, you can set ``skip_signature_user=True`` in the context to remove
the user signature (it's the same as ``user_signature=False``), and
``skip_signature_company=True`` to remove the company's.
"""
user = self.env["res.users"].browse(user_id)
parts = list()
if user_signature and not self.env.context.get("skip_signature_user"):
parts.append(self._get_signature_footer_user(user))
if not self.env.context.get("skip_signature_company"):
parts.append(self._get_signature_footer_company(user))
footer = ""
for part in parts:
footer = tools.append_content_to_html(
footer, part, plaintext=False)
return footer
@api.model
def _get_signature_footer_user(self, user):
"""User part of the signature."""
return user.signature if user.signature else "--<br />%s" % user.name
def _get_signature_footer_company(self, user):
"""Company part of the signature."""
website = user.company_id.website
if website:
if not website.startswith(('http:', 'https:')):
website = "http://" + website
company = ("<a style='color:inherit' href='%s'>%s</a>" %
(website, user.company_id.name))
else:
company = user.company_id.name
sent_by = _('Sent by %s') % company
return '<br /><small>%s</small>' % sent_by