Hello:
This odoo database is a migration from v7, today is the first day and everything else starts to work correctly, but can't seem to find a way out of this one.
How to reproduce:
Go to contracts, select a contract with recurring invoices and click on "generate recurring invoices".
I get the following error:
Traceback (most recent call last):
File "/home/dev/opt/odoo/openerp/http.py", line 537, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/dev/opt/odoo/openerp/http.py", line 574, in dispatch
result = self._call_function(**self.params)
File "/home/dev/opt/odoo/openerp/http.py", line 310, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/dev/opt/odoo/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/home/dev/opt/odoo/openerp/http.py", line 307, in checked_call
return self.endpoint(*a, **kw)
File "/home/dev/opt/odoo/openerp/http.py", line 803, in __call__
return self.method(*args, **kw)
File "/home/dev/opt/odoo/openerp/http.py", line 403, in response_wrap
response = f(*args, **kw)
File "/home/dev/opt/odoo/addons/web/controllers/main.py", line 948, in call_button
action = self._call_kw(model, method, args, {})
File "/home/dev/opt/odoo/addons/web/controllers/main.py", line 936, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/home/dev/opt/odoo/openerp/api.py", line 256, in wrapper
return old_api(self, *args, **kwargs)
File "/home/dev/opt/odoo/addons/account_analytic_analysis/account_analytic_analysis.py", line 750, in recurring_create_invoice
return self._recurring_create_invoice(cr, uid, ids, context=context)
File "/home/dev/opt/odoo/openerp/api.py", line 256, in wrapper
return old_api(self, *args, **kwargs)
File "/home/dev/opt/odoo/addons/account_analytic_analysis/account_analytic_analysis.py", line 769, in _recurring_create_invoice
invoice_ids.append(self.pool['account.invoice'].create(cr, uid, invoice_values, context=context))
File "/home/dev/opt/odoo/openerp/api.py", line 256, in wrapper
return old_api(self, *args, **kwargs)
File "/home/dev/opt/odoo/addons/mail/mail_thread.py", line 378, in create
message_follower_ids = values.get('message_follower_ids') or [] # webclient can send None or False
AttributeError: 'bool' object has no attribute 'get'
This is the block with the line referenced in the traceback (mail_thread.py lines 375-380 :
# subscribe uid unless asked not to
if not context.get('mail_create_nosubscribe'):
pid = self.pool['res.users'].browse(cr, SUPERUSER_ID, uid).partner_id.id
message_follower_ids = values.get('message_follower_ids') or [] # webclient can send None or False
message_follower_ids.append([4, pid])
values['message_follower_ids'] = message_follower_ids
I tried selecting "Never" in receive email messages for the res.partner of my user but that didn't work.
Also tried to avoid that block by checking if values is True in that same file but didn't manage to update the mail.thread model correctly. I'd rather to avoid that method, as it seems very bad practice, but this is invoice generating, so anything is less important than not having invoices done, cheating is ok with me in this matter.
Thanks a lot.