From: Ian Jackson Date: Mon, 21 Sep 2009 01:00:29 +0000 (+0100) Subject: Offers for location pretty-prints the table X-Git-Tag: 5.0^2~124 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.main.git;a=commitdiff_plain;h=703efc8c2d4862002c9f087bf66101fda56bfe67 Offers for location pretty-prints the table --- diff --git a/yarrg/web/query_offers b/yarrg/web/query_offers index b9befe2..4c9c71e 100644 --- a/yarrg/web/query_offers +++ b/yarrg/web/query_offers @@ -88,14 +88,15 @@ return unless defined $cmid and @islandids; foreach my $wf (@warningfs) { $wf->(); } +if ($qa->{'debug'}) {
-NOT YET IMPLEMENTED
 bs= <% $qa->{BuySell} %>
 cmdid= <% $cmid %>
 islandids= <% join ',', map { defined($_) ? $_ : 'U' } @islandids %>
 
<%perl> +} my $locdesc; if (@islandids>1) { @@ -109,6 +110,8 @@ if (@islandids>1) { $locdesc= ' in '.$archipelagoes[0]; } +my $now= time; + my @conds; my @condvals; push @condvals, $cmid; @@ -124,13 +127,18 @@ foreach my $ix (0..$#islandids) { } } foreach my $bs (split /_/, $qa->{BuySell}) { + my %da_ages; + my %ts_sortkeys; + die unless grep { $bs eq $_ } qw(buy sell); my $ascdesc= $bs eq 'buy' ? 'DESC' : 'ASC';

Offers to <% uc $bs |h %> <% $commodname |h %> <% $locdesc %>

<%perl> my $stmt= " - SELECT archipelago, islandname, stallname, price, qty, timestamp + SELECT archipelago, islandname, + stallname, price, qty, timestamp, + offers.stallid FROM $bs AS offers JOIN islands ON offers.islandid==islands.islandid JOIN uploads ON offers.islandid==uploads.islandid @@ -151,11 +159,55 @@ foreach my $bs (split /_/, $qa->{BuySell}) { <%perl> } + my $row; my $sth= $dbh->prepare($stmt); $sth->execute(@condvals); + my $rowix= 0; - <& dumptable, sth => $sth &> +% while ($row= $sth->fetchrow_arrayref) { +% if (!$rowix) { + + + +% } +% my $rowid= ${bs}.$row->[6]; +% my $tscellid= "c$rowid"; +% my $age= $now - $row->[5]; +% $da_ages{$rowid}= $age; +% $row->[5]= + class="<% 'datarow'.($rowix & 1) %>" > +% foreach my $ci (0..4) { +% my $val= $row->[$ci]; +% $ts_sortkeys{$ci}{$rowid}= $val; + +% $rowix++; +% } +% if ($rowix) { +
Archipelago +Island +Stall or Shoppe +Price +Quantity +Data age +
= 3 ? 'align=right' : '' %> ><% $val |h %> +% } +<% prettyprint_age($age) %> +
+ +<&| tabsort, table => "${bs}_table", rowclass => 'datarow', cols => [ + {}, {}, {}, + { Numeric => 1, DoReverse => 1 }, + { Numeric => 1, DoReverse => 1 }, + { Numeric => 1, DoReverse => 1, SortKey => "${bs}_ages[rowid]" }], + sortkeys => "${bs}_sortkeys" + &> + <%$bs%>_sortkeys= <% to_json_protecttags(\%ts_sortkeys) %>; + <%$bs%>_ages= <% to_json_protecttags(\%da_ages) %>; + +% } else { +No offers. +% } + <%perl> } -