diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py index 481109a8ebe..719dfad161b 100644 --- a/addons/mail/mail_group.py +++ b/addons/mail/mail_group.py @@ -24,7 +24,7 @@ import openerp.tools as tools from openerp.osv import osv from openerp.osv import fields from openerp import SUPERUSER_ID - +from openerp.tools.translate import _ class mail_group(osv.Model): """ A mail_group is a collection of users sharing messages in a discussion @@ -172,6 +172,12 @@ class mail_group(osv.Model): mail_alias = self.pool.get('mail.alias') alias_ids = [group.alias_id.id for group in groups if group.alias_id] # Delete mail_group + try: + all_emp_group = self.pool['ir.model.data'].get_object_reference(cr, uid, 'mail', 'group_all_employees')[1] + except ValueError: + all_emp_group = None + if all_emp_group and all_emp_group in ids: + raise osv.except_osv(_('Warning!'), _('You cannot delete those groups, as the Whole Company group is required by other modules.')) res = super(mail_group, self).unlink(cr, uid, ids, context=context) # Delete alias mail_alias.unlink(cr, SUPERUSER_ID, alias_ids, context=context) diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py index 942daddd439..384fc6d6642 100644 --- a/addons/mail/mail_thread.py +++ b/addons/mail/mail_thread.py @@ -951,7 +951,7 @@ class mail_thread(osv.AbstractModel): return result if partner and partner in obj.message_follower_ids: # recipient already in the followers -> skip return result - if partner and partner in [val[0] for val in result[obj.id]]: # already existing partner ID -> skip + if partner and partner.id in [val[0] for val in result[obj.id]]: # already existing partner ID -> skip return result if partner and partner.email: # complete profile: id, name result[obj.id].append((partner.id, '%s<%s>' % (partner.name, partner.email), reason)) diff --git a/openerp/tools/mail.py b/openerp/tools/mail.py index 1f3e9c1b019..7e2c79800bd 100644 --- a/openerp/tools/mail.py +++ b/openerp/tools/mail.py @@ -211,10 +211,11 @@ def html2plaintext(html, body_id=None, encoding='utf-8'): html = re.sub('', '\n', html) html = re.sub('<.*?>', ' ', html) html = html.replace(' ' * 2, ' ') + html = html.replace('>', '>') + html = html.replace('<', '<') # strip all lines - html = '\n'.join([x.strip() for x in html.splitlines()]) - html = html.replace('\n' * 2, '\n') + html = ''.join([x.strip() for x in html.splitlines(True)]) for i, url in enumerate(url_index): if i == 0: