1
votes

I have installed running Odoo 14 in Docker using the default setup without any additional customisations. For the past several days I've been trying to install the Point of Sale module from within Odoo with no success - every time I get the error below.

Could anyone please help me figure out what's wrong and get PoS working?

Thank you!

    Odoo Server Error

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
        result = request.dispatch()
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 682, in dispatch
result = self._call_function(**self.params)
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 358, in _call_function
return checked_call(self.db, *args, **kwargs)
      File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in checked_call
result = self.endpoint(*a, **kw)
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 911, in __call__
return self.method(*args, **kw)
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 530, in response_wrap
response = f(*args, **kw)
      File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1363, in call_button
action = self._call_kw(model, method, args, kwargs)
      File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1351, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
      File "/usr/lib/python3/dist-packages/odoo/api.py", line 396, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
      File "/usr/lib/python3/dist-packages/odoo/api.py", line 383, in _call_kw_multi
result = method(recs, *args, **kwargs)
      File "<decorator-gen-71>", line 2, in button_immediate_install
      File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 73, in check_and_log
return method(self, *args, **kwargs)
      File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 474, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
      File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_module.py", line 592, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
      File "/usr/lib/python3/dist-packages/odoo/modules/registry.py", line 89, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
      File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 455, in load_modules
loaded_modules, update_module, models_to_check)
      File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 348, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
      File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 221, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package)
      File "/usr/lib/python3/dist-packages/odoo/modules/loading.py", line 69, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind)
      File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 733, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate)
      File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 799, in convert_xml_import
obj.parse(doc.getroot())
      File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 719, in parse
self._tag_root(de)
      File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 677, in _tag_root
f(rec)
      File "/usr/lib/python3/dist-packages/odoo/tools/convert.py", line 684, in _tag_root
etree.tostring(rec, encoding='unicode').rstrip()
    Exception

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

    Traceback (most recent call last):
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
      File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception
raise exception.with_traceback(None) from new_cause
    odoo.tools.convert.ParseError: while parsing /usr/lib/python3/dist-packages/odoo/addons/point_of_sale/data/point_of_sale_data.xml:13, near
    <record id="product_category_pos" model="product.category">
        <field name="parent_id" ref="product.product_category_1"/>
        <field name="name">PoS</field>
    </record>
1
If you replace this line of code with just "raise", restart Odoo, and try to install again, it should give you a different / the real cause of error in the XML.. could you try that?littlegreen
Gladly, but how exactly do I find the file to replace the code? I'm running in Odoo in a Docker container. Also, are you sure just line 681? That will leave a closing bracket on L685 without an opening one.zkvvoob
You'll have to go into the Docker container and edit the file, then restart the Docker container. It's not just line 681, you can either delete or comment out the full of 681-685 and replace it by "raise", or just insert an new line 681 above the current one that has the "raise". The code below that then won't be executed.littlegreen
Thank you! I was able to SSH into my NAS and run docker exec -it odoo14. However, I wasn't able to find convert.py - as far as I can see, there's no toolsdirectory (I used the find command). What am I doing wrong?zkvvoob
I've just spun a test Odoo container without any data and it POS did install properly. I'll have to figure out how to move all data from the old instance to the new one.zkvvoob

1 Answers

1
votes

General advice

If you want to improve your chances of success, don't try to load any modules from other versions or third parties, and try to stick to the basic functionality, or try an older version, or packaging that is supported by another company, such as https://github.com/Elico-Corp/odoo-docker or a fork such as https://hub.docker.com/r/flectrahq/flectra/

If you really want to fix it...

It looks like you're using an incompatible version of the point-of-sale add-on.

You will need to start with Odoo's above average documentation: https://www.odoo.com/documentation/14.0/

Seeing as that you're dealing with a module, you will need to invest some time into https://www.odoo.com/documentation/14.0/howtos/backend.html

If you want to learn more about Python, give yourself a few months, and start with something like this: https://www.udemy.com/course/the-complete-python-course/ and then move on to https://subscription.packtpub.com/search?query=working%20with%20odoo%2011&released=Available

Sticking to trial-and-error...

To move your database, just go to the database manager: http://odoo:8069/web/database/manager#action=database_manager and export your database from there, then import it via the same URL on your new instance.

Some Odoo background

Besides the fact that any software sometimes introduce breaking changes, and that the internals of any ERP demand a high level of technical expertise, Odoo CE seems further disadvantaged by especially careless Odoo employees as "breaking changes" play into their tactic of motivating use their hosted service - which is their main revenue model. (Also evidenced by their effort to rewrite modules under a non-GPL licence.)

They clearly lack the faith in humanity that drives open source. Lets keep motivating them to share, help and open up. Open source is more than a cheap marketing gimmick: The power of open source comes from trust, and unconditional giving, which drives a much larger market that any number of corporations can handle.