[IMP] models route converter

bzr revid: al@openerp.com-20131031115429-h14hly3i6yn48q3j
This commit is contained in:
Antony Lesuisse
2013-10-31 12:54:29 +01:00
parent b40a8f34ea
commit b975f9a13b
+18 -1
View File
@@ -861,6 +861,23 @@ class ModelConverter(routing.BaseConverter):
def to_url(self, value):
return value.id
class ModelsConverter(routing.BaseConverter):
def __init__(self, url_map, model=False):
super(ModelConverter, self).__init__(url_map)
self.model = model
# TODO add support for slug in the form [A-Za-z0-9-] bla-bla-89 -> id 89
self.regex = '([0-9,]+)'
def to_python(self, value):
# TODO:
# - raise routing.ValidationError() if no browse record can be createdm
# - support slug
return request.registry[self.model].browse(request.cr, request.uid, [int(i) for i in value.split(',')], context=request.context)
def to_url(self, value):
return ",".join([i.id for i in value])
class Root(object):
"""Root WSGI application for the OpenERP Web Client.
"""
@@ -982,7 +999,7 @@ class Root(object):
def _build_router(self, db):
_logger.info("Generating routing configuration for database %s" % db)
routing_map = routing.Map(strict_slashes=False, converters={'model': ModelConverter})
routing_map = routing.Map(strict_slashes=False, converters={'model': ModelConverter, 'models': ModelsConverter})
def gen(modules, nodb_only):
for module in modules: