summaryrefslogtreecommitdiff
path: root/addons/mail/models
diff options
context:
space:
mode:
authorJigar Patel <jat@openerp.com>2016-03-25 16:39:12 +0530
committerYannick Tivisse <yti@odoo.com>2016-04-08 13:41:01 +0200
commit253d4eccf0001c5ede843cb29c1ce4f69fc6fbd0 (patch)
tree0c53a3819a2984672c8261945e71e8bb6013b089 /addons/mail/models
parente4ae6a80bb2d95a85d222d9012282919d5ebac0f (diff)
[IMP] mail: Add counter in starred
Diffstat (limited to 'addons/mail/models')
-rw-r--r--addons/mail/models/mail_message.py7
-rw-r--r--addons/mail/models/res_partner.py12
2 files changed, 15 insertions, 4 deletions
diff --git a/addons/mail/models/mail_message.py b/addons/mail/models/mail_message.py
index 949cef23138..c054b6e10a3 100644
--- a/addons/mail/models/mail_message.py
+++ b/addons/mail/models/mail_message.py
@@ -237,14 +237,13 @@ class Message(models.Model):
self.env['bus.bus'].sendone((self._cr.dbname, 'res.partner', self.env.user.partner_id.id), notification)
@api.multi
- def set_message_starred(self, starred):
- """ Set messages as (un)starred. Technically, the notifications related
+ def toggle_message_starred(self):
+ """ Toggle messages as (un)starred. Technically, the notifications related
to uid are set to (un)starred.
-
- :param bool starred: set notification as (un)starred
"""
# a user should always be able to star a message he can read
self.check_access_rule('read')
+ starred = not self.starred
if starred:
self.sudo().write({'starred_partner_ids': [(4, self.env.user.partner_id.id)]})
else:
diff --git a/addons/mail/models/res_partner.py b/addons/mail/models/res_partner.py
index 5e3f4685282..46012ce2447 100644
--- a/addons/mail/models/res_partner.py
+++ b/addons/mail/models/res_partner.py
@@ -228,6 +228,18 @@ class Partner(models.Model):
return 0
@api.model
+ def get_starred_count(self):
+ """ compute the number of starred of the current user """
+ if self.env.user.partner_id:
+ self.env.cr.execute("""
+ SELECT count(*) as starred_count
+ FROM mail_message_res_partner_starred_rel R
+ WHERE R.res_partner_id = %s """, (self.env.user.partner_id.id,))
+ return self.env.cr.dictfetchall()[0].get('starred_count')
+ _logger.error('Call to starred_count without partner_id')
+ return 0
+
+ @api.model
def get_static_mention_suggestions(self):
""" To be overwritten to return the id, name and email of partners used as static mention
suggestions loaded once at webclient initialization and stored client side. """