LP 1772053: Add Missing Fields to Print Templates
authorDan Pearl <dpearl@cwmars.org>
Fri, 7 Sep 2018 17:18:56 +0000 (13:18 -0400)
committerChris Sharp <csharp@georgialibraries.org>
Tue, 28 Apr 2020 17:24:02 +0000 (13:24 -0400)
Almost complete implementation for LP1772053.  To be done: items
relating to call numbers, prefixes and suffixes for Hold Pull Lists
and Transit Slips.

Signed-off-by: Daniel Pearl <dpearl@cwmars.org>
Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>

15 files changed:
Open-ILS/src/templates/staff/share/print_templates/t_bills_current.tt2
Open-ILS/src/templates/staff/share/print_templates/t_bills_historical.tt2
Open-ILS/src/templates/staff/share/print_templates/t_checkout.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_pull_list.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_shelf_list.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_shelf_slip.tt2
Open-ILS/src/templates/staff/share/print_templates/t_hold_transit_slip.tt2
Open-ILS/src/templates/staff/share/print_templates/t_items_out.tt2
Open-ILS/src/templates/staff/share/print_templates/t_renew.tt2
Open-ILS/src/templates/staff/share/print_templates/t_transit_slip.tt2
Open-ILS/web/js/ui/default/staff/admin/workstation/app.js
Open-ILS/web/js/ui/default/staff/circ/patron/bills.js
Open-ILS/web/js/ui/default/staff/circ/patron/checkout.js
Open-ILS/web/js/ui/default/staff/circ/renew/app.js
Open-ILS/web/js/ui/default/staff/circ/services/circ.js

index cf6df66..af7dd0c 100644 (file)
@@ -20,9 +20,27 @@ to this template includes:
     pref_ versions of all name fields (e.g. pref_family_name);
 * transasctions - a list of transactions, each of which
   contains:
+    xact.id - Bill unique id
+    xact.title - Copy title
+    xact.copy_barcode - Copy barcode
+    xact.xact_finish - Billing finish date and time
+    xact.xact_start - Billing start date and time
     xact.summary - information about the transaction
-    xact.title - Item title
-    xact.copy_barcode - Item barcode
+    xact.summary.balance_owed - Balance owed
+    xact.summary.last_billing_note - Last billing note
+    xact.summary.last_billing_type - Last billing type
+    xact.summary.last_payment_note - Last payment note
+    xact.summary.last_payment_ts - Last payment date and time 
+    xact.summary.last_payment_type - Last payment type
+    xact.summary.total_owed - Total billed 
+    xact.summary.total_paid - Total paid
+    xact.summary.xact_type - Billing type 
+    xact.call_number - Information about the copy
+    xact.call_number.label - Copy call number
+    xact.call_number.prefix - Copy call number prefix
+    xact.call_number.suffix - Copy call number suffix
+    xact.call_number.owning_lib.name - The owning library's name
+    xact.call_number.owning_lib.shortname - The owning library's shortname
 -->
 Welcome to {{current_location.name}}!<br/>
 You have the following bills:
index 9c66cc9..ab0da69 100644 (file)
@@ -19,24 +19,27 @@ to this template includes:
     patron.has_phone - Whether or not the patron has a phone number
     pref_ versions of all name fields (e.g. pref_family_name);
 * transasctions - a list of transactions, each of which contains:
-  xact.id - Bill unique id
-  xact.copy_barcode - Item barcode
-  xact.xact_finish - Billing finish date and time
-  xact.xact_start - Billing start date and time
-  xact.summary - Information about the transaction
-    xact.summary.balance_owed - Balance owed
-    xact.summary.last_billing_note - Last billing note
-    xact.summary.last_billing_type - Last billing type
-    xact.summary.last_payment_note - Last payment note
-    xact.summary.last_payment_ts - Last payment date and time 
-    xact.summary.last_payment_type - Last payment type
-    xact.summary.total_owed - Total billed 
-    xact.summary.total_paid - Total paid
-    xact.summary.xact_type - Billing type 
-  xact.title - Item title
+    xact.id - Bill unique id
+    xact.title - Copy title
+    xact.copy_barcode - Copy barcode
+    xact.xact_finish - Billing finish date and time
+    xact.xact_start - Billing start date and time
     xact.summary - information about the transaction
