LP#1646210 Add CN Affixes to Grids WIP
authorKyle Huckins <khuckins@catalyte.io>
Tue, 17 Oct 2017 20:11:25 +0000 (20:11 +0000)
committerKathy Lussier <klussier@masslnc.org>
Wed, 8 Nov 2017 20:18:16 +0000 (15:18 -0500)
Adds Call Number Suffixes and Prefixes to the following grids:
- Copy Buckets
- Pending Copy Buckets
- Checkin/Capture Holds
- Patron Holds
- Patron Checkout
- Patron Items Out
- Patron Bill History
- Holds Shelf
- Renew Items
- In-House Uses
- Bib Record View Holds
- Patron Bill History
- Transit List
- Copy Editor

Signed-off-by: Kyle Huckins <khuckins@catalyte.io>

 Changes to be committed:
modified:   Open-ILS/src/templates/staff/cat/bucket/copy/t_pending.tt2
modified:   Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
modified:   Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
modified:   Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
modified:   Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2
modified:   Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
modified:   Open-ILS/src/templates/staff/circ/in_house_use/index.tt2
modified:   Open-ILS/src/templates/staff/circ/patron/t_bill_history_xacts.tt2
modified:   Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
modified:   Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
modified:   Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
modified:   Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
modified:   Open-ILS/src/templates/staff/circ/transits/t_list.tt2
modified:   Open-ILS/web/js/ui/default/staff/circ/in_house_use/app.js
modified:   Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
modified:   Open-ILS/web/js/ui/default/staff/circ/services/circ.js
modified:   Open-ILS/web/js/ui/default/staff/circ/services/holds.js
modified:   Open-ILS/web/js/ui/default/staff/circ/transits/list.js

Signed-off-by: Kathy Lussier <klussier@masslnc.org>

18 files changed:
Open-ILS/src/templates/staff/cat/bucket/copy/t_pending.tt2
Open-ILS/src/templates/staff/cat/bucket/copy/t_view.tt2
Open-ILS/src/templates/staff/cat/catalog/t_holds.tt2
Open-ILS/src/templates/staff/cat/volcopy/t_edit.tt2
Open-ILS/src/templates/staff/circ/checkin/t_checkin_table.tt2
Open-ILS/src/templates/staff/circ/holds/t_shelf_list.tt2
Open-ILS/src/templates/staff/circ/in_house_use/index.tt2
Open-ILS/src/templates/staff/circ/patron/t_bill_history_xacts.tt2
Open-ILS/src/templates/staff/circ/patron/t_checkout.tt2
Open-ILS/src/templates/staff/circ/patron/t_holds_list.tt2
Open-ILS/src/templates/staff/circ/patron/t_items_out.tt2
Open-ILS/src/templates/staff/circ/renew/t_renew.tt2
Open-ILS/src/templates/staff/circ/transits/t_list.tt2
Open-ILS/web/js/ui/default/staff/circ/in_house_use/app.js
Open-ILS/web/js/ui/default/staff/circ/patron/items_out.js
Open-ILS/web/js/ui/default/staff/circ/services/circ.js
Open-ILS/web/js/ui/default/staff/circ/services/holds.js
Open-ILS/web/js/ui/default/staff/circ/transits/list.js

index 6391625..2396333 100644 (file)
@@ -47,7 +47,9 @@
       {{item['barcode']}}
     </a>
   </eg-grid-field>
+  <eg-grid-field label="[% l('CN Prefix') %]" path="call_number.prefix.label"></eg-grid-field>
   <eg-grid-field label="[% l('Call Number') %]" path="call_number.label" visible></eg-grid-field>
+  <eg-grid-field label="[% l('CN Suffix') %]" path="call_number.suffix.label"></eg-grid-field>
   <eg-grid-field label="[% l('Location') %]"    path="location.name" visible></eg-grid-field>
 
   <eg-grid-field label="[% l('Title') %]"
index 98308cc..fb7d3d1 100644 (file)
@@ -33,6 +33,8 @@
     </a>
   </eg-grid-field>
   <eg-grid-field label="[% l('Call Number') %]" path="call_number.label" visible></eg-grid-field>
