From 9fadd0b04cab4fc54526a1f4dcafc2e77d3f6050 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Thibault=20Delavall=C3=A9e?= Date: Fri, 23 May 2014 13:17:33 +0200 Subject: [PATCH] [IMP] website_mail_group: display previous / next message when browsing + take into account thread or date mode. --- addons/website_mail_group/controllers/main.py | 15 +++++++++++++++ addons/website_mail_group/views/website_mail_group.xml | 12 ++++++++++++ 2 files changed, 27 insertions(+) diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index 56bc479..7320ebc 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -83,6 +83,19 @@ class MailGroup(http.Controller): ], type='http', auth="public", website=True) def thread_discussion(self, group, message, mode='thread', date_begin=None, date_end=None, **post): cr, uid, context = request.cr, request.uid, request.context + Message = request.registry['mail.message'] + if mode == 'thread': + base_domain = [('model', '=', 'mail.group'), ('res_id', '=', group.id), ('parent_id', '=', message.parent_id and message.parent_id.id or False)] + else: + base_domain = [('model', '=', 'mail.group'), ('res_id', '=', group.id)] + next_message = None + next_message_ids = Message.search(cr, uid, base_domain + [('date', '<', message.date)], order="date DESC", limit=1, context=context) + if next_message_ids: + next_message = Message.browse(cr, uid, next_message_ids[0], context=context) + prev_message = None + prev_message_ids = Message.search(cr, uid, base_domain + [('date', '>', message.date)], order="date ASC", limit=1, context=context) + if prev_message_ids: + prev_message = Message.browse(cr, uid, prev_message_ids[0], context=context) values = { 'message': message, 'group': group, @@ -91,6 +104,8 @@ class MailGroup(http.Controller): 'date_begin': date_begin, 'date_end': date_end, 'replies_per_page': self._replies_per_page, + 'next_message': next_message, + 'prev_message': prev_message, } return request.website.render('website_mail_group.group_message', values) diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index b187f6f..76edd52 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -151,6 +151,18 @@
+
+

+ + + +

+

+ + + +

+
-- 1.7.10.4