Unlike other tags, the dtml-let tag is quote-sensitive, requiring that attribute values are quoted. So in the above code, you're trying to evaluate the expression "1=1", which isn't valid Python code (you're trying to assign a value to a value). What you want is:
<dtml-let criteria="'1=1'">
Thanks. After scouring through all the docs that I can lay my hands on I finally found an implicit reference to the above usage of dtml-let in "HowTo: Advanced DTML techniques". <dtml-gripe> One of the main stumbling blocks in getting to grips with Zope is the incoherent documentation. The information one needs is scattered about in countless docs so a lot of the time will be spent searching those docs. This isn't helped by the fact that the guides and how-to's themselves contain many errors in the examples. </dtml-gripe> But many thanks to the kind people on this list who have responded swiftly to my questions. - Jason Wong