good afternoon, I'm trying a module to eliminate followers, but when I select the codes of 0-8, I get this error, what can be wrong?
thanks,
Odoo Server Error
Traceback (most recent call last): File "/usr/lib/python3/dist-packages/odoo/http.py", line 654, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/usr/lib/python3/dist-packages/odoo/http.py", line 312, in _handle_exception raise pycompat.reraise(type(exception), exception, sys.exc_info()[2]) File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise raise value File "/usr/lib/python3/dist-packages/odoo/http.py", line 696, in dispatch result = self._call_function(**self.params) File "/usr/lib/python3/dist-packages/odoo/http.py", line 344, in _call_function return checked_call(self.db, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper return f(dbname, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/http.py", line 337, in checked_call result = self.endpoint(*a, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 939, in __call__ return self.method(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/http.py", line 517, in response_wrap response = f(*args, **kw) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 966, in call_button action = self._call_kw(model, method, args, {}) File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 954, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 749, in call_kw return _call_kw_multi(method, model, args, kwargs) File "/usr/lib/python3/dist-packages/odoo/api.py", line 736, in _call_kw_multi result = method(recs, *args, **kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/mail/wizard/mail_compose_message.py", line 193, in action_send_mail self.send_mail() File "/mnt/extra-addons/prt_followers_partners/models/mail.py", line 92, in send_mail super(PRTMailComposer, self).send_mail(auto_commit=auto_commit) File "/usr/lib/python3/dist-packages/odoo/addons/mail/wizard/mail_compose_message.py", line 267, in send_mail ActiveModel.browse(res_id).message_post(**post_params) File "/usr/lib/python3/dist-packages/odoo/addons/sale/models/sale.py", line 643, in message_post return super(SaleOrder, self.with_context(mail_post_autofollow=True)).message_post(**kwargs) File "/usr/lib/python3/dist-packages/odoo/addons/mail/models/mail_thread.py", line 2007, in message_post self.message_subscribe(list(partner_to_subscribe)) File "/mnt/extra-addons/prt_followers_partners/models/mail.py", line 23, in message_subscribe subtype_ids=subtype_ids, force=force) TypeError: message_subscribe() got an unexpected keyword argument 'force'
class PRTMailThread(models.AbstractModel):
_name = "mail.thread"
_inherit = "mail.thread"
"""
Check subscribers
"""
@api.multi
def message_subscribe(self, partner_ids=None, channel_ids=None, subtype_ids=None, force=True):
# Check whom to subscribe
subscribe_option = self._context.get('subscribe_option', False)
# Everyone
if not subscribe_option or subscribe_option == '0':
return super(PRTMailThread, self).message_subscribe(partner_ids=partner_ids, channel_ids=channel_ids,
subtype_ids=subtype_ids, force=force)
# Only me
if subscribe_option == '8':
return super(PRTMailThread, self).message_subscribe(partner_ids=[self.env.user.partner_id.id], channel_ids=channel_ids, subtype_ids=subtype_ids, force=force)
# No one
if subscribe_option == '9':
return True
# Some users
new_ids = []
partners = self.env['res.partner'].sudo().browse(partner_ids)
# Scan partners
for partner in partners:
users = partner.user_ids
if not users or len(users) == 0:
continue
# Remove users that are not Employees if such and option was selected
if subscribe_option in ['3', '4']:
for user in users:
if not user.has_group('base.group_user'):
users -= user
if len(users) == 0:
continue
# Users only
if subscribe_option in ['1', '3']:
new_ids.append(partner.id)
# Users of same company
elif subscribe_option in ['2', '4']:
same_company = True
our_company_id = self.env.user.company_id.id
for company in users.mapped('company_id'):
if company.id != our_company_id:
same_company = False
break
if same_company:
new_ids.append(partner.id)
return super(PRTMailThread, self).message_subscribe(partner_ids=new_ids, channel_ids=channel_ids,
subtype_ids=subtype_ids, force=force)
########################
# Mail.Compose Message #
########################
class PRTMailComposer(models.TransientModel):
_inherit = 'mail.compose.message'
_name = 'mail.compose.message'
subscribe_option = fields.Selection([
('0', 'Everyone'),
('1', 'Users only'),
('2', 'Users of current company only'),
('3', 'Employees only'),
('4', 'Employees of current company only'),
('8', 'Only me'),
('9', 'No one'),
], string="Auto subscribe", required=True,
default='0',
help="Choose partners to be subscribed to this thread")
# -- Send mail
@api.multi
def send_mail(self, auto_commit=False):
self = self.with_context(subscribe_option=self.subscribe_option)
super(PRTMailComposer, self).send_mail(auto_commit=auto_commit)
please provide odoo versions because mail API change a log during version to versions
release: odoo12