[FIX] Response default mimetype
authorFabien Meghazi <fme@openerp.com>
Wed, 19 Feb 2014 10:29:03 +0000 (11:29 +0100)
committerFabien Meghazi <fme@openerp.com>
Wed, 19 Feb 2014 10:29:03 +0000 (11:29 +0100)
bzr revid: fme@openerp.com-20140219102903-h8n070qqbbhlnenr

openerp/http.py

index 114d3cc..ed66e13 100644 (file)
@@ -275,10 +275,15 @@ def route(route=None, **kw):
                 return response
             elif isinstance(response, LazyResponse):
                 raise "TODO: remove LazyResponses ???"
-            else:
+            elif isinstance(response, werkzeug.wrappers.BaseResponse):
                 response = Response.force_type(response)
                 response.set_default()
                 return response
+            elif isinstance(response, basestring):
+                return Response(response)
+            else:
+                raise "TODO: shall we autorise this ?"
+                return response
         response_wrap.routing = routing
         return response_wrap
     return decorator
@@ -490,7 +495,7 @@ class HttpRequest(WebRequest):
                 response.set_cookie(k, v)
         return response
 
-    def render(self, template, qcontext=None, mimetype='text/html', **kw):
+    def render(self, template, qcontext=None, **kw):
         """ Lazy render of QWeb template.
 
         The actual rendering of the given template will occur at then end of
@@ -500,7 +505,7 @@ class HttpRequest(WebRequest):
         :param basestring template: template to render
         :param dict qcontext: Rendering context to use
         """
-        return Response(template=template, qcontext=qcontext, mimetype=mimetype, **kw)
+        return Response(template=template, qcontext=qcontext, **kw)
 
     def not_found(self, description=None):
         """ Helper for 404 response, return its result from the method
@@ -929,6 +934,7 @@ class Response(werkzeug.wrappers.Response):
     :param dict qcontext: Rendering context to use
     :param int uid: User id to use for the ir.ui.view render call
     """
+    default_mimetype = 'text/html'
     def __init__(self, *args, **kw):
         template = kw.pop('template', None)
         qcontext = kw.pop('qcontext', None)