This question has been flagged
3 Replies
4801 Views

Hello Guys,

I was trying to customize my login page and made some changes to one of the scripts having external id "web.login". To test whether my changes were working, I logged out of my admin account expecting to be led to the login page. However, apparently there was some error in the code which I changed and now the login page is broken. It does not allow me to login at all showing a white page saying "Internal Server Error. The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application."

I know for a fact that this problem is caused by my changes to this script. I cannot revert the changes I made because I cannot login. My question is that is there a way to find this script (which is supposedly an xml file) through file explorer and revert the changes I made to it?

I am running Odoo v11 on a Windows 10 machine and have full access rights to the machine.

Thanks,

Mohammed


Edit : I cannot just update the web module because I have changed a lot of the views in it and this would destroy 4 months of work. I somehow need to reset just the code for the login page. Please give me any clue in this direction. It will be highly helpful and appreciated.


Logs :


2020-01-02 10:24:57,058 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:24:57] "POST /longpolling/poll HTTP/1.1" 200 -
2020-01-02 10:25:06,986 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:25:06] "POST /web/dataset/call_kw/ir.ui.view/read HTTP/1.1" 200 -
2020-01-02 10:25:07,028 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:25:07] "POST /web/dataset/call_kw/ir.ui.view/read HTTP/1.1" 200 -
2020-01-02 10:25:47,115 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:25:47] "POST /longpolling/poll HTTP/1.1" 200 -
2020-01-02 10:26:10,285 4880 INFO AlBidda odoo.modules.registry: At least one model cache has been invalidated, signaling through the database.
2020-01-02 10:26:10,301 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:10] "POST /web/dataset/call_kw/ir.ui.view/write HTTP/1.1" 200 -
2020-01-02 10:26:10,432 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:10] "POST /web/dataset/call_kw/ir.ui.view/read HTTP/1.1" 200 -
2020-01-02 10:26:10,501 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:10] "POST /web/dataset/call_kw/ir.ui.view/read HTTP/1.1" 200 -
2020-01-02 10:26:13,797 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:13] "GET /web/session/logout HTTP/1.1" 303 -
2020-01-02 10:26:14,014 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:14] "GET /web HTTP/1.1" 303 -
2020-01-02 10:26:16,422 4880 INFO AlBidda werkzeug: 127.0.0.1 - - [02/Jan/2020 10:26:16] "GET /web/login HTTP/1.1" 500 -
2020-01-02 10:26:18,675 4880 ERROR AlBidda werkzeug: Error on request:
Traceback (most recent call last):
  File "C:\Program Files (x86)\Odoo 11.0\python\lib\site-packages\werkzeug\serving.py", line 209, in run_wsgi
    execute(self.server.app)
  File "C:\Program Files (x86)\Odoo 11.0\python\lib\site-packages\werkzeug\serving.py", line 197, in execute
    application_iter = app(environ, start_response)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\server.py", line 319, in app
    return self.app(e, s)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\wsgi_server.py", line 166, in application
    return application_unproxied(environ, start_response)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\wsgi_server.py", line 154, in application_unproxied
    result = handler(environ, start_response)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1321, in __call__
    return self.dispatch(environ, start_response)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1295, in __call__
    return self.app(environ, start_wrapped)
  File "C:\Program Files (x86)\Odoo 11.0\python\lib\site-packages\werkzeug\wsgi.py", line 600, in __call__
    return self.app(environ, start_response)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1493, in dispatch
    result = ir_http._dispatch()
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\auth_signup\models\ir_http.py", line 19, in _dispatch
    return super(Http, cls)._dispatch()
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\web_editor\models\ir_http.py", line 22, in _dispatch
    return super(IrHttp, cls)._dispatch()
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\http_routing\models\ir_http.py", line 396, in _dispatch
    result = super(IrHttp, cls)._dispatch()
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_http.py", line 212, in _dispatch
    return cls._handle_exception(e)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_http.py", line 182, in _handle_exception
    return request._handle_exception(exception)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 773, in _handle_exception
    return super(HttpRequest, self)._handle_exception(exception)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 312, in _handle_exception
    raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\tools\pycompat.py", line 87, in reraise
    raise value
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_http.py", line 208, in _dispatch
    result = request.dispatch()
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 832, in dispatch
    r = self._call_function(**self.params)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 344, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\service\model.py", line 97, in wrapper
    return f(dbname, *args, **kwargs)
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 340, in checked_call
    result.flatten()
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1272, in flatten
    self.response.append(self.render())
  File "C:\Program Files (x86)\Odoo 11.0\server\odoo\http.py", line 1265, in render
    return env["ir.ui.view"].render_template(self.template, self.qcontext)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\app_odoo_customize\models\ir_ui_view.py", line 18, in render_template
    return super(View, self).render_template(template, values=values, engine=engine)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 1211, in render_template
    return self.browse(self.get_view_id(template)).render(values, engine)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\web_editor\models\ir_ui_view.py", line 27, in render
    return super(IrUiView, self).render(values=values, engine=engine)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_ui_view.py", line 1220, in render
    return self.env[engine].render(self.id, qcontext)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_qweb\ir_qweb.py", line 57, in render
    return super(IrQWeb, self).render(id_or_xml_id, values=values, **context)
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_qweb\qweb.py", line 274, in render
    self.compile(template, options)(self, body.append, values or {})
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_qweb\qweb.py", line 352, in _compiled_fn
    raise QWebException("Error to render compiling AST", e, path, node and etree.tostring(node[0], encoding='unicode'), name)
odoo.addons.base.ir.ir_qweb.qweb.QWebException: 'NoneType' object has no attribute 'company_id'
Traceback (most recent call last):
  File "c:\program files (x86)\odoo 11.0\server\odoo\addons\base\ir\ir_qweb\qweb.py", line 345, in _compiled_fn
    return compiled(self, append, new, options, log)
  File "<template>", line 1, in template_162_1750
  File "<template>", line 2, in body_call_content_1749
AttributeError: 'NoneType' object has no attribute 'company_id'

Error to render compiling AST
AttributeError: 'NoneType' object has no attribute 'company_id'
Template: 162
Path: /templates/t/t/form/div[5]/img
Node: <img t-att-src="'data:image/png;base64,%s' % to_text(o.company_id.logo)"/>

Avatar
Discard
Author Best Answer

Ok guys. Finally solved it. For anyone stupid enough (as stupid as me) to land in the same mess, these are the steps to solve it.


1. Open the database using pgAdmin III
2. Login and navigate to Databases/Database_name/Schemas/public/Tables/ir_ui_view
3. Right-click and go to View Data/View All Rows
4. When the table opens up, navigate to the view that you messed up. In my case it was "web.login". Find this under the "key" column.
5. Go to the "arch_db" column where you will find the xml code that you changed. Double-click on the code and revert the changes that you made.
6. Save.

That should be it. However, be very careful not to change something other than what you intend to because it might mess up the system. Check if it fixes your issue and you are good to go.

Best of luck everyone!


Mohammed

Avatar
Discard
Best Answer

Can you provide the logs? Maybe you could try to update Odoo so it would replace the inline edits and everything would go back to normal.
If you broke it after installing your custom mod you can simply remove or edit and upload the mod and restart Odoo - this should do a job

Avatar
Discard
Best Answer

You may want to update the web module or even all modules by stopping the Odoo service and start Odoo from the command line by using the parameter -u all

Avatar
Discard