diff options
| author | Christophe Simonis <chs@odoo.com> | 2018-08-27 16:44:17 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2018-08-27 16:44:17 +0200 |
| commit | 9947133361f4d6fc4c9cbb68e2e2230728fcdafd (patch) | |
| tree | 4fc266cd52f55d94f86d7df2ab75323e35fde99c /addons/mail/models/mail_activity.py | |
| parent | f7ead5fd50f4b6db2a1d4c947fc4e15dceedbbd7 (diff) | |
| parent | 40430699dfbba715b143c109ebae415074da9f40 (diff) | |
[MERGE] forward port branch saas-11.5 up to 40430699dfb
Diffstat (limited to 'addons/mail/models/mail_activity.py')
| -rw-r--r-- | addons/mail/models/mail_activity.py | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index bc3119af798..80d0cbcd13e 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -152,42 +152,6 @@ class MailActivity(models.Model): help='Technical field for UX purpose') mail_template_ids = fields.Many2many(related='activity_type_id.mail_template_ids') - @api.model - def get_activity_data(self, res_model, domain): - res = self.env[res_model].search(domain) - activity_domain = [('res_id', 'in', res.ids), ('res_model', '=', res_model)] - grouped_activities = self.env['mail.activity'].read_group(activity_domain, ['res_id', 'activity_type_id', 'res_name:max(res_name)', 'ids:array_agg(id)', 'date_deadline:min(date_deadline)'], ['res_id', 'activity_type_id'], lazy=False) - activity_type_ids = self.env['mail.activity.type'] - res_list = set() - activity_data = defaultdict(dict) - for group in grouped_activities: - res_id = group['res_id'] - res_name = group['res_name'] - activity_type_id = group['activity_type_id'][0] - activity_type_ids |= self.env['mail.activity.type'].browse(activity_type_id) # we will get the name when reading mail_template_ids - res_list.add((res_id, res_name)) - state = self._compute_state_from_date(group['date_deadline'], self.user_id.sudo().tz) - activity_data[res_id][activity_type_id] = { - 'count': group['__count'], - 'domain': group['__domain'], - 'ids': group['ids'], - 'state': state, - 'o_closest_deadline': group['date_deadline'], - } - activity_type_infos = [] - for elem in activity_type_ids: - mail_template_info = [] - for mail_template_id in elem.mail_template_ids: - mail_template_info.append({"id": mail_template_id.id, "name": mail_template_id.name}) - activity_type_infos.append([elem.id, elem.name, mail_template_info]) - - return { - 'activity_types': activity_type_infos, - 'res_ids': list(res_list), - 'grouped_activities': activity_data, - 'model': res_model, - } - @api.multi @api.onchange('previous_activity_type_id') def _compute_has_recommended_activities(self): @@ -435,6 +399,42 @@ class MailActivity(models.Model): activity['mail_template_ids'] = [mail_template_dict[mail_template_id] for mail_template_id in activity['mail_template_ids']] return activities + @api.model + def get_activity_data(self, res_model, domain): + res = self.env[res_model].search(domain) + activity_domain = [('res_id', 'in', res.ids), ('res_model', '=', res_model)] + grouped_activities = self.env['mail.activity'].read_group(activity_domain, ['res_id', 'activity_type_id', 'res_name:max(res_name)', 'ids:array_agg(id)', 'date_deadline:min(date_deadline)'], ['res_id', 'activity_type_id'], lazy=False) + activity_type_ids = self.env['mail.activity.type'] + res_list = set() + activity_data = defaultdict(dict) + for group in grouped_activities: + res_id = group['res_id'] + res_name = group['res_name'] + activity_type_id = group['activity_type_id'][0] + activity_type_ids |= self.env['mail.activity.type'].browse(activity_type_id) # we will get the name when reading mail_template_ids + res_list.add((res_id, res_name)) + state = self._compute_state_from_date(group['date_deadline'], self.user_id.sudo().tz) + activity_data[res_id][activity_type_id] = { + 'count': group['__count'], + 'domain': group['__domain'], + 'ids': group['ids'], + 'state': state, + 'o_closest_deadline': group['date_deadline'], + } + activity_type_infos = [] + for elem in activity_type_ids: + mail_template_info = [] + for mail_template_id in elem.mail_template_ids: + mail_template_info.append({"id": mail_template_id.id, "name": mail_template_id.name}) + activity_type_infos.append([elem.id, elem.name, mail_template_info]) + + return { + 'activity_types': activity_type_infos, + 'res_ids': list(res_list), + 'grouped_activities': activity_data, + 'model': res_model, + } + class MailActivityMixin(models.AbstractModel): """ Mail Activity Mixin is a mixin class to use if you want to add activities |
