X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=templates%2Ffactory%2Fview;h=19117b5e060836a5884b4e2977af5d4f72cdf653;hb=fef379e5f473ed4f21f9dc5fa6c36bf46a6b9729;hp=48dec99074ebdb887c4cdb4056cbba6898805e2c;hpb=0ad4ba7aa71b7dda17f0b07ccc9d8f0ad3424b82;p=maypole.git diff --git a/templates/factory/view b/templates/factory/view index 48dec99..19117b5 100644 --- a/templates/factory/view +++ b/templates/factory/view @@ -1,26 +1,76 @@ -[% MACRO button(obj, action) BLOCK; %] +[%# - -
- -
- -[% END %] +=for doc -[% INCLUDE header %] +The C template takes some objects (usually just one) from +C and displays the object's properties in a table. + +=cut +#%] +[% PROCESS macros %] +[% INCLUDE header %] [% FOR item = objects %] -

[% item.name %]

- -[% FOR col = classmetadata.columns.list; - NEXT IF col == "id"; - "

"; - classmetadata.colnames.$col; ":"; - " "; item.$col;"

"; - END; + [% SET string = item.stringify_column %] +
[% item.$string %]
+ [% INCLUDE navbar %] + + + + + + [% FOR col = classmetadata.columns.list; + NEXT IF col == "id" OR col == string; + NEXT UNLESS item.$col; + %] +[%# + +=for doc + +It gets the displayable form of a column's name from the hash returned +from the C method: + +#%] + + + + + [% END; %] +
[% classmetadata.colnames.$string %][% item.$string %]
[% classmetadata.colnames.$col; %] + [% IF col == "url" && item.url; # Possibly too much magic. + ' '; item.url; ''; + ELSE; + maybe_link_view(item.$col); + END; %] +[%# + +This tests whether or not the returned value is an object, and if so, +creates a link to a page viewing that object; if not, it just displays +the text as normal. The object is linked using its stringified name; +by default this calls the C method, or returns the object's ID +if there is no C method or other stringification method defined. + +=cut + +#%] +
+[%# + +=for doc + +The C template also displays a list of other objects related to the first +one via C style relationships; this is done by calling the +C method - see L - to return +a list of has-many accessors. Next it calls each of those accessors, and +displays the results in a table. + +#%] +
Back to listing +[% view_related(item); %] + +[% button(item, "edit"); button(item, "delete"); - ""; -END; %] - +[% END; %] +[% INCLUDE footer %]