summaryrefslogtreecommitdiff
path: root/odoo/http.py
diff options
context:
space:
mode:
Diffstat (limited to 'odoo/http.py')
-rw-r--r--odoo/http.py18
1 files changed, 6 insertions, 12 deletions
diff --git a/odoo/http.py b/odoo/http.py
index 94445401801..721746ee7ce 100644
--- a/odoo/http.py
+++ b/odoo/http.py
@@ -908,9 +908,8 @@ class EndPoint(object):
def __call__(self, *args, **kw):
return self.method(*args, **kw)
-def routing_map(modules, nodb_only, converters=None):
- routing_map = werkzeug.routing.Map(strict_slashes=False, converters=converters)
+def _generate_routing_rules(modules, nodb_only, converters=None):
def get_subclasses(klass):
def valid(c):
return c.__module__.startswith('odoo.addons.') and c.__module__.split(".")[2] in modules
@@ -949,16 +948,8 @@ def routing_map(modules, nodb_only, converters=None):
assert routing['routes'], "Method %r has not route defined" % mv
endpoint = EndPoint(mv, routing)
for url in routing['routes']:
- if routing.get("combine", False):
- # deprecated v7 declaration
- url = o._cp_path.rstrip('/') + '/' + url.lstrip('/')
- if url.endswith("/") and len(url) > 1:
- url = url[: -1]
+ yield (url, endpoint, routing)
- xtra_keys = 'defaults subdomain build_only strict_slashes redirect_to alias host'.split()
- kw = {k: routing[k] for k in xtra_keys if k in routing}
- routing_map.add(werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods'], **kw))
- return routing_map
#----------------------------------------------------------
# HTTP Sessions
@@ -1276,7 +1267,10 @@ class Root(object):
@lazy_property
def nodb_routing_map(self):
_logger.info("Generating nondb routing")
- return routing_map([''] + odoo.conf.server_wide_modules, True)
+ routing_map = werkzeug.routing.Map(strict_slashes=False, converters=None)
+ for url, endpoint, routing in odoo.http._generate_routing_rules([''] + odoo.conf.server_wide_modules, True):
+ routing_map.add(werkzeug.routing.Rule(url, endpoint=endpoint, methods=routing['methods']))
+ return routing_map
def __call__(self, environ, start_response):
""" Handle a WSGI request