+  <eg-grid-field label="[% l('CN Prefix') %]" path="call_number.prefix.label"></eg-grid-field>
+  <eg-grid-field label="[% l('CN Suffix') %]" path="call_number.suffix.label"></eg-grid-field>
   <eg-grid-field label="[% l('Location') %]"    path="location.name" visible></eg-grid-field>
 
   <eg-grid-field label="[% l('Title') %]"
index 1756822..937393e 100644 (file)
@@ -93,6 +93,8 @@
     </eg-grid-field>
 
     <eg-grid-field path='volume.*' parent-idl-class="acn" hidden></eg-grid-field>
+    <eg-grid-field path='volume.prefix.label' label="[% l('CN Prefix') %]" parent-idl-class="acn" hidden></eg-grid-field>
+    <eg-grid-field path='volume.suffix.label' label="[% l('CN Suffix') %]" parent-idl-class="acn" hidden></eg-grid-field>
     <eg-grid-field path='mvr.*' parent-idl-class="mvr" hidden></eg-grid-field>
   </eg-grid>
 
index ba58c12..1404983 100644 (file)
                           <eg-grid-field label="[% l('Barcode') %]"     path='barcode' visible></eg-grid-field>
                           <eg-grid-field label="[% l('Created') %]"     path="create_date" datatype="timestamp" visible></eg-grid-field>
                           <eg-grid-field label="[% l('Activated') %]"   path="active_date" visible></eg-grid-field>
+                          <eg-grid-field label="[% l('CN Prefix') %]" path="call_number.prefix.label" visible></eg-grid-field>
                           <eg-grid-field label="[% l('Call Number') %]" path="call_number.label" visible></eg-grid-field>
+                          <eg-grid-field label="[% l('CN Suffix') %]" path="call_number.suffix.label" visible></eg-grid-field>
                           <eg-grid-field label="[% l('Copy ID') %]"     path="id" hidden></eg-grid-field>
                         
                         </eg-grid>
index 4d34a61..8ff4853 100644 (file)
   <eg-grid-field path="circ.*" parent-idl-class="circ" hidden></eg-grid-field>
   <eg-grid-field path="acp.*" parent-idl-class="acp" hidden></eg-grid-field>
   <eg-grid-field path="acn.*" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path="acn.prefix.label" label="[% l('CN Prefix') %]" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path="acn.suffix.label" label="[% l('CN Suffix') %]" parent-idl-class="acn" hidden></eg-grid-field>
   <eg-grid-field path="record.*" parent-idl-class="mvr" hidden></eg-grid-field>
   <eg-grid-field path="mbts.*" parent-idl-class="mbts" hidden></eg-grid-field>
   <eg-grid-field path="au.*" parent-idl-class="au" hidden></eg-grid-field>
index 73c3cd1..649e346 100644 (file)
@@ -95,6 +95,8 @@
   <eg-grid-field path='hold.*' parent-idl-class="ahr" hidden></eg-grid-field>
   <eg-grid-field path='copy.*' parent-idl-class="acp" hidden></eg-grid-field>
   <eg-grid-field path='volume.*' parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path='volume.prefix.label' label="[% l('CN Prefix') %]" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path='volume.suffix.label' label="[% l('CN Suffix') %]" parent-idl-class="acn" hidden></eg-grid-field>
   <eg-grid-field path='mvr.*' parent-idl-class="mvr" hidden></eg-grid-field>
 </eg-grid>
 
index 0e3ab44..9889557 100644 (file)
@@ -74,7 +74,9 @@
 
   <eg-grid-field label="[% l('# of Uses') %]"   path='num_uses' visible></eg-grid-field>
   <eg-grid-field label="[% l('Barcode') %]"     path='copy.barcode' visible></eg-grid-field>
+  <eg-grid-field label="[% l('CN Prefix') %]" path="copy.call_number.prefix.label" visible></eg-grid-field>
   <eg-grid-field label="[% l('Call Number') %]" path="copy.call_number.label" visible></eg-grid-field>
+  <eg-grid-field label="[% l('CN Suffix') %]" path="copy.call_number.suffix.label" visible></eg-grid-field>
   <eg-grid-field label="[% l('Location') %]"    path="copy.location.name" visible></eg-grid-field>
   <eg-grid-field label="[% l('Title') %]"       path="title" visible></eg-grid-field>
 </eg-grid>