-    xact.title - Item title
-    xact.copy_barcode - Item barcode
+      xact.summary.balance_owed - Balance owed
+      xact.summary.last_billing_note - Last billing note
+      xact.summary.last_billing_type - Last billing type
+      xact.summary.last_payment_note - Last payment note
+      xact.summary.last_payment_ts - Last payment date and time 
+      xact.summary.last_payment_type - Last payment type
+      xact.summary.total_owed - Total billed 
+      xact.summary.total_paid - Total paid
+      xact.summary.xact_type - Billing type 
+    xact.call_number - Information about the copy
+      xact.call_number.label - Copy call number
+      xact.call_number.prefix - Copy call number prefix
+      xact.call_number.suffix - Copy call number suffix
+      xact.call_number.owning_lib.name - The owning library's name
+      xact.call_number.owning_lib.shortname - The owning library's shortname
 
 -->
 Welcome to {{current_location.name}}!<br/>
index 646c383..c0fffbb 100644 (file)
@@ -23,12 +23,17 @@ Template for printing checkout receipts; fields available include:
   * has_phone - same as has_email
 
 * circulations - list of loans made during this session. Each
-  includes:
+  checkout includes:
 
-  * title
-  * author
-  * copy.barcode
-  * circ.due_date
+  * checkout.title
+  * checkout.author
+  * checkout.circ.due_date
+  * checkout.circ.renewal_remaining
+  * checkout.copy.barcode
+  * checkout.copy.circ_modifier
+  * checkout.copy.call_number.label
+  * checkout.copy.call_number.owning_lib.name
+  * checkout.copy.call_number.owning_lib.shortname
 
 -->
 <div>
index bd0586f..292f60c 100644 (file)
@@ -1,14 +1,14 @@
 <!--
 Template for printing a table of holds to pull. Fields include:
 
-* holds - list of holds, each of which includes:
+* holds - list of holds, each hold_data item includes:
 
-  * title
-  * author
-  * hold.hold_type
-  * copy.location_name
-  * volume.label - call number
-  * copy.barcode
+  * hold_data.title
+  * hold_data.author
+  * hold_data.hold.hold_type
+  * hold_data.copy.barcode
+  * hold_data.copy.location_name
+  * hold_data.volume.label - call number
 -->
 <table id='pull-list-template-table'>
   <style>
index a92f45c..a948882 100644 (file)
@@ -3,6 +3,8 @@ Template for printing a list of items on the hold shelf. Fields include:
 
 * holds - list of hold requests, including
 
+  * call_number.label
+  * call
   * patron_alias
   * patron_last
   * patron_first
index c85ce9d..aca7f63 100644 (file)
@@ -1,7 +1,9 @@
 <!--
 Template for printing hold request slips. Fields include:
 
-* call_number.label/prefix/suffix
+* call_number.label
+* call number.prefix.label
+* call_number.suffix.label
 * hold.behind_desk
 * copy.barcode
 * title
index 8345af0..787c91c 100644 (file)
@@ -11,6 +11,7 @@ Template for printing hold transit slips. Fields include:
 * dest_courier_code - from lib.courier_code library setting
 * hold.behind_desk
 * copy.barcode
+* copy.status.name - Copy status
 * title
 * patron.family_name
 * patron.first_given_name
index 2092ad9..2661c24 100644 (file)
@@ -18,13 +18,18 @@ Fields include:
   * has_email - boolean value to show/hide elements on the receipt
   * has_phone - same as has_email
 
-* circulations - list of current loans, including
+* circulations - list of current loans, including for each checkout
 
-  * title
-  * author
-  * call_number.label
-  * copy.barcode
-  * circ.due_date
+  * checkout.title
+  * checkout.author
+  * checkout.circ.due_date
+  * checkout.circ.renewal_remaining
+  * checkout.copy.barcode
+  * checkout.copy.circ_modifier.name
+  * checkout.copy.call_number.label
+  * checkout.copy.call_number.owning_lib.name
+  * checkout.copy.call_number.owning_lib.shortname
+  * checkout.copy.location.name - Shelving location
 
 -->
 <div>
index 9d4510f..c7587e7 100644 (file)
@@ -2,10 +2,19 @@
 Template for printing a renewal receipt. Fields include:
 
 * circulations - list of renewals made during the session, including
+  for each renewal:
 
-  * title
-  * copy.barcode
-  * circ.due_date
+  * renewal.title
+  * renewal.author
+  * renewal.circ.due_date
+  * renewal.circ.renewal_remaining
+  * renewal.circ.circ_lib
+  * renewal.circ.duration
+  * renewal.copy.barcode
+  * renewal.copy.circ_modifier
+  * renewal.copy.call_number.label
+  * renewal.copy.call_number.owning_lib.name
+  * renewal.copy.call_number.owning_lib.shortname
 
 -->
 <div>
index bee4573..852d75a 100644 (file)
@@ -10,6 +10,7 @@ Template for printing a transit slip. Fields include:
 * dest_address.post_code
 * dest_courier_code - from lib.courier_code library setting
 * copy.barcode
+* copy.status.name - Copy status
 * title
 * author
 -->
@@ -28,9 +29,9 @@ Template for printing a transit slip. Fields include:
   </div>
   <br/>
 
-  [% l('Barcode: [_1]', '{{copy.barcode}}') %]</div>
-  [% l('Title: [_1]', '{{title}}') %]</div>
-  [% l('Author: [_1]', '{{author}}') %]</div>
+ [% l('Barcode: [_1]', '{{copy.barcode}}') %]</div>
+ [% l('Title: [_1]', '{{title}}') %]</div>
+ [% l('Author: [_1]', '{{author}}') %]</div>
 
   <br/>
 
index 9dfbc9c..dbb4f80 100644 (file)
@@ -458,16 +458,28 @@ function($scope , $q , egCore , ngToast) {
                 simple_record : {
                     'title' : 'Test Title'
                 }
+            },
+            owning_lib : {
+                name : 'Ankers Memorial Library',
+                shortname : 'Ankers'
             }
         },
+        circ_modifier : {
+               name : 'Book'
+                },
         location : {
             name : 'General Collection'
         },
+        status : {
+            name : 'In Transit'
+        },
         // flattened versions for item status template
         // TODO - make this go away
         'call_number.label' : '636.8 JON',
         'call_number.record.simple_record.title' : 'Test Title',
-        'location.name' : 'General Colleciton'
+        'location.name' : 'General Collection',
+        'call_number.owning_lib.name' : 'Ankers Memorial Library',
+        'call_number.owning_lib.shortname' : 'Ankers'
     }
 
     var one_hold = {
@@ -502,6 +514,15 @@ function($scope , $q , egCore , ngToast) {
                 id : 1,
                 xact_start : new Date().toISOString(),
                 xact_finish : new Date().toISOString(),
+               call_number : {
+                       label : "spindler",
+                       prefix : "biography",
+                       suffix : "Closed Stacks",
+                       owning_lib : {
+                          name : "Mineola Public Library",
+                           shortname : "Mineola"
+                                     }
+                               },
                 summary : {
                     xact_type : 'circulation',
                     last_billing_type : 'Overdue materials',
@@ -516,6 +537,15 @@ function($scope , $q , egCore , ngToast) {
                 id : 2,
                 xact_start : new Date().toISOString(),
                 xact_finish : new Date().toISOString(),
+               call_number : {
+                       label : "796.6 WEI",
+                       prefix : "",
+                       suffix : "REF",
+                       owning_lib : {
+                          name : "Rogers Reading Room",
+                           shortname : "Rogers"
+                                     }
+                               },
                 summary : {
                     xact_type : 'circulation',
                     last_billing_type : 'Overdue materials',
@@ -549,12 +579,13 @@ function($scope , $q , egCore , ngToast) {
                 circ : {
                     due_date : new Date().toISOString(),
                     circ_lib : 1,
-                    duration : '7 days'
+                    duration : '7 days',
+                    renewal_remaining : 2
                 },
                 copy : seed_copy,
                 title : seed_record.title,
                 author : seed_record.author
-            },
+            }
         ],
 
         patron_money : {
index b741359..2ccac23 100644 (file)
@@ -573,7 +573,7 @@ function($scope , $q , $routeParams , egCore , egConfirmDialog , $location,
                 'mbt' : ['summary', 'circulation'],
                 'circ' : ['target_copy'],
                 'acp' : ['call_number'],
-                'acn' : ['record'],
+                'acn' : ['record','owning_lib','prefix','suffix'],
                 'bre' : ['simple_record']
                 }
             },
@@ -624,8 +624,18 @@ function($scope , $q , $routeParams , egCore , egConfirmDialog , $location,
                 }
                 if (xact.circulation()) {
                     newXact.copy_barcode = xact.circulation().target_copy().barcode(),
-                    newXact.title = xact.circulation().target_copy().call_number().record().simple_record().title()
+                    newXact.title = xact.circulation().target_copy().call_number().record().simple_record().title();
+                    newXact.call_number = {
+                        label : xact.circulation().target_copy().call_number().label(),
+                       prefix : xact.circulation().target_copy().call_number().prefix().label(),
+                       suffix : xact.circulation().target_copy().call_number().suffix().label(),
+                        owning_lib : {
+                             name : xact.circulation().target_copy().call_number().owning_lib().name(),
+                             shortname : xact.circulation().target_copy().call_number().owning_lib().shortname()
+                        }
+                    }
                 }
+
                 xacts.push(newXact);
             }
         );
@@ -1097,7 +1107,7 @@ function($scope,  $q , egCore , patronSvc , billSvc , egPromptDialog , $location
                 'mbt' : ['summary', 'circulation'],
                 'circ' : ['target_copy'],
                 'acp' : ['call_number'],
-                'acn' : ['record'],
+                'acn' : ['record','owning_lib','prefix','suffix'],
                 'bre' : ['simple_record']
                 }
             },
