[IMP] website_mail_group: display previous / next message when browsing + take into...
authorThibault Delavallée <tde@openerp.com>
Fri, 23 May 2014 11:17:33 +0000 (13:17 +0200)
committerThibault Delavallée <tde@openerp.com>
Fri, 23 May 2014 11:17:33 +0000 (13:17 +0200)
addons/website_mail_group/controllers/main.py
addons/website_mail_group/views/website_mail_group.xml

index 56bc479..7320ebc 100644 (file)
@@ -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)
 
index b187f6f..76edd52 100644 (file)
                     </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&amp;field=author_avatar&amp;id='+str(message.id)"/>