index d3bb64f..361eb79 100644 (file)
@@ -47,6 +47,8 @@
     <eg-grid-field path="summary.*" hidden></eg-grid-field>
     <eg-grid-field path="circulation.target_copy.*" hidden></eg-grid-field>
     <eg-grid-field path="circulation.target_copy.call_number.*" hidden></eg-grid-field>
+    <eg-grid-field path="circulation.target_copy.call_number.prefix.label" label="[% l('CN Prefix') %]" hidden></eg-grid-field>
+    <eg-grid-field path="circulation.target_copy.call_number.suffix.label" label="[% l('CN Suffix') %]" hidden></eg-grid-field>
   </eg-grid>
 </div>
 
index 773d911..ebcfb44 100644 (file)
   <eg-grid-field path="circ.*" parent-idl-class="circ" hidden></eg-grid-field>
   <eg-grid-field path="acp.*" parent-idl-class="acp" hidden></eg-grid-field>
   <eg-grid-field path="acn.*" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path="acn.prefix.label" label="[% l('CN Prefix') %]" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path="acn.suffix.label" label="[% l('CN Suffix') %]" parent-idl-class="acn" hidden></eg-grid-field>
   <eg-grid-field path="record.*" parent-idl-class="mvr" hidden></eg-grid-field>
   <eg-grid-field path="mbts.*" parent-idl-class="mbts" hidden></eg-grid-field>
   <eg-grid-field path="au.*" parent-idl-class="au" hidden></eg-grid-field>
index 286b7ec..82bfee6 100644 (file)
@@ -84,6 +84,8 @@
   <eg-grid-field path='hold.requestor.*' parent-idl-class="ahr" hidden></eg-grid-field>
   <eg-grid-field path='hold.requestor.card.*' parent-idl-class="ahr" hidden></eg-grid-field>
   <eg-grid-field path='volume.*' parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path='volume.prefix.label' label="[% l('CN Prefix') %]" parent-idl-class="acn" hidden></eg-grid-field>
+  <eg-grid-field path='volume.suffix.label' label="[% l('CN Suffix') %]" parent-idl-class="acn" hidden></eg-grid-field>
   <eg-grid-field path='mvr.*' parent-idl-class="mvr" hidden></eg-grid-field>
 </eg-grid>
 
index 4c354fd..4efa432 100644 (file)
@@ -99,6 +99,8 @@
   <eg-grid-field path="target_copy.circ_modifier" hidden></eg-grid-field>
   <eg-grid-field path="target_copy.*" hidden></eg-grid-field>
   <eg-grid-field path="target_copy.call_number.*" hidden></eg-grid-field>
+  <eg-grid-field path="target_copy.call_number.prefix.label" label="[% l('CN Prefix') %]" hidden></eg-grid-field>
+  <eg-grid-field path="target_copy.call_number.suffix.label" label="[% l('CN Suffix') %]" hidden></eg-grid-field>
   <eg-grid-field path="target_copy.call_number.record.*" hidden></eg-grid-field>
   <eg-grid-field path="target_copy.call_number.record.simple_record.*" hidden></eg-grid-field>
 </eg-grid>
index a84373a..344e851 100644 (file)
   <eg-grid-field label="[% l('Bill #') %]"     
     path='circ.id'></eg-grid-field>
 
-  <eg-grid-field label="[% l('Call Number') %]" 
+  <eg-grid-field label="[% l('CN Prefix') %]" 
+    path="acn.prefix.label"></eg-grid-field>
+
+  <eg-grid-field label="[% l('Call Number') %]"
     path="acn.label"></eg-grid-field>
 
+  <eg-grid-field label="[% l('CN Suffix') %]"
+    path="acn.suffix.label"></eg-grid-field>
+
   <eg-grid-field label="[% l('Due Date') %]"    
     path='circ.due_date' datecontext="circ_lib" dateonlyinterval="duration" datatype="timestamp"></eg-grid-field>
 
index 89e6972..f4507bb 100644 (file)
@@ -52,7 +52,9 @@
   </eg-grid-field>
   <eg-grid-field path='target_copy.circ_lib.shortname' hidden></eg-grid-field>
   <eg-grid-field path='target_copy.location.name' label="[% l('Copy Location') %]" hidden sortable></eg-grid-field>