@@ -1149,6 +1159,15 @@ function($scope,  $q , egCore , patronSvc , billSvc , egPromptDialog , $location
                 if (xact.circulation()) {
                     newXact.copy_barcode = xact.circulation().target_copy().barcode(),
                     newXact.title = xact.circulation().target_copy().call_number().record().simple_record().title()
+                    newXact.call_number = {
+                        label : xact.circulation().target_copy().call_number().label(),
+                       prefix : xact.circulation().target_copy().call_number().prefix().label(),
+                       suffix : xact.circulation().target_copy().call_number().suffix().label(),
+                        owning_lib : {
+                             name : xact.circulation().target_copy().call_number().owning_lib().name(),
+                             shortname : xact.circulation().target_copy().call_number().owning_lib().shortname()
+                        }
+                    }
                 }
                 xacts.push(newXact);
             }
index 7984b79..fb9072b 100644 (file)
@@ -315,14 +315,18 @@ function($scope , $q , $routeParams , egCore , egUser , patronSvc ,
                 print_data.circulations.push({
                     circ : egCore.idl.toHash(co.circ),
                     copy : egCore.idl.toHash(co.acp),
-                    call_number : egCore.idl.toHash(co.acn),
                     title : co.title,
                     author : co.author
-                })
+                });
+                // Flesh selected fields of this circulation 
+                print_data.circulations[0].copy.call_number =
+                    egCore.idl.toHash(co.acn);
+                print_data.circulations[0].copy.owning_lib =
+                   egCore.ils.toHash(co.aou);
             };
         });
 
-        // This is repeated in patron.* so everyting is in one place but left here so existing templates don't break.
+        // This is repeated in patron.* so everything is in one place but left here so existing templates don't break.
         print_data.patron_money = patronSvc.patron_stats.fines;
         print_data.patron = {
             prefix : cusr.prefix(),
index e15dd5e..b5cdfd1 100644 (file)
@@ -249,6 +249,11 @@ function($scope , $window , $location , egCore , egGridDataProvider , egCirc) {
                     title : egCore.idl.toHash(renewal.title),
                     author : egCore.idl.toHash(renewal.author)
                 });
+                // Flesh selected fields of this circulation 
+                print_data.circulations[0].copy.call_number =
+                    egCore.idl.toHash(renewal.acn);
+                print_data.circulations[0].copy.owning_lib =
+                   egCore.idl.toHash(renewal.aou);
             }
         });
 
index 64a68e1..15849f6 100644 (file)
@@ -713,7 +713,6 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,  egAddCopyAl
         return egCore.pcrud.retrieveAll('ccs', {}, {atomic : true}).then(
             function(list) {
                 egCore.env.absorbList(list, 'ccs');
-                copy.status(egCore.env.ccs.map[copy.status()]);
             }
         );
     }
@@ -1826,6 +1825,7 @@ function($uibModal , $q , egCore , egAlertDialog , egConfirmDialog,  egAddCopyAl
                 }
                 print_context.dest_location =
                     egCore.idl.toHash(egCore.org.get(data.transit.dest()));
+                print_context.copy.status = egCore.idl.toHash(print_context.copy.status);
             }
 
             if (data.patron) {