From c09249d62cc823853042707e5158d14bdd49a1ad Mon Sep 17 00:00:00 2001 From: kiplangatdan Date: Mon, 8 May 2017 18:33:56 +0300 Subject: [PATCH] [WIP][ADD][8.0]mail_message_auto_expand module --- mail_message_auto_expand/__init__.py | 3 ++ mail_message_auto_expand/__openerp__.py | 13 ++++++++ mail_message_auto_expand/mail.py | 28 ++++++++++++++++++ .../static/description/icon.png | Bin 0 -> 26361 bytes 4 files changed, 44 insertions(+) create mode 100644 mail_message_auto_expand/__init__.py create mode 100644 mail_message_auto_expand/__openerp__.py create mode 100644 mail_message_auto_expand/mail.py create mode 100644 mail_message_auto_expand/static/description/icon.png diff --git a/mail_message_auto_expand/__init__.py b/mail_message_auto_expand/__init__.py new file mode 100644 index 00000000..be592a82 --- /dev/null +++ b/mail_message_auto_expand/__init__.py @@ -0,0 +1,3 @@ +# -*- encoding: utf-8 -*- + +import mail \ No newline at end of file diff --git a/mail_message_auto_expand/__openerp__.py b/mail_message_auto_expand/__openerp__.py new file mode 100644 index 00000000..900410bb --- /dev/null +++ b/mail_message_auto_expand/__openerp__.py @@ -0,0 +1,13 @@ +{ + 'name': 'Mail Message Auto Expand', + 'version': '8.0', + 'summary': 'Expands the Read More Automatically', + 'description': '', + 'author': 'Sunflower IT', + 'website': 'http://www.sunflowerweb.nl', + 'category': 'Social Network', + 'images': [], + 'depends': ['mail'], + 'data': [], + 'installable': True, +} diff --git a/mail_message_auto_expand/mail.py b/mail_message_auto_expand/mail.py new file mode 100644 index 00000000..76237ef8 --- /dev/null +++ b/mail_message_auto_expand/mail.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# © 2017 Sunflower IT (http://sunflowerweb.nl) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +import logging +from openerp import _, api, models, tools +from openerp.tools import html_email_clean +from openerp.tools.translate import _ +from HTMLParser import HTMLParser +from openerp import SUPERUSER_ID, api +_logger = logging.getLogger(__name__) + + +class MailMessage(models.Model): + _inherit = 'mail.message' + + def _message_read_dict(self, cr, uid, message, parent_id=False, + context=None): + max_length = 10000 # Increase the max lenght + body_short = html_email_clean(message.body, remove=False, shorten=False, + max_length=max_length) # Disable shortening + ret = super(MailMessage, self)._message_read_dict(cr, uid, + message, + parent_id=parent_id, + context=context) + ret['body_short'] = body_short + return ret + + diff --git a/mail_message_auto_expand/static/description/icon.png b/mail_message_auto_expand/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..bc9b94148b1dd4d1862a56dc5754b7ec7929f8b4 GIT binary patch literal 26361 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 literal 0 HcmV?d00001