summaryrefslogtreecommitdiff
path: root/addons/website_mail_group
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2014-07-16 22:51:43 +0200
committerOlivier Dony <odo@openerp.com>2014-07-16 23:21:30 +0200
commit6ac1deccf64e35de062ed960f84bd8a794d310d4 (patch)
tree05bfb24b38c1f22fe8e0af43b7bab28c46432309 /addons/website_mail_group
parent99556240299a8350f7b73534056e19ed2b1b3b39 (diff)
[FIX] mail, website_mail: specific mailing-list footer + better unsubscribe option
- remove the default footer for mail.group messages, replace with specific footer with archive and unsubscribe link - remove the automatic addition of user signature in mail.group messages, as many of them will be posted via the mail gateway and already contain a user signature. - make it easier to unsubscribe even when not logged in, as followers who have not signed up will have no way to login short of signing up. - remove tests looking for user signature in mail.group posts
Diffstat (limited to 'addons/website_mail_group')
-rw-r--r--addons/website_mail_group/models/mail_group.py36
-rw-r--r--addons/website_mail_group/views/website_mail_group.xml3
2 files changed, 38 insertions, 1 deletions
diff --git a/addons/website_mail_group/models/mail_group.py b/addons/website_mail_group/models/mail_group.py
index 804785b66f9..a0d2c69d969 100644
--- a/addons/website_mail_group/models/mail_group.py
+++ b/addons/website_mail_group/models/mail_group.py
@@ -1,6 +1,8 @@
# -*- coding: utf-8 -*-
from openerp.osv import osv
+from openerp import tools
+from openerp.tools.translate import _
class MailGroup(osv.Model):
@@ -13,6 +15,38 @@ class MailGroup(osv.Model):
res['headers'].update({
'List-Archive': '<%s/groups/%s>' % (base_url, group.id),
'List-Subscribe': '<%s/groups>' % (base_url),
- 'List-Unsubscribe': '<%s/groups>' % (base_url),
+ 'List-Unsubscribe': '<%s/groups?unsubscribe>' % (base_url,),
})
return res
+
+
+class MailMail(osv.Model):
+ _inherit = 'mail.mail'
+
+ def send_get_mail_body(self, cr, uid, mail, partner=None, context=None):
+ """ Short-circuit parent method for mail groups, replace the default
+ footer with one appropriate for mailing-lists."""
+
+ if mail.model == 'mail.group' and mail.res_id:
+ # no super() call on purpose, no private links that could be quoted!
+ group = self.pool['mail.group'].browse(cr, uid, mail.res_id, context=context)
+ base_url = self.pool['ir.config_parameter'].get_param(cr, uid, 'web.base.url')
+ vals = {
+ 'maillist': _('Mailing-List'),
+ 'post_to': _('Post to'),
+ 'unsub': _('Unsubscribe'),
+ 'mailto': 'mailto:%s@%s' % (group.alias_name, group.alias_domain),
+ 'group_url': '%s/groups/%s' % (base_url, group.id),
+ 'unsub_url': '%s/groups?unsubscribe' % (base_url,),
+ }
+ footer = """_______________________________________________
+ %(maillist)s: %(group_url)s
+ %(post_to)s: %(mailto)s
+ %(unsub)s: %(unsub_url)s
+ """ % vals
+ body = tools.append_content_to_html(mail.body, footer, container_tag='div')
+ return body
+ else:
+ return super(MailMail, self).send_get_mail_body(cr, uid, mail,
+ partner=partner,
+ context=context)
diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml
index 21f046fc70b..4742c65c346 100644
--- a/addons/website_mail_group/views/website_mail_group.xml
+++ b/addons/website_mail_group/views/website_mail_group.xml
@@ -26,6 +26,9 @@
</section>
</div>
<div class="container mt32">
+ <div t-if="'unsubscribe' in request.params" class="col-md-offset-9 col-md-3 alert alert-info">
+ <h3>Looking to unsubscribe? It's right here! <span class="fa fa-2x fa-arrow-down pull-right"></span></h3>
+ </div>
<div class="row mt8" t-foreach="groups" t-as="group">
<div class="col-md-3">
<img t-att-src="'/website/image?model=mail.group&amp;field=image_small&amp;id='+str(group['id'])" class="pull-left"/>