[Subversion] / PEAK / src / peak / web / templates.py  

Diff of /PEAK/src/peak/web/templates.py

Parent Directory | Revision Log

version 1751, Fri Jun 4 17:02:55 2004 UTC version 1752, Fri Jun 4 22:34:24 2004 UTC
Line 20 
Line 20 
 from interfaces import *  from interfaces import *
 from xml.sax.saxutils import quoteattr, escape  from xml.sax.saxutils import quoteattr, escape
 from publish import TraversalPath  from publish import TraversalPath
   from environ import getAbsoluteURL, getInteraction, getCurrent
   from environ import childContext, parentContext
   
 __all__ = [  __all__ = [
     'TEMPLATE_NS', 'DOMLETS_PROPERTY', 'DOMletParser', 'TemplateDocument'      'TEMPLATE_NS', 'DOMLETS_PROPERTY', 'DOMletParser', 'TemplateDocument'
Line 37 
Line 39 
   
   
   
   
   
 class DOMletState(binding.Component):  class DOMletState(binding.Component):
   
     """Execution state for a DOMlet"""      """Execution state for a DOMlet"""
Line 80 
Line 80 
   
   
   
 class DOMletAsWebPage(binding.Component):  class DOMletAsHTTP(binding.Component):
   
     """Render a template component"""      """Render a template component"""
   
     protocols.advise(      protocols.advise(
         instancesProvide = [IWebPage],          instancesProvide = [IHTTPHandler],
         asAdapterForProtocols = [IDOMletNode],          asAdapterForProtocols = [IDOMletNode],
         factoryMethod = 'fromNode'          factoryMethod = 'fromNode'
     )      )
Line 97 
Line 97 
   
     fromNode = classmethod(fromNode)      fromNode = classmethod(fromNode)
   
     def render(self, context):      def handle_http(self, environ, input, errors):
         myOwner = context.getParentComponent()          myOwner = parentContext(environ)
   
         data = []          data = []
   
         self.templateNode.renderFor(          self.templateNode.renderFor(
             myOwner,              myOwner,
             DOMletState(              DOMletState(myOwner, write=data.append)
                 myOwner, write=data.append  
             )  
         )          )
         return unicodeJoin(data)  
   
           return '200 OK', [], [unicodeJoin(data)]    # XXX content-type
   
   
   
Line 635 
Line 635 
   
         write = state.write          write = state.write
         write(self._openTag)          write(self._openTag)
         write(escape(unicode(data.subject)))          write(escape(unicode(getCurrent(data))))
         write(self._closeTag)          write(self._closeTag)
   
   
Line 649 
Line 649 
   
         write = state.write          write = state.write
         write(self._openTag)          write(self._openTag)
         write(unicode(data.subject))          write(unicode(getCurrent(data)))
         write(self._closeTag)          write(self._closeTag)
   
   
Line 706 
Line 706 
         if self.dataSpec:          if self.dataSpec:
             data, state = self._traverse(data, state)              data, state = self._traverse(data, state)
   
         url = unicode(data.absoluteURL)          url = unicode(getAbsoluteURL(data))
   
         if not self.optimizedChildren and not self.nonEmpty:          if not self.optimizedChildren and not self.nonEmpty:
             state.write(self._emptyTag % locals())              state.write(self._emptyTag % locals())
Line 730 
Line 730 
         write = state.write          write = state.write
   
         write(self._openTag)          write(self._openTag)
         write(unicode(data.absoluteURL))          write(unicode(getAbsoluteURL(data)))
         write(self._closeTag)          write(self._closeTag)
   
   
Line 787 
Line 787 
         state.write(self._openTag)          state.write(self._openTag)
   
         nextPattern = infiniter(self.params['listItem']).next          nextPattern = infiniter(self.params['listItem']).next
         allowed     = data.interaction.allows          allowed     = getInteraction(data).allows
         subcontext  = data.subcontext  
         ct = 0          ct = 0
   
         # XXX this should probably use an iteration location, or maybe          # XXX this should probably use an iteration location, or maybe
         # XXX put some properties in execution context for loop vars?          # XXX put some properties in execution context for loop vars?
   
         for item in data.subject:          for item in getCurrent(data):
   
             if not allowed(item):              if not allowed(item):
                 continue                  continue
Line 803 
Line 802 
                 for child in self.params.get('header',()):                  for child in self.params.get('header',()):
                     child.renderFor(data,state)                      child.renderFor(data,state)
   
             loc = subcontext(str(ct), item)              loc = childContext(data, str(ct), item)
             nextPattern().renderFor(loc, state)              nextPattern().renderFor(loc, state)
             ct += 1              ct += 1
   
Line 818 
Line 817 
         state.write(self._closeTag)          state.write(self._closeTag)
   
   
   


Generate output suitable for use with a patch program
Legend:
Removed from v.1751  
changed lines
  Added in v.1752

cvs-admin@eby-sarna.com

Powered by ViewCVS 1.0-dev

ViewCVS and CVS Help