[ZPT] CVS: Releases/Zope/lib/python/Products/PageTemplates/help - tal-repeat.stx:1.4.14.1

Evan Simpson evan@zope.com
Thu, 13 Dec 2001 15:26:04 -0500


Update of /cvs-repository/Releases/Zope/lib/python/Products/PageTemplates/help
In directory cvs.zope.org:/tmp/cvs-serv20474/Products/PageTemplates/help

Modified Files:
      Tag: Zope-2_5-branch
	tal-repeat.stx 
Log Message:
Merge changes from trunk


=== Releases/Zope/lib/python/Products/PageTemplates/help/tal-repeat.stx 1.4 => 1.4.14.1 ===
       o *end* - true for the ending, or final, repetition.
 
+      o *first* - true for the first item in a group - see note below
+
+      o *last* - true for the last item in a group - see note below
+
       o *length* - length of the sequence, which will be the total number
         of repetitions.
 
-      o *letter* - count reps with lower-case letters: "a" - "z", "aa" - "az",
-        "ba" - "bz", ..., "za" - "zz", "aaa" - "aaz", and so forth.
+      o *letter* - repetition number as a lower-case letter: "a" -
+        "z", "aa" - "az", "ba" - "bz", ..., "za" - "zz", "aaa" - "aaz",
+        and so forth.
 
       o *Letter* - upper-case version of *letter*.
 
+      o *roman* - repetition number as a lower-case roman numeral:
+        "i", "ii", "iii", "iv", "v", etc.
+
+      o *Roman* - upper-case version of *roman*.
+
     You can access the contents of the repeat variable using path
     expressions or Python expressions.  In path expressions, you write
     a three-part path consisting of the name 'repeat', the statement
@@ -59,6 +69,15 @@
     attribute access to get the information, for example,
     'python:repeat['item'].start'.
 
+    Note that 'first' and 'last' are intended for use with sorted
+    sequences.  They try to divide the sequence into group of items
+    with the same value.  If you provide a path, then the value
+    obtained by following that path from a sequence item is used for
+    grouping, otherwise the value of the item is used.  You can
+    provide the path by passing it as a parameter, as in
+    "python:repeat['item'].first('color')", or by appending it to the
+    path from the repeat variable, as in "repeat/item/first/color".
+
   Examples
 
     Iterating over a sequence of strings::    
@@ -88,5 +107,14 @@
                               z python:x*y"
                   tal:replace="string:$x * $y = $z">1 * 1 = 1</span>
           </td>
+        </tr>
+      </table>
+
+    Objects (already sorted by meta-type) in groups by meta-type::
+
+      <table border="1">
+        <tr tal:repeat="object objects">
+          <td><span tal:condition="repeat/object/first/meta_type"
+                    tal:replace="object/meta_type">Meta Type</span></td>
         </tr>
       </table>