Hello to all friends,
I try to install a auth keycloack module and I have an error but I cannot identify what it is, it seems to me that it is with the name, please any help I would appreciate it.
Odoo Server Error
Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 677, in _tag_root
f(rec)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 501, in _tag_record
self._test_xml_id(rec_id)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 247, in _test_xml_id
assert modcnt == 1, """The ID "%s" refers to an uninstalled module""" % (xml_id,)
AssertionError: The ID "auth_oauth_keycloak.new_checkbox_x_keycloak" refers to an uninstalled module
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 683, in dispatch
result = self._call_function(**self.params)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 359, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 347, in checked_call
result = self.endpoint(*a, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 912, in __call__
return self.method(*args, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 531, in response_wrap
response = f(*args, **kw)
File "/home/jose/Desktop/CRM_odoo/crm/addons/web/controllers/main.py", line 1381, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/addons/web/controllers/main.py", line 1369, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/api.py", line 396, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/api.py", line 383, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "", line 2, in button_immediate_install
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
return method(self, *args, **kwargs)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 474, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/registry.py", line 89, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 453, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 346, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 221, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/modules/loading.py", line 69, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 733, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 799, in convert_xml_import
obj.parse(doc.getroot())
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 719, in parse
self._tag_root(de)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/tools/convert.py", line 681, in _tag_root
raise ParseError('while parsing %s:%s, near\n%s' % (
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 639, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/jose/Desktop/CRM_odoo/crm/odoo/http.py", line 315, in _handle_exception
raise exception.with_traceback(None) from new_cause
odoo.tools.convert.ParseError: while parsing /home/jose/Desktop/CRM_odoo/crm/custom-addons/Auth/views/ir_model_fields.xml:3, near
[]
Keycloak
auth.oauth.provider
x_keycloak
manual
boolean
---------------------------------------------------------
view: ir_model_fields.xml
[]
Keycloak
auth.oauth.provider
x_keycloak
manual
boolean
view: ir_ui_view.xml
extension
auth.oauth.provider
auth.oauth.provider.form customization
99
form
---------------------------
model:
from odoo.addons import base
base.models.res_users.USER_PRIVATE_FIELDS.append('oauth_access_token')
class ResUsers(models.Model):
_inherit = 'res.users'
oauth_provider_id = fields.Many2one('auth.oauth.provider', string='OAuth Provider')
oauth_uid = fields.Char(string='OAuth User ID', help="Oauth Provider user_id", copy=False)
oauth_access_token = fields.Char(string='OAuth Access Token', readonly=True, copy=False)
_sql_constraints = [
('uniq_users_oauth_provider_oauth_uid', 'unique(oauth_provider_id, oauth_uid)', 'OAuth UID must be unique per provider'),
]
@api.model
def _auth_oauth_rpc(self, endpoint, access_token):
return requests.get(endpoint, params={'access_token': access_token}).json()
def _auth_oauth_rpc(self, endpoint, access_token, provider):
oauth_provider = self.env['auth.oauth.provider'].browse(provider)
if oauth_provider.x_keycloak:
return requests.get(endpoint, headers={'Authorization': 'bearer ' + access_token}).json()
else:
return requests.get(endpoint, params={'access_token': access_token}).json()
@api.model
def _auth_oauth_validate(self, provider, access_token):
""" return the validation data corresponding to the access token """
oauth_provider = self.env['auth.oauth.provider'].browse(provider)
validation = self._auth_oauth_rpc(oauth_provider.validation_endpoint, access_token, provider)
if validation.get("error"):
raise Exception(validation['error'])
if oauth_provider.data_endpoint:
data = self._auth_oauth_rpc(oauth_provider.data_endpoint, access_token, provider)
validation.update(data)
return validation
odoo v 14.0.1.0
I got same error. Just check that your data.xml have right value.
in my case was seceltion field with SSl instead ssl))