chiark / gitweb /
routetrade: include data age summary
[ypp-sc-tools.main.git] / yarrg / web / routetrade
index 61484391130a9341b3b90d099c4b2889f27d0619..c6ed408d80fe9d779e54de724856c6abf02ab673 100644 (file)
@@ -40,9 +40,7 @@ $dbh
 $qa
 $routeparams
 </%args>
-<&| script &>
-  da_pageload= Date.now();
-</&script>
+<& query_age:pageload &>
 
 <%perl>
 
@@ -595,6 +593,7 @@ $addcols->({ Total => 0, DoReverse => 1, TotalSubflows => 1 }, qw(
    <li><a href="#summary">Summary statistics</a>
   </ul>
 % }
+ <li><a href="#dataage">Data age summary</a>
  <li><a href="#trades">Relevant trades</a>
 </ul>
 
@@ -782,6 +781,52 @@ Expected average profit:
 %
 % } # ========== TRADING PLAN ==========
 
+% {
+<h2><a name="dataage">Data age summary</a></h2>
+<%perl>
+       my $sth_i= $dbh->prepare(<<END);
+               SELECT archipelago, islandid, islandname, timestamp
+                       FROM uploads NATURAL JOIN islands
+                       WHERE islandid = ?
+END
+       my $sth_a= $dbh->prepare(<<END);
+               SELECT archipelago, islandid, islandname, timestamp
+                       FROM uploads NATURAL JOIN islands
+                       WHERE archipelago = ?
+                       ORDER BY islandname
+END
+       my $ix=$#islandids;
+       my $sth_current;
+       my %idone;
+       my $fetchrow= sub {
+               for (;;) {
+                       if ($sth_current) {
+                               my $row= $sth_current->fetchrow_hashref();
+                               if ($row) {
+                                       next if $idone{$row->{'islandid'}}++;
+                                       return $row;
+                               }
+                       }
+                       return undef if $ix < 0;
+                       my $iid= $islandids[$ix];
+                       if (defined $iid) {
+                               $sth_i->execute($iid);
+                               $sth_current= $sth_i;
+                       } else {
+                               my $arch= $archipelagoes[$ix];
+                               die unless defined $arch && length $arch;
+                               $sth_a->execute($arch);
+                               $sth_current= $sth_a;
+                       }
+                       $ix--;
+               }
+       };
+</%perl>
+<&| query_age:agestable, now => $now, fetchrow => $fetchrow &>
+Islands shown in reverse order of visits.<br>
+</&>
+% }
+
 % my %ts_sortkeys;
 % {
 %      my $cdspan= $qa->{ShowStalls} ? ' colspan=2' : '';