[ZDP] BackTalk to Document The Zope Book (2.5 Edition)/Advanced Page Templates

nobody@nowhere.com nobody@nowhere.com
Tue, 13 Aug 2002 10:16:55 -0400


A comment to the paragraph below was recently added via http://www.zope.org/Documentation/Books/ZopeBook/current/AdvZPTold.stx#3-159

---------------

      Normally when you use batches you'll want to include navigation
      elements on the page to allow users to go from batch to batch.
      Here's a full-blow batching example that shows how to navigate
      between batches::

        <html>
          <head>
            <title tal:content="template/title">The title</title>
          </head>
          <body tal:define="employees  here/getEmployees;
                            start python:path('request/start') or 0;
                            batch python:modules['ZTUtils'].Batch(employees, 
                                                                  size=10, 
                                                                  start=start);
                            previous python:batch.previous;
                            next python:batch.next">

          <p>
            <a tal:condition="previous"
               tal:attributes="href string:${request/URL0}?start:int=${previous/first}"
               href="previous_url">previous</a>
            <a tal:condition="next"
               tal:attributes="href string:${request/URL0}?start:int=${next/first}"
               href="next_url">next</a>
          </p>

          <ul tal:repeat="employee batch" >
            <li>
              <span tal:replace="employee/name">Bob Jones</span>
              makes $<span tal:replace="employee/salary">100,000</span>
              a year.
            </li>
          </ul>

          </body>
        </html>

        % Anonymous User - Aug. 13, 2002 10:16 am:
         I copied the PT, and the line:

             start python:path('request/start') or 0;

         gave me an error:

             Error Value: start not found in 'request/start', at line 10, column 3 

         what works fine is:

             start request/start | python:0;