I chose to create a new namespace as follows. Within the directory for the web addon create your own directory "myweb". Add python files __init__.py and "mycontroller.py" to the new directory. Edit the __init__.py with 'from . import mycontroller'. Back up to the web directory and edit the __init__.py file there with 'import myweb'.
Now edit mycontroller.py with 'from .. import http' and 'myweb = http'.
Then make a class

At http://mydomain/web/myweb/ you'll hit your customized index. Now you have a nice sandbox for developing your own web module without interfering with existing web module functionality. You can copy out anything you need from main.py that you might want to reuse. I found it helpful to copy Session from it so I could override authenticate and have it return certain data I required upon login. Also copy all of the imported libraries from main.py too as they are all useful if not required.

Hi Mike, I have a problem in inherit class in web module. According to your answer, I did the following: 1. I have __init___.py & __openerp__.py &myweb folder in the new module, in _init_.py (import myweb), in openerp.py (depends=['web']) 2. in myweb folder, I have init.py(from . import mycontroller) & mycontroller.py(use the same content you provide). However, I can easily install the module, but the functions didn't change. Do you know why is that? do I need to add '_inherit = 'web' in mycontroller.py file? Please provide help and thanks a million!