LP#1729922: correctly display most recent transit in item status
authorGalen Charlton <gmc@equinoxinitiative.org>
Fri, 8 Dec 2017 15:29:40 +0000 (10:29 -0500)
committerJason Etheridge <jason@EquinoxInitiative.org>
Mon, 18 Dec 2017 03:22:12 +0000 (22:22 -0500)
This patch ensures that the 'Most Recent Transit' display in
the web staff client's item status page shows the latest transit,
not the oldest one. This also fixes a bug where the transit
receive time never got displayed.  As a side effect, this patch
also ensures that only the transit in question is fetched from
the database, not all transits on the item.

To test
-------
[1] Set up an item with some closed transits and display in in
    detail view in the Item Status page. Note that the
    /oldest/ transit is displayed and that the transit
    receive time field is blank.
[2] Apply the patch and repeat step 1.
[3] This time, the most recent transit should be displayed, and
    if that transit was received, the receive time should be
    displayed.

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Jason Etheridge <jason@EquinoxInitiative.org>

Open-ILS/src/templates/staff/cat/item/t_holds_pane.tt2
Open-ILS/web/js/ui/default/staff/cat/item/app.js

index b66ba06..c4f389b 100644 (file)
   <div class="flex-row">
     <div class="flex-cell">[% l('Transit Receive Time') %]</div>
     <div class="flex-cell well">
-      {{transit.source_recv_time() | date:egDateAndTimeFormat}}
+      {{transit.dest_recv_time() | date:egDateAndTimeFormat}}
     </div>
   </div>
 </div>
index 8b8f9ef..e587818 100644 (file)
@@ -857,16 +857,20 @@ function($scope , $q , $location , $routeParams , $timeout , $window , egCore ,
         });
     }
 
-    function loadTransits() {
+    function loadMostRecentTransit() {
         delete $scope.transit;
         delete $scope.hold_transit;
         if (!copyId) return;
 
         egCore.pcrud.search('atc', 
             {target_copy : copyId},
-            {order_by : {atc : 'source_send_time DESC'}}
+            {
+                order_by : {atc : 'source_send_time DESC'},
+                limit : 1
+            }
 
         ).then(null, null, function(transit) {
+            // use progress callback since we'll get up to one result
             $scope.transit = transit;
             transit.source(egCore.org.get(transit.source()));
             transit.dest(egCore.org.get(transit.dest()));
@@ -892,7 +896,7 @@ function($scope , $q , $location , $routeParams , $timeout , $window , egCore ,
 
             case 'holds':
                 loadHolds()
-                loadTransits();
+                loadMostRecentTransit();
                 break;
 
             case 'triggered_events':