Thibault Delavallée (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk-chatter-reaches-light-speed-tde into lp:openobject-addons.
Requested reviews: OpenERP Core Team (openerp) For more details, see: https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-chatter-reaches-light-speed-tde/+merge/135717 Chatter, needaction: make it fast ! -- https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-chatter-reaches-light-speed-tde/+merge/135717 Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-chatter-reaches-light-speed-tde.
=== modified file 'mail/mail_thread.py' --- mail/mail_thread.py 2012-11-20 09:05:12 +0000 +++ mail/mail_thread.py 2012-11-22 15:29:23 +0000 @@ -121,18 +121,15 @@ return res - def _search_unread(self, cr, uid, obj=None, name=None, domain=None, context=None): - partner_id = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] - res = {} - notif_obj = self.pool.get('mail.notification') - notif_ids = notif_obj.search(cr, uid, [ - ('partner_id', '=', partner_id), - ('message_id.model', '=', self._name), - ('read', '=', False) - ], context=context) - for notif in notif_obj.browse(cr, uid, notif_ids, context=context): - res[notif.message_id.res_id] = True - return [('id', 'in', res.keys())] + def _search_message_unread(self, cr, uid, obj=None, name=None, domain=None, context=None): + user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0] + cr.execute(""" SELECT DISTINCT m.res_id FROM mail_message m + JOIN mail_notification n + ON (n.message_id = m.id AND n.partner_id = %s AND (n.read = False or n.read IS NULL)) + WHERE m.model = %s""", + (user_pid, self._name,)) + res_ids = [result[0] for result in cr.fetchall()] + return [('id', 'in', res_ids)] def _get_followers(self, cr, uid, ids, name, arg, context=None): fol_obj = self.pool.get('mail.followers') @@ -209,7 +206,7 @@ domain=lambda self: [('model', '=', self._name)], string='Messages', help="Messages and communication history"), - 'message_unread': fields.function(_get_message_data, fnct_search=_search_unread, + 'message_unread': fields.function(_get_message_data, fnct_search=_search_message_unread, type='boolean', string='Unread Messages', multi="_get_message_data", help="If checked new messages require your attention."), 'message_summary': fields.function(_get_message_data, method=True,
_______________________________________________ Mailing list: https://launchpad.net/~openerp-dev-gtk Post to : openerp-dev-gtk@lists.launchpad.net Unsubscribe : https://launchpad.net/~openerp-dev-gtk More help : https://help.launchpad.net/ListHelp