Move schema.org availability logic into misc_utils.tt2 user/dbs/schema_holdings
authorDan Scott <dscott@laurentian.ca>
Mon, 19 Aug 2013 15:36:51 +0000 (11:36 -0400)
committerDan Scott <dscott@laurentian.ca>
Mon, 19 Aug 2013 15:36:51 +0000 (11:36 -0400)
Might as well make the availability logic reusable, if we opt to mark up
the search results pages with schema.org at some point in the future.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
Open-ILS/src/templates/opac/parts/misc_util.tt2
Open-ILS/src/templates/opac/parts/record/copy_table.tt2

index cdea2ad..363318d 100644 (file)
         schema_typemap.e = 'http://schema.org/Map';
         schema_typemap.j = 'http://schema.org/MusicAlbum';
 
+        # Hard-coded to match defaults in config.copy_status for all OPAC-visible statuses
+        schema_copy_status = {};
+        schema_copy_status.0 = '<link property="availability" href="http://schema.org/InStock" />'; # Available
+        schema_copy_status.1 = '<link property="availability" href="http://schema.org/OutOfStock" />'; # Checked out
+        schema_copy_status.5 = '<link property="availability" href="http://schema.org/PreOrder" />'; # In process
+        schema_copy_status.6 = '<link property="availability" href="http://schema.org/PreOrder" />'; # In transit
+        schema_copy_status.7 = '<link property="availability" href="http://schema.org/InStock" />'; # Reshelving
+        schema_copy_status.8 = '<link property="availability" href="http://schema.org/OutOfStock" />'; # On holds shelf
+        schema_copy_status.9 = '<link property="availability" href="http://schema.org/PreOrder" />'; # On order
+        schema_copy_status.12 = '<link property="availability" href="http://schema.org/InStoreOnly" />'; # Reserves
+
         args.isbns = [];
         FOR isbn IN xml.findnodes('//*[@tag="020"]/*[@code="a"]');
             args.isbns.push(isbn.textContent);
index d38c61e..c7dbdea 100644 (file)
@@ -176,16 +176,7 @@ END; # FOREACH bib
                 END %]</td>
             [%- END %]
             <td header='copy_header_status'>[%-
-                # Hard-coded to match defaults in config.copy_status
-                IF (copy_info.status_code == 0 OR copy_info.status_code == 7);
-                    '<link property="availability" href="http://schema.org/InStock" />';
-                ELSIF copy_info.status_code == 1;
-                    '<link property="availability" href="http://schema.org/OutOfStock" />';
-                ELSIF copy_info.status_code == 9;
-                    '<link property="availability" href="http://schema.org/PreOrder" />';
-                ELSIF copy_info.status_code == 12;
-                    '<link property="availability" href="http://schema.org/InStoreOnly" />';
-                END;
+                schema_copy_status.${copy_info.status_code};
                 copy_info.copy_status | html;
             -%]</td>
             <td header='due_date'>[%
@@ -201,7 +192,7 @@ END; # FOREACH bib
 
         [% IF copy_info.notes; %]
             [% FOREACH note IN copy_info.notes; %]
-                <tr><td>&nbsp;</td><td class="copy_note" colspan="4"><strong>[% note.title | html %]:</strong> [% note.value | html %]</td></tr>
+                <tr><td>&nbsp;</td><td class="copy_note" colspan="4" property="description"><strong>[% note.title | html %]:</strong> [% note.value | html %]</td></tr>
             [% END %]
         [% END %]