backport stable
authorSylvain Thénault <sylvain.thenault@logilab.fr>
Mon, 07 Nov 2011 18:09:13 +0100
changeset 8064 6d8eb873256d
parent 8061 88ca47ceb9f2 (current diff)
parent 8063 1b2a05c9b71c (diff)
child 8065 8a933961938e
backport stable
web/request.py
--- a/doc/book/en/devrepo/repo/hooks.rst	Mon Nov 07 10:56:39 2011 +0100
+++ b/doc/book/en/devrepo/repo/hooks.rst	Mon Nov 07 18:09:13 2011 +0100
@@ -110,7 +110,7 @@
             parents.add(parent.eid)
 
 
-    class CheckSubsidiaryCycleOp(DataOperationMixIn, Operation):
+    class CheckSubsidiaryCycleOp(Operation):
 
         def precommit_event(self):
             check_cycle(self.session, self.eidto, 'subsidiary_of')
@@ -145,7 +145,7 @@
        def __call__(self):
            CheckSubsidiaryCycleOp.get_instance(self._cw).add_data(self.eidto)
 
-   class CheckSubsidiaryCycleOp(Operation):
+   class CheckSubsidiaryCycleOp(DataOperationMixIn, Operation):
 
        def precommit_event(self):
            for eid in self.get_data():
--- a/web/request.py	Mon Nov 07 10:56:39 2011 +0100
+++ b/web/request.py	Mon Nov 07 18:09:13 2011 +0100
@@ -793,8 +793,13 @@
         The global doctype and xmldec must also be changed otherwise the browser
         will display '<[' at the beginning of the page
         """
-        self.set_content_type('text/html')
-        self.main_stream.set_doctype(TRANSITIONAL_DOCTYPE_NOEXT)
+        if not self.vreg.config['force-html-content-type']:
+            if not hasattr(self, 'main_stream'):
+                raise Exception("Can't demote to html from an ajax context. You "
+                                "should change force-html-content-type to yes "
+                                "in the instance configuration file.")
+            self.set_content_type('text/html')
+            self.main_stream.set_doctype(TRANSITIONAL_DOCTYPE_NOEXT)
 
     def set_doctype(self, doctype, reset_xmldecl=True):
         """helper method to dynamically change page doctype