I get this error when I try to upgrade my custom module in odoo 13.
Odoo Server Error
Traceback (most recent call last):
File "/odoo/odoo-server/odoo/http.py", line 619, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/odoo/odoo-server/odoo/http.py", line 309, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/odoo/odoo-server/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/odoo/odoo-server/odoo/http.py", line 664, in dispatch
result = self._call_function(**self.params)
File "/odoo/odoo-server/odoo/http.py", line 345, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/odoo/odoo-server/odoo/service/model.py", line 93, in wrapper
return f(dbname, *args, **kwargs)
File "/odoo/odoo-server/odoo/http.py", line 338, in checked_call
result = self.endpoint(*a, **kw)
File "/odoo/odoo-server/odoo/http.py", line 910, in __call__
return self.method(*args, **kw)
File "/odoo/odoo-server/odoo/http.py", line 510, in response_wrap
response = f(*args, **kw)
File "/odoo/odoo-server/addons/web/controllers/main.py", line 1324, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/odoo/odoo-server/addons/web/controllers/main.py", line 1312, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/odoo/odoo-server/odoo/api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-64>", line 2, in button_immediate_upgrade
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 72, in check_and_log
return method(self, *args, **kwargs)
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 629, in button_immediate_upgrade
return self._button_immediate_function(type(self).button_upgrade)
File "/odoo/odoo-server/odoo/addons/base/models/ir_module.py", line 573, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/odoo/odoo-server/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/odoo/odoo-server/odoo/modules/loading.py", line 471, in load_modules
env['ir.model.data']._process_end(processed_modules)
File "/odoo/odoo-server/odoo/addons/base/models/ir_model.py", line 1971, in _process_end
record.unlink()
File "/odoo/odoo-server/odoo/addons/base/models/ir_model.py", line 1190, in unlink
table=self.env[selection.field_id.model]._table,
File "/opt/odoo/odoo13/odoo/api.py", line 463, in __getitem__
return self.registry[model_name]._browse(self, (), ())
File "/opt/odoo/odoo13/odoo/modules/registry.py", line 177, in __getitem__
return self.models[model_name]
KeyError: 'sales.terms'
This is the sales.terms model
class SalesTermsAndConditions(models.Model):
_name = 'sales.terms'
_description = 'Terms and Conditions'
_rec_name = 'typex'
new_type = fields.Selection([
('accessories', 'Accessories'),
('glass', 'Glass Work'),
('aluminium', 'Aluminium profiles'),
('projects', 'Projects')
], string='Testing')
d_active = fields.Boolean(string='Active')
notes = fields.Text()
I have a new model named 'sales.terms' I created and I created the corresponding ir.model.access.csv file for it, so I traced down the error and discovered that it isn't the whole model giving causing the error but just the selection field, if i remove the selection field the module upgrades fine.
I am confused as to what might be wrong.
I think there is something missing
class SalesTermsAndConditions(models.Model):
_name = 'sales.terms'
_description = 'Terms and Conditions'
_rec_name = 'typex'
new_type = fields.Selection([
('test', 'Test'),
('atest', 'A test'), // Comma is missing
('accessories', 'Accessories'),
('glass', 'Glass Work'),
('aluminium', 'Aluminium profiles'),
('projects', 'Projects')
], string='Testing')
d_active = fields.Boolean(string='Active')
notes = fields.Text()
Try to remove _rec_name.Replace with some field.
_rec_name = "new_type"
The selection seem to be ok. if you rename new_type does it then upgrade?
Can you look first errors wen you boot odoo or reload modules
Related
I am running Odoo13 Manufacturing App. I am getting an error when clicking on "Plan" in a Manufacturing Order.This error occurs after installing accounting app and creating a vendor for a product in a BOM.
My Order view is given as an image:
Error:
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 619, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/src/odoo/odoo/http.py", line 309, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/home/odoo/src/odoo/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/home/odoo/src/odoo/odoo/http.py", line 664, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/src/odoo/odoo/http.py", line 345, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/service/model.py", line 93, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/http.py", line 338, in checked_call
result = self.endpoint(*a, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 909, in __call__
return self.method(*args, **kw)
File "/home/odoo/src/odoo/odoo/http.py", line 510, in response_wrap
response = f(*args, **kw)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1323, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/main.py", line 1311, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 395, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 382, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/odoo/src/enterprise/mrp_workorder/models/mrp_production.py", line 13, in button_plan
res = super(MrpProduction, self).button_plan()
File "/home/odoo/src/odoo/addons/mrp/models/mrp_production.py", line 690, in button_plan
order._plan_workorders()
File "/home/odoo/src/odoo/addons/mrp/models/mrp_production.py", line 725, in _plan_workorders
if to_date < best_finished_date: TypeError: '<' not supported between instances of 'bool' and 'datetime.datetime'
Pull the latest code from Odoo git repo and you will find this error has gone:
https://github.com/odoo/odoo/blob/13.0/addons/mrp/models/mrp_production.py#L736
if to_date < best_finished_date
changed to
if to_date and to_date < best_finished_date
Here my function for to verify a email :
# Vérifie que l'adresse mail du partner soit valide
#api.onchange('email')
def adressmailtoverify(self):
for rec in self:
address_to_verify = rec.email
match = re.match("^[a-zA-Z0-9_\-]+(\.[a-zA-Z0-9_\-]+)*#[a-zA-Z0-9_\-]+"
"(\.[a-zA-Z0-9_\-]+)*(\.[a-zA-Z]{2,6})$", address_to_verify)
if not match:
raise ValidationError("Problème de synthaxe adresse mail, merci de modifier")
else:
pass
Here my error :
Odoo Server Error
Traceback (most recent call last):
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 640, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 677, in dispatch
result = self._call_function(**self.params)
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 333, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/var/lib/odoo/odoo/odoo/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 326, in checked_call
result = self.endpoint(*a, **kw)
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 935, in __call__
return self.method(*args, **kw)
File "/var/lib/odoo/odoo/odoo/odoo/http.py", line 506, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 885, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 877, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/var/lib/odoo/odoo/odoo/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/var/lib/odoo/odoo/odoo/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/var/lib/odoo/horanet/horanet_go/horanet_web/models/tool_field_dirty.py", line 59, in onchange
res = super(ToolFieldDirty, self).onchange(values, field_name, field_onchange)
File "/var/lib/odoo/odoo/odoo/odoo/models.py", line 5494, in onchange
record._onchange_eval(name, field_onchange[name], result)
File "/var/lib/odoo/odoo/odoo/odoo/models.py", line 5392, in _onchange_eval
method_res = method(self)
File "/var/lib/odoo/projects/Odoo/parthenay_tpa_mediatheque/models/inherited_partner.py", line 127, in adressmailtoverify
"(\.[a-zA-Z0-9_\-]+)*(\.[a-zA-Z]{2,6})$", address_to_verify)
File "/usr/lib/python2.7/re.py", line 141, in match
return _compile(pattern, flags).match(string)
TypeError: expected string or buffer
I have this error when to clear a email.
My second concern is that even if my exception is thrown, my partner is registered. Can you help me ? Thank you
Change the for line and use this instead:
for rec in self.filtered("email"):
The problem happens because values are False in Odoo, and you cannot apply a regex to a bool.
while I am trying to update value that affect computed field I got this error:
Odoo Server Error
Traceback (most recent call last):
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 647, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 684, in dispatch
result = self._call_function(**self.params)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 320, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/service/model.py", line 118, in wrapper
return f(dbname, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 313, in checked_call
result = self.endpoint(*a, **kw)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 963, in call
return self.method(*args, **kw)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/http.py", line 513, in response_wrap
response = f(*args, **kw)
File "/Users/abdalla/projects/greenway/odoo-server/addons/web/controllers/main.py", line 904, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/addons/web/controllers/main.py", line 896, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/api.py", line 250, in wrapper
return old_api(self, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/api.py", line 381, in old_api
result = method(recs, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/models.py", line 6036, in onchange
record.mapped(field_seq)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/models.py", line 5534, in mapped
recs = recs._mapped_func(operator.itemgetter(name))
File "/Users/abdalla/projects/greenway/odoo-server/openerp/models.py", line 5514, in _mapped_func
vals = [func(rec) for rec in self]
File "/Users/abdalla/projects/greenway/odoo-server/openerp/models.py", line 5752, in getitem
return self._fields[key].get(self, type(self))
File "/Users/abdalla/projects/greenway/odoo-server/openerp/fields.py", line 829, in get
self.determine_value(record)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/fields.py", line 927, in determine_value
record._prefetch_field(self)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/api.py", line 248, in wrapper
return new_api(self, *args, **kwargs)
File "/Users/abdalla/projects/greenway/odoo-server/openerp/models.py", line 3295, in _prefetch_field
assert self in records and field in fs
AssertionError
finally I found the problem:
the problem is that the method of the computed field is not exist (I renamed it accidentally). so when odoo try to get the value of this field it failed, and show this strange error
I'm migrating some modules from v7 to v10 of Odoo community version.
Right now, I've modified this method, it looks like this:
class ResPartner(models.Model):
_inherit = 'res.partner'
#api.multi
#api.depends('company_id')
def _get_country_code(self):
"""
Return the country code of the user company. If not exists, return XX.
"""
context = dict(self._context or {})
user_company = self.env['res.users'].browse(company_id)
return user_company.partner_id and user_company.partner_id.country_id \
and user_company.partner_id.country_id.code or 'XX'
But every time I try to go to a res.partner view, it throws me this error:
Odoo Server Error
Traceback (most recent call last):
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 675, in dispatch
result = self._call_function(**self.params)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 331, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/service/model.py", line 119, in wrapper
return f(dbname, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 324, in checked_call
result = self.endpoint(*a, **kw)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 933, in __call__
return self.method(*args, **kw)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/http.py", line 504, in response_wrap
response = f(*args, **kw)
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 862, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/home/kristian/odoov10/odoo-10.0rc1c-20161005/odoo/addons/web/controllers/main.py", line 854, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 681, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/api.py", line 672, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 2995, in read
values[name] = field.convert_to_read(record[name], record, use_name_get)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/models.py", line 5171, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/fields.py", line 860, in __get__
self.determine_value(record)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/fields.py", line 969, in determine_value
self.compute_value(recs)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/fields.py", line 924, in compute_value
self._compute_value(records)
File "/home/kristian/.virtualenvs/odoov10/lib/python2.7/site-packages/odoo-10.0rc1c_20161005-py2.7.egg/odoo/fields.py", line 918, in _compute_value
self.compute(records)
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/model/partner.py", line 72, in _get_uid_country
res = {}.fromkeys(self._get_country_code())
File "/home/kristian/odoov10/gilda/l10n_ve_fiscal_requirements/model/partner.py", line 51, in _get_country_code
user_company = self.env['res.users'].browse(company_id)
NameError: global name 'company_id' is not defined
I'm new into v10 API
Any ideas?
It's give you following error:
ValueError: Expected singleton: res.partner(1, 33, 8, 18, 22, 23)'
I think, you have added field in list/tree view. As per your current code, you didn't iterate record-sets.
If you want to keep your original code with improvements self.company_id then we should remove field from list/tree view. Other then you can move forward with my answer. It will work fine.
Try with following code:
#api.depends('company_id')
def _get_country_code(self):
"""
Return the country code of the user company. If not exists, return XX.
"""
context = dict(self._context or {})
for partner in self:
user_company = self.env['res.company'].browse(self.company_id)
#NOTE: replace code name with your real field name where you want to see value
partner.code = user_company.partner_id and user_company.partner_id.country_id \
and user_company.partner_id.country_id.code or 'XX'
You need to access company_id as a member
user_company = self.env['res.users'].browse(self.company_id)
#NeoVe,
but now it says 'raise ValueError("Expected singleton: %s" % self) ValueError: Expected singleton: res.partner(1, 33, 8, 18, 22, 23)' :/ Do You know why please?
you can try adding #api.one or #api.model decorator instead of #api.multi for the function declaration.
Recently I had restored a Odoo DB to a newly created instance, From then on i am getting the following error whenever I go to the respective menu :
KeyError: u'mro.request'
How to resolve such kind of errors?
Any suggestion would be really helpful. Thanks!!
Traceback (most recent call last):
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 517, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 538, in dispatch
result = self._call_function(**self.params)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 294, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 291, in checked_call
return self.endpoint(*a, **kw)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 754, in __call__
return self.method(*args, **kw)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 387, in response_wrap
response = f(*args, **kw)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/addons/web/controllers/main.py", line 1251, in load
action = request.session.model(action_type).read([action_id], False, ctx)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/http.py", line 856, in proxy
result = meth(cr, request.uid, *args, **kw)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/addons/base/ir/ir_actions.py", line 326, in read
results = super(ir_actions_act_window, self).read(cr, uid, ids, fields=fields, context=context, load=load)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/api.py", line 237, in wrapper
return old_api(self, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/models.py", line 3083, in read
result = BaseModel.read(records, fields, load=load)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/models.py", line 3115, in read
self._read_from_database(stored)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/api.py", line 235, in wrapper
return new_api(self, *args, **kwargs)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/models.py", line 3279, in _read_from_database
res2 = self._columns[f].get(cr, self._model, ids, f, user, context=context, values=result)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/osv/fields.py", line 1356, in get
result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/addons/base/ir/ir_actions.py", line 265, in _search_view
field_get = self.pool[act.res_model].fields_view_get(cr, uid,
File "/home/administrator/second2/apps/odoo/lib/odoo-8.0_a2115ef-py2.7.egg/openerp/modules/registry.py", line 101, in __getitem__
return self.models[model_name]
KeyError: u'mro.request'
I solved the above problem by upgrading the modules which were in the dependencies.