Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
1 Rispondi
4926 Visualizzazioni

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
Abbandona
Risposta migliore

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
Abbandona
Autore

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

Autore

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.

Autore

It works. thanks again.

Post correlati Risposte Visualizzazioni Attività
1
mar 21
21305
1
feb 16
5394
0
mag 16
3405
2
dic 15
3482
1
mag 23
2456