Přejít na obsah
Menu
You need to be registered to interact with the community.
This question has been flagged
1 Odpovědět
4949 Zobrazení

Hello all,

    In the file :

    odoo-8.0-20150920/openerp/addons/web/controllers/main.py

    There is the method :

        def login_redirect()

            url = '/web/loginPTPTPTPT555?'

            # built the redirect url, keeping all the query parameters of the url

            redirect_url = '%s?%s' % (request.httprequest.base_url, werkzeug.urls.url_encode(request.params))

            return """<html><head><script>

            window.location = '%sredirect=' + encodeURIComponent("%s" + location.hash);

            </script></head></html>

            """ % (url, redirect_url)


How to override such a method who is not in a class?

Avatar
Zrušit
Nejlepší odpověď

This is what it's called monkey patch. (https://en.wikipedia.org/wiki/Monkey_patch)

Like this:

from openerp.addons.web.controllers import main
def new_login_redirect():
    ...
main.login_redirect = new_login_redirect
Avatar
Zrušit
Autor

very interesting. Will try it soon. Thanks again Axel!

Autor

Is this a good way to work or not?

Obviously is not the first choice and is not good if you have another way to do it, if you don't have an alternative? You can go with this method, I used, Gevent used and I'm sure more people is using it.

Autor

It works. thanks again.

Related Posts Odpovědi Zobrazení Aktivita
1
bře 21
21345
1
úno 16
5414
0
kvě 16
3407
2
pro 15
3482
1
kvě 23
2466