diff options
| author | Thibault Delavallée <tde@openerp.com> | 2014-06-30 11:32:55 +0200 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2014-06-30 11:32:55 +0200 |
| commit | ba4454ccfb9fc2de2dca0f7cd753ddb453b5f2fe (patch) | |
| tree | f2bb109fb60bb9d285e6526fe10734d6733e7714 /addons/website_mail_group | |
| parent | 58ad25d0e3f002a630698bd7627657d27490b40e (diff) | |
| parent | 2c45b7162ce8d067123c54fa7d191c54fd024739 (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__.py | 1 | ||||
| -rw-r--r-- | addons/website_mail_group/controllers/main.py | 16 | ||||
| -rw-r--r-- | addons/website_mail_group/models/__init__.py | 1 | ||||
| -rw-r--r-- | addons/website_mail_group/models/mail_group.py | 18 | ||||
| -rw-r--r-- | addons/website_mail_group/views/website_mail_group.xml | 2 |
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> |
