#!/usr/bin/python toy5.py hx:page (c:list (ui:Param story bu:getStoryByKey)) (h:h1 'Status of "\(story.bu:title)"') (h:p (ui:item "Author" "\(story.bu:author) (\(hx:email story.bu:email))")) (h:p (ui:item "Author's status page" (hx:uri story.ui:statusURI))) (h:p (c:for chg story.bu:statuschanges (hx:l (ui:item chg.bu:newStatus "\(chg.bu:date) - " (c:if (c:not chg.bu:hasLetter) (h:i "(no letter)") c:elif (== chg.bu:newStatus bu:Received) (hx:link "#coverletter" "Coverletter") c:elif chg.bu:isFormletter (hx:link "#\(chg.bu:key)" (+ "Form letter" (c:if chg.bu:formletterName ": \(chg.bu:formletterName)"))) c:else (hx:link "#\(chg.bu:key)" "Personalized letter")))))) (h:hr) *((c:for chg story.bu:statuschanges (c:if (chg.bu:hasLetter) (c:list (h:p (ui:item chg.bu:newStatus chg.bu:date)) (h:p chg.bu:letter))) ).(c:join h:hr))