summaryrefslogtreecommitdiff
path: root/addons/website_mail_group/controllers
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@openerp.com>2015-01-20 18:39:05 +0100
committerFabien Pinckaers <fp@openerp.com>2015-01-20 18:39:05 +0100
commitce8d894e4b2e4688dc545d806cfd62bfe5fd6c9a (patch)
tree27771cbb94b7cb306408e855385f75822f22e3a2 /addons/website_mail_group/controllers
parent9135d677e898956067000759335767e062349bb2 (diff)
[IMP] speed improvements /groups
Diffstat (limited to 'addons/website_mail_group/controllers')
-rw-r--r--addons/website_mail_group/controllers/main.py15
1 files changed, 10 insertions, 5 deletions
diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py
index 0e45a1663cf..66cb32f3194 100644
--- a/addons/website_mail_group/controllers/main.py
+++ b/addons/website_mail_group/controllers/main.py
@@ -32,15 +32,20 @@ class MailGroup(http.Controller):
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)
groups = group_obj.browse(cr, uid, group_ids, context)
+
# compute statistics
month_date = datetime.datetime.today() - relativedelta.relativedelta(months=1)
+ result = mail_message_obj.read_group(
+ cr, SUPERUSER_ID,
+ [('model', '=', 'mail.group'), ('date', '>=', month_date.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT))],
+ [], ['res_id'],
+ context=context)
+ result = dict([(x['res_id'], x['res_id_count']) for x in result])
+
group_data = 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)}
+ group_data[group.id] = {'monthly_message_nbr': result.get(group.id, 0)}
+
values = {'groups': groups, 'group_data': group_data}
return request.website.render('website_mail_group.mail_groups', values)