Skip to Content
Menu
This question has been flagged
2 Replies
2696 Views

Hello,


Iam trying to devlope a payment provider for Sadad QA ( https://developer.sadad.qa/ ) the Application at the moment has an issue i cant install it ( i can find it in my app ) but when i install i get this error 


-------------

RPC_ERROR

Odoo Server Error

Traceback (most recent call last):

  File "/home/odoo/src/odoo/odoo/http.py", line 1722, in _serve_db

    return service_model.retrying(self._serve_ir_http, self.env)

  File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying

    result = func()

  File "/home/odoo/src/odoo/odoo/http.py", line 1749, in _serve_ir_http

    response = self.dispatcher.dispatch(rule.endpoint, args)

  File "/home/odoo/src/odoo/odoo/http.py", line 1953, in dispatch

    result = self.request.registry['ir.http']._dispatch(endpoint)

  File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 235, in _dispatch

    response = super()._dispatch(endpoint)

  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 222, in _dispatch

    result = endpoint(**request.params)

  File "/home/odoo/src/odoo/odoo/http.py", line 722, in route_wrapper

    result = endpoint(self, *args, **params_ok)

  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 28, in call_button

    action = self._call_kw(model, method, args, kwargs)

  File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw

    return call_kw(request.env[model], method, args, kwargs)

  File "/home/odoo/src/odoo/odoo/api.py", line 468, in call_kw

    result = _call_kw_multi(method, model, args, kwargs)

  File "/home/odoo/src/odoo/odoo/api.py", line 453, in _call_kw_multi

    result = method(recs, *args, **kwargs)

  File "", line 2, in button_immediate_install

  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 75, in check_and_log

    return method(self, *args, **kwargs)

  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 466, in button_immediate_install

    return self._button_immediate_function(self.env.registry[self._name].button_install)

  File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 590, in _button_immediate_function

    registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)

  File "", line 2, in new

  File "/home/odoo/src/odoo/odoo/tools/func.py", line 87, in locked

    return func(inst, *args, **kwargs)

  File "/home/odoo/src/odoo/odoo/modules/registry.py", line 113, in new

    odoo.modules.load_modules(registry, force_demo, status, update_module)

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 480, in load_modules

    processed_modules += load_marked_modules(env, graph,

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 364, in load_marked_modules

    loaded, processed = load_module_graph(

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 227, in load_module_graph

    load_data(env, idref, mode, kind='data', package=package)

  File "/home/odoo/src/odoo/odoo/modules/loading.py", line 71, in load_data

    tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind)

  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 627, in convert_file

    convert_xml_import(env, module, fp, idref, mode, noupdate)

  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 693, in convert_xml_import

    obj.parse(doc.getroot())

  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 613, in parse

    self._tag_root(de)

  File "/home/odoo/src/odoo/odoo/tools/convert.py", line 567, in _tag_root

    raise ParseError(msg) from None  # Restart with "--log-handler odoo.tools.convert:DEBUG" for complete traceback

odoo.tools.convert.ParseError: while parsing /home/odoo/src/odoo/addons/payment_sadad/views/payment_provider_views.xml:4

Since 17.0, the "attrs" and "states" attributes are no longer used.

View: Sadad Provider Form in payment_sadad/views/payment_provider_views.xml


View error context:

{'name': 'invalid view'}



The above server error caused the following client error:

RPC_ERROR: Odoo Server Error

    at makeErrorFromResponse (https://mangrovesllc-testing-11784108.dev.odoo.com/web/assets/0e29de0/web.assets_web.min.js:2872:163)

    at XMLHttpRequest. (https://mangrovesllc-testing-11784108.dev.odoo.com/web/assets/0e29de0/web.assets_web.min.js:2876:13)


--------------------


also i have uploaded the app here 

https://github.com/MangrovesLLC/payment_sadad


if any one can help it would be very nice guys.


Thanks alot,

Best Regards

Avatar
Discard
Best Answer

Hi,
From the traceback you have shared, the reason for your issue is:   "Since 17.0, the "attrs" and "states" attributes are no longer used."

here we have a self explanatory error message, it says you cannot use attrs and states attributes in odoo 17, so you have to replace those usage from code.

For example, if you have written states="done" change it to invisible="states != done"


Similarly if you have written attrs={'invisible': [('state', '=', 'done')]} change it to  invisible="states != done"

Thanks

Avatar
Discard
Author

which mean for example
This : <group attrs="{'invisible': [('code', '!=', 'sadad')]}"
name="sadad_credentials">

become:
<group invisible= "code = sadad"
name="sadad_credentials">

this is correct?

Author

After i fix the Xml i got new error

RPC_ERROR
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 556, in _tag_root
f(rec)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 386, in _tag_record
raise Exception("Cannot update missing record %r" % xid)
Exception: Cannot update missing record 'payment.payment_provider_sadad'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/odoo/src/odoo/odoo/http.py", line 1722, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "/home/odoo/src/odoo/odoo/service/model.py", line 133, in retrying
result = func()
File "/home/odoo/src/odoo/odoo/http.py", line 1749, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "/home/odoo/src/odoo/odoo/http.py", line 1953, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "/home/odoo/src/odoo/addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_http.py", line 222, in _dispatch
result = endpoint(**request.params)
File "/home/odoo/src/odoo/odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 28, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/addons/web/controllers/dataset.py", line 20, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 468, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/odoo/api.py", line 453, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-77>", line 2, in button_immediate_install
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 75, in check_and_log
return method(self, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 466, in button_immediate_install
return self._button_immediate_function(self.env.registry[self._name].button_install)
File "/home/odoo/src/odoo/odoo/addons/base/models/ir_module.py", line 590, in _button_immediate_function
registry = modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "<decorator-gen-16>", line 2, in new
File "/home/odoo/src/odoo/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/home/odoo/src/odoo/odoo/modules/registry.py", line 113, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 480, in load_modules
processed_modules += load_marked_modules(env, graph,
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 364, in load_marked_modules
loaded, processed = load_module_graph(
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 227, in load_module_graph
load_data(env, idref, mode, kind='data', package=package)
File "/home/odoo/src/odoo/odoo/modules/loading.py", line 71, in load_data
tools.convert_file(env, package.name, filename, idref, mode, noupdate, kind)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 627, in convert_file
convert_xml_import(env, module, fp, idref, mode, noupdate)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 693, in convert_xml_import
obj.parse(doc.getroot())
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 613, in parse
self._tag_root(de)
File "/home/odoo/src/odoo/odoo/tools/convert.py", line 569, in _tag_root
raise ParseError('while parsing %s:%s, somewhere inside\n%s' % (
odoo.tools.convert.ParseError: while parsing /home/odoo/src/odoo/addons/payment_sadad/data/payment_provider_data.xml:4, somewhere inside
<record id="payment.payment_provider_sadad" model="payment.provider">
<field name="code">sadad</field>
<field name="redirect_form_view_id" ref="redirect_form"/>
<field name="allow_tokenization">True</field>
</record>

The above server error caused the following client error:
RPC_ERROR: Odoo Server Error
at makeErrorFromResponse (https://mangrovesllc-testing-11784108.dev.odoo.com/web/assets/0e29de0/web.assets_web.min.js:2872:163)
at XMLHttpRequest.<anonymous> (https://mangrovesllc-testing-11784108.dev.odoo.com/web/assets/0e29de0/web.assets_web.min.js:2876:13)

Best Answer

Hi,

In odoo 17 attrs and states attributes are no longer used.

You can directly add conditions for readonly, invisible,required in respected attribute. i.e.

<field name="order_date" required="state == 'sale' and is_cash_sale != False"
invisible="state in ('draft', 'cancel')" readonly="state == 'done'"/>



Hope it helps,


Avatar
Discard
Related Posts Replies Views Activity
1
Sep 24
2436
2
Feb 24
2776
2
Jul 25
1067
3
Feb 25
5048
1
Mar 24
2819