diff --git a/openerp/http.py b/openerp/http.py index 481aed04c0f..23c677f0620 100644 --- a/openerp/http.py +++ b/openerp/http.py @@ -532,11 +532,11 @@ def routing_map(modules, nodb_only, converters=None): for mk, mv in members: if inspect.ismethod(mv) and hasattr(mv, 'routing'): routing = dict(type='http', auth='user', methods=None, routes=None) + methods_done = list() for claz in reversed(mv.im_class.mro()): fn = getattr(claz, mv.func_name, None) - if fn and hasattr(fn, 'routing') and '__done__' not in fn.routing: - if not nodb_only: - fn.routing['__done__'] = True + if fn and hasattr(fn, 'routing') and fn not in methods_done: + methods_done.append(fn) routing.update(fn.routing) if not nodb_only or nodb_only == (routing['auth'] == "none"): assert routing['routes'], "Method %r has not route defined" % mv