summaryrefslogtreecommitdiff
path: root/addons/website_mail_group
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-06-30 11:32:55 +0200
committerThibault Delavallée <tde@openerp.com>2014-06-30 11:32:55 +0200
commitba4454ccfb9fc2de2dca0f7cd753ddb453b5f2fe (patch)
treef2bb109fb60bb9d285e6526fe10734d6733e7714 /addons/website_mail_group
parent58ad25d0e3f002a630698bd7627657d27490b40e (diff)
parent2c45b7162ce8d067123c54fa7d191c54fd024739 (diff)
Merge pull request #830 from odoo-dev/saas-4-mailing-lists-imp-tde
[IMP] [BACKPORT] Mailing lists usability improvements: headers related t...
Diffstat (limited to 'addons/website_mail_group')
-rw-r--r--addons/website_mail_group/__init__.py1
-rw-r--r--addons/website_mail_group/controllers/main.py16
-rw-r--r--addons/website_mail_group/models/__init__.py1
-rw-r--r--addons/website_mail_group/models/mail_group.py18
-rw-r--r--addons/website_mail_group/views/website_mail_group.xml2
5 files changed, 35 insertions, 3 deletions
diff --git a/addons/website_mail_group/__init__.py b/addons/website_mail_group/__init__.py
index ee5959455ad..9f86759e32b 100644
--- a/addons/website_mail_group/__init__.py
+++ b/addons/website_mail_group/__init__.py
@@ -1 +1,2 @@
import controllers
+import models
diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py
index a28b808d9f2..59478b37fa3 100644
--- a/addons/website_mail_group/controllers/main.py
+++ b/addons/website_mail_group/controllers/main.py
@@ -1,8 +1,9 @@
# -*- coding: utf-8 -*-
import datetime
+from dateutil import relativedelta
-from openerp import tools
+from openerp import tools, SUPERUSER_ID
from openerp.addons.web import http
from openerp.addons.website.models.website import slug
from openerp.addons.web.http import request
@@ -28,12 +29,23 @@ class MailGroup(http.Controller):
def view(self, **post):
cr, uid, context = request.cr, request.uid, request.context
group_obj = request.registry.get('mail.group')
+ mail_message_obj = request.registry.get('mail.message')
group_ids = group_obj.search(cr, uid, [('alias_id', '!=', False), ('alias_id.alias_name', '!=', False)], context=context)
- values = {'groups': group_obj.browse(cr, uid, group_ids, context)}
+ groups = group_obj.browse(cr, uid, group_ids, context)
+ # compute statistics
+ month_date = datetime.datetime.today() - relativedelta.relativedelta(months=1)
+ group_data = dict.fromkeys(group_ids, dict())
+ for group in groups:
+ group_data[group.id]['monthly_message_nbr'] = mail_message_obj.search(
+ cr, SUPERUSER_ID,
+ [('model', '=', 'mail.group'), ('res_id', '=', group.id), ('date', '>=', month_date.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT))],
+ count=True, context=context)
+ values = {'groups': groups, 'group_data': group_data}
return request.website.render('website_mail_group.mail_groups', values)
@http.route(["/groups/subscription/"], type='json', auth="user")
def subscription(self, group_id=0, action=False, **post):
+ """ TDE FIXME: seems dead code """
cr, uid, context = request.cr, request.uid, request.context
group_obj = request.registry.get('mail.group')
if action:
diff --git a/addons/website_mail_group/models/__init__.py b/addons/website_mail_group/models/__init__.py
new file mode 100644
index 00000000000..ea8be51acde
--- /dev/null
+++ b/addons/website_mail_group/models/__init__.py
@@ -0,0 +1 @@
+import mail_group
diff --git a/addons/website_mail_group/models/mail_group.py b/addons/website_mail_group/models/mail_group.py
new file mode 100644
index 00000000000..804785b66f9
--- /dev/null
+++ b/addons/website_mail_group/models/mail_group.py
@@ -0,0 +1,18 @@
+# -*- coding: utf-8 -*-
+
+from openerp.osv import osv
+
+
+class MailGroup(osv.Model):
+ _inherit = 'mail.group'
+
+ def message_get_email_values(self, cr, uid, id, notif_mail=None, context=None):
+ res = super(MailGroup, self).message_get_email_values(cr, uid, id, notif_mail=notif_mail, context=context)
+ group = self.browse(cr, uid, id, context=context)
+ base_url = self.pool['ir.config_parameter'].get_param(cr, uid, 'web.base.url')
+ res['headers'].update({
+ 'List-Archive': '<%s/groups/%s>' % (base_url, group.id),
+ 'List-Subscribe': '<%s/groups>' % (base_url),
+ 'List-Unsubscribe': '<%s/groups>' % (base_url),
+ })
+ return res
diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml
index 1c0ee08edd4..21f046fc70b 100644
--- a/addons/website_mail_group/views/website_mail_group.xml
+++ b/addons/website_mail_group/views/website_mail_group.xml
@@ -40,7 +40,7 @@
</div>
<div class="col-md-2">
<i class='fa fa-user'/> <t t-esc="len(group.message_follower_ids)"/> participants<br />
- <i class='fa fa-envelope-o'/> <t t-esc="len(group.message_ids)"/> messages
+ <i class='fa fa-envelope-o'/> <t t-raw="group_data[group.id]['monthly_message_nbr']"/> messages / month
</div>
<div class="col-md-3">
<t t-call="website_mail.follow"><t t-set="object" t-value="group"/></t>