. This may be considered too much magic
for some.
#%]
[% MACRO display_line(item) BLOCK;
FOR col = classmetadata.columns;
NEXT IF col == "id";
"";
IF col == "url" AND item.url;
' '; item.url; '';
ELSIF col == item.stringify_column;
maybe_link_view(item);
ELSE;
maybe_link_view(item.$col);
END;
" | ";
END;
"";
button(item, "edit");
button(item, "delete");
" | ";
END %]
[%#
=head2 button
This is a generic button, which performs an action on an object.
=cut
#%]
[% MACRO button(obj, action) BLOCK; %]
[% action %]
[% END %]
[%#
=head2 view_related
This takes an object, and looks up the C; this should
give a list of accessors that can be called to get a list of related
objects. It then displays a title for that accessor, (i.e. "Beers" for a
brewery) calls the accesor, and displays a list of the results.
=cut
#%]
[%
MACRO view_related(object) BLOCK;
FOR accessor = classmetadata.related_accessors.list;
""; accessor | ucfirst; "
\n";
"";
FOR thing = object.$accessor;
"- "; maybe_link_view(thing); "
\n";
END;
"
";
END;
END;
MACRO test_xxxx(myblock) BLOCK;
FOR col = classmetadata.columns;
NEXT IF col == "id";
myblock;
END;
END;
%]