summaryrefslogtreecommitdiff
path: root/addons/website_mail_group/controllers/main.py
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-06-12 13:45:21 +0200
committerThibault Delavallée <tde@openerp.com>2014-06-12 13:45:21 +0200
commit15f5abcbbef8aa6da6590ec8848261349ebebf84 (patch)
tree8bae3ed3901f9a61e972df5326b1e2bf4bbdf665 /addons/website_mail_group/controllers/main.py
parent907862655aea7db5eea3b27613c470e4afc5eaf5 (diff)
[IMP] mail, website_mail_group: discussion group improvements
- added possibility in mail to have a model adding custom headers in emails sent for notifications for new messages - mail.group now add list-id and precedence: list in the headers to inform mailing systems that those mails are to be considered as mailing lists - website_mail_group adds some further data in the headers (subscribe, unsubscribe, archives) - groups page now display the number of message in the last month - notification emails are now queued after 50 recipients
Diffstat (limited to 'addons/website_mail_group/controllers/main.py')
-rw-r--r--addons/website_mail_group/controllers/main.py16
1 files changed, 14 insertions, 2 deletions
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: