[IMP] website_mail_group: display previous / next message when browsing + take into account thread or date mode.
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
@@ -151,6 +151,18 @@
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="row">
|
||||
<h4 class="col-md-6">
|
||||
<t t-if="prev_message"><a t-attf-href='/groups/#{slug(group)}/#{slug(prev_message)}?#{mode and "mode=%s" % mode or ""}'>
|
||||
<i class="fa fa-arrow-left"/> <t t-esc="prev_message.description"/>
|
||||
</a></t>
|
||||
</h4>
|
||||
<h4 class="col-md-6">
|
||||
<t t-if="next_message"><a class="pull-right" t-attf-href='/groups/#{slug(group)}/#{slug(next_message)}?#{mode and "mode=%s" % mode or ""}'>
|
||||
<t t-esc="next_message.description"/> <i class="fa fa-arrow-right"/>
|
||||
</a></t>
|
||||
</h4>
|
||||
</div>
|
||||
<div class="media">
|
||||
<img class="img-rounded pull-left mt0 media-object o_mg_avatar"
|
||||
t-att-src="'/website/image?model=mail.message&field=author_avatar&id='+str(message.id)"/>
|
||||
|
||||
Reference in New Issue
Block a user