. This may be considered too much magic
+for some.
+
+#%]
[% MACRO display_line(item) BLOCK;
- FOR col = classmetadata.columns;
+ FOR col = classmetadata.columns;
NEXT IF col == "id";
"";
- IF col == "url"; # Possibly too much magic.
- " "; item.url; "";
- ELSIF col == "name";
+ 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;
+ 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
-[% MACRO view_related(object) BLOCK;
+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";
- "";
+ ""; accessor | ucfirst; "
\n";
+ "";
FOR thing = object.$accessor;
- "- "; maybe_link_view(thing); "
\n";
+ "- "; maybe_link_view(thing); "
\n";
END;
- "
";
+ "
";
END;
END;
+
+MACRO test_xxxx(myblock) BLOCK;
+ FOR col = classmetadata.columns;
+ NEXT IF col == "id";
+ myblock;
+ END;
+END;
%]