+  <eg-grid-field label="[% l('CN Prefix') %]" path="target_copy.call_number.prefix.label"></eg-grid-field>
   <eg-grid-field path='target_copy.call_number.label' hidden sortable></eg-grid-field>
+  <eg-grid-field label="[% l('CN Suffix') %]" path="target_copy.call_number.suffix.label"></eg-grid-field>
   <eg-grid-field path='target_copy.call_number.record.simple_record.title' label="[% l('Title') %]" sortable>
     <a target="_self" href="[% ctx.base_path %]/staff/cat/catalog/record/{{item['target_copy.call_number.record.simple_record.id']}}">
       {{item['target_copy.call_number.record.simple_record.title']}}
index 69427d1..887e60b 100644 (file)
@@ -95,7 +95,7 @@ function($scope,  egCore,  egGridDataProvider , egConfirmDialog, egAlertDialog)
                 {   flesh : 3, 
                     flesh_fields : {
                         acp : ['call_number','location'],
-                        acn : ['record'],
+                        acn : ['record', 'prefix', 'suffix'],
                         bre : ['simple_record']
                     },
                     select : { bre : ['id'] } // avoid fleshing MARC
index 7df204a..6679af6 100644 (file)
@@ -107,7 +107,7 @@ function($scope,  $q,  $routeParams,  $timeout,  egCore , egUser,  patronSvc , $
                 flesh_fields : {
                     circ : ['target_copy', 'workstation', 'checkin_workstation'],
                     acp : ['call_number', 'holds_count', 'status', 'circ_lib'],
-                    acn : ['record', 'owning_lib'],
+                    acn : ['record', 'owning_lib', 'prefix', 'suffix'],
                     bre : ['simple_record']
                 },
                 // avoid fetching the MARC blob by specifying which 
index 4a5130b..27f9caa 100644 (file)
@@ -277,6 +277,14 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,
             return;
         }
 
+        // retrieve call number affixes prior to sending payload data to the grid
+        if (payload.volume && typeof payload.volume.prefix() != 'object') {
+            egCore.pcrud.retrieve('acnp',payload.volume.prefix()).then(function(p) {payload.volume.prefix(p)});
+        };
+        if (payload.volume && typeof payload.volume.suffix() != 'object') {
+            egCore.pcrud.retrieve('acns',payload.volume.suffix()).then(function(s) {payload.volume.suffix(s)});
+        };
+
         data.circ = payload.circ;
         data.parent_circ = payload.parent_circ;
         data.hold = payload.hold;
index 0254690..8b1d0f4 100644 (file)
@@ -455,6 +455,7 @@ function($uibModal , $q , egCore , egConfirmDialog , egAlertDialog) {
             || hold_data.status;
 
         var hold = hold_data.hold;
+        var volume = hold_data.volume;
         hold.pickup_lib(egCore.org.get(hold.pickup_lib()));
         hold.current_shelf_lib(egCore.org.get(hold.current_shelf_lib()));
         hold_data.id = hold.id();
@@ -487,6 +488,16 @@ function($uibModal , $q , egCore , egConfirmDialog , egAlertDialog) {
                 egCore.pcrud.retrieve('ccs',hold.current_copy().status()
                     ).then(function(c) { hold.current_copy().status(c) });
         }
+
+        //Call number affixes are not always fleshed in the API
+        if (volume.prefix() && typeof volume.prefix() != 'object') {
+            console.debug('fetching call number prefix');
+            egCore.pcrud.retrieve('acnp',volume.prefix()).then(function(p) {volume.prefix(p)});
+        }
+        if (volume.suffix() && typeof volume.suffix() != 'object') {
+            console.debug('fetching call number prefix');
+            egCore.pcrud.retrieve('acns',volume.suffix()).then(function(s) {volume.suffix(s)});
+        }
     }
 
     return service;
index 47789ae..0c13f3e 100644 (file)
@@ -256,7 +256,7 @@ function($scope , $q , $routeParams , $window , egCore , egTransits , egGridData
                 'flesh_fields' : {
                     'atc' : ['target_copy','dest','source','hold_transit_copy'],
                     'acp' : ['call_number','location','circ_lib'],
-                    'acn' : ['record'],
+                    'acn' : ['record', 'prefix', 'suffix'],
                     'bre' : ['simple_record'],
                     'ahtc' : ['hold'],
                     'ahr' : ['usr'],