diff --git a/addons/calendar/models/calendar_event.py b/addons/calendar/models/calendar_event.py index 07ccd0ba0d1..3b6252a0e03 100644 --- a/addons/calendar/models/calendar_event.py +++ b/addons/calendar/models/calendar_event.py @@ -550,6 +550,21 @@ class Meeting(models.Model): return True + def name_get(self): + """ Hide private events' name for events which don't belong to the current user + """ + hidden = self.filtered( + lambda evt: + evt.privacy == 'private' and + evt.user_id.id != self.env.uid and + self.env.user.partner_id not in evt.partner_ids + ) + + shown = self - hidden + shown_names = super(Meeting, shown).name_get() + obfuscated_names = [(eid, _('Busy')) for eid in hidden.ids] + return shown_names + obfuscated_names + @api.model def read_group(self, domain, fields, groupby, offset=0, limit=None, orderby=False, lazy=True): groupby = [groupby] if isinstance(groupby, str) else groupby