diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 6667447cd39..b8887ec2c73 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -472,20 +472,20 @@ class MailActivity(models.Model): def action_done(self): """ Wrapper without feedback because web button add context as parameter, therefore setting context to feedback """ - messages, next_activities = self._action_done() - return messages.ids and messages.ids[0] or False + return self.action_feedback() def action_feedback(self, feedback=False, attachment_ids=None): - self = self.with_context(clean_context(self.env.context)) - messages, next_activities = self._action_done(feedback=feedback, attachment_ids=attachment_ids) - return messages.ids and messages.ids[0] or False + messages, _next_activities = self.with_context( + clean_context(self.env.context) + )._action_done(feedback=feedback, attachment_ids=attachment_ids) + return messages[0].id if messages else False def action_done_schedule_next(self): """ Wrapper without feedback because web button add context as parameter, therefore setting context to feedback """ return self.action_feedback_schedule_next() - def action_feedback_schedule_next(self, feedback=False): + def action_feedback_schedule_next(self, feedback=False, attachment_ids=None): ctx = dict( clean_context(self.env.context), default_previous_activity_type_id=self.activity_type_id.id, @@ -493,7 +493,7 @@ class MailActivity(models.Model): default_res_id=self.res_id, default_res_model=self.res_model, ) - messages, next_activities = self._action_done(feedback=feedback) # will unlink activity, dont access self after that + _messages, next_activities = self._action_done(feedback=feedback, attachment_ids=attachment_ids) # will unlink activity, dont access self after that if next_activities: return False return { diff --git a/addons/mail/models/mail_activity_mixin.py b/addons/mail/models/mail_activity_mixin.py index d718aa21c8c..7d656bc96b6 100644 --- a/addons/mail/models/mail_activity_mixin.py +++ b/addons/mail/models/mail_activity_mixin.py @@ -475,7 +475,7 @@ class MailActivityMixin(models.AbstractModel): activities.write(write_vals) return activities - def activity_feedback(self, act_type_xmlids, user_id=None, feedback=None): + def activity_feedback(self, act_type_xmlids, user_id=None, feedback=None, attachment_ids=None): """ Set activities as done, limiting to some activity types and optionally to a given user. """ if self.env.context.get('mail_activity_automation_skip'): @@ -488,7 +488,7 @@ class MailActivityMixin(models.AbstractModel): return False activities = self.activity_search(act_type_xmlids, user_id=user_id) if activities: - activities.action_feedback(feedback=feedback) + activities.action_feedback(feedback=feedback, attachment_ids=attachment_ids) return True def activity_unlink(self, act_type_xmlids, user_id=None): diff --git a/addons/test_mail/models/test_mail_models.py b/addons/test_mail/models/test_mail_models.py index 6520ad3adb8..f04c3876cab 100644 --- a/addons/test_mail/models/test_mail_models.py +++ b/addons/test_mail/models/test_mail_models.py @@ -60,8 +60,10 @@ class MailTestActivity(models.Model): summary=action_summary ) - def action_close(self, action_feedback): - self.activity_feedback(['test_mail.mail_act_test_todo'], feedback=action_feedback) + def action_close(self, action_feedback, attachment_ids=None): + self.activity_feedback(['test_mail.mail_act_test_todo'], + feedback=action_feedback, + attachment_ids=attachment_ids) class MailTestTicket(models.Model):