Commit 1626b81c authored by 's avatar

Updated from 2.2 branch

parent bc02ebac
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""DTML Document objects.""" """DTML Document objects."""
__version__='$Revision: 1.35 $'[11:-2] __version__='$Revision: 1.36 $'[11:-2]
from DocumentTemplate.DT_Util import InstanceDict, TemplateDict from DocumentTemplate.DT_Util import InstanceDict, TemplateDict
from ZPublisher.Converters import type_converters from ZPublisher.Converters import type_converters
from Globals import HTML, HTMLFile, MessageDialog from Globals import HTML, HTMLFile, MessageDialog
...@@ -153,12 +153,14 @@ class DTMLDocument(PropertyManager, DTMLMethod): ...@@ -153,12 +153,14 @@ class DTMLDocument(PropertyManager, DTMLMethod):
Response, and key word arguments.""" Response, and key word arguments."""
kw['document_id'] =self.id kw['document_id'] =self.id
kw['document_title']=self.title kw['document_title']=self.title
if hasattr(self, 'aq_explicit'): bself=self.aq_explicit if hasattr(self, 'aq_explicit'):
bself=self.aq_explicit
else: bself=self else: bself=self
security=getSecurityManager() security=getSecurityManager()
security.addContext(self) security.addContext(self)
try:
try:
if client is None: if client is None:
# Called as subtemplate, so don't need error propigation! # Called as subtemplate, so don't need error propigation!
r=apply(HTML.__call__, (self, bself, REQUEST), kw) r=apply(HTML.__call__, (self, bself, REQUEST), kw)
...@@ -166,21 +168,19 @@ class DTMLDocument(PropertyManager, DTMLMethod): ...@@ -166,21 +168,19 @@ class DTMLDocument(PropertyManager, DTMLMethod):
return decapitate(r, RESPONSE) return decapitate(r, RESPONSE)
r=apply(HTML.__call__, (self, (client, bself), REQUEST), kw) r=apply(HTML.__call__, (self, (client, bself), REQUEST), kw)
if type(r) is not type(''): return r
if RESPONSE is None: return r
finally: security.removeContext(self) finally: security.removeContext(self)
have_key=RESPONSE.headers.has_key
if type(r) is not type(''): return r if not (have_key('content-type') or have_key('Content-Type')):
if RESPONSE is None: return r
hh=RESPONSE.headers.has_key
if not (hh('content-type') or hh('Content-Type')):
if self.__dict__.has_key('content_type'): if self.__dict__.has_key('content_type'):
c=self.content_type c=self.content_type
else: else:
c, e=guess_content_type(self.__name__, r) c, e=guess_content_type(self.__name__, r)
RESPONSE.setHeader('Content-Type', c) RESPONSE.setHeader('Content-Type', c)
return r return decapitate(r, RESPONSE)
......
...@@ -84,7 +84,7 @@ ...@@ -84,7 +84,7 @@
############################################################################## ##############################################################################
"""DTML Method objects.""" """DTML Method objects."""
__version__='$Revision: 1.50 $'[11:-2] __version__='$Revision: 1.51 $'[11:-2]
import History import History
from Globals import HTML, HTMLFile, MessageDialog from Globals import HTML, HTMLFile, MessageDialog
...@@ -166,16 +166,16 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager, ...@@ -166,16 +166,16 @@ class DTMLMethod(HTML, Acquisition.Implicit, RoleManager,
r=apply(HTML.__call__, (self, client, REQUEST), kw) r=apply(HTML.__call__, (self, client, REQUEST), kw)
if type(r) is not type(''): return r if type(r) is not type(''): return r
if RESPONSE is None: return r if RESPONSE is None: return r
finally: security.removeContext(self) finally: security.removeContext(self)
# Ick. I don't like this. But someone can override it with have_key=RESPONSE.headers.has_key
# a header if they have to. if not (have_key('content-type') or have_key('Content-Type')):
hh=RESPONSE.headers.has_key if self.__dict__.has_key('content_type'):
if not (hh('content-type') or hh('Content-Type')): c=self.content_type
c, e=guess_content_type(self.__name__, r) else:
c, e=guess_content_type(self.__name__, r)
RESPONSE.setHeader('Content-Type', c) RESPONSE.setHeader('Content-Type', c)
return decapitate(r, RESPONSE) return decapitate(r, RESPONSE)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment