From 79470a598abbc05a6ae3f5c6755dfc4df016219a Mon Sep 17 00:00:00 2001 From: Jeff Godin Date: Fri, 16 May 2014 15:37:25 -0400 Subject: [PATCH] Add a "container_date" sort filter Limited to single bre containers only at this point. Test by viewing HTML view of a public bucket and adding sort=container_date or sort=container_date.descending to the URL. Signed-off-by: Jeff Godin --- .../lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm index 147b16571e..788dc2952a 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Driver/Pg/QueryParser.pm @@ -819,6 +819,10 @@ sub toSQL { $rank = "FIRST((SELECT create_date FROM biblio.record_entry rbr WHERE rbr.id = m.source))"; } elsif ($sort_filter eq 'edit_date') { $rank = "FIRST((SELECT edit_date FROM biblio.record_entry rbr WHERE rbr.id = m.source))"; + } elseif ($sort_filter eq 'container_date' && @{$$flat_plan{container_list}}) { + # Just the first container for now + my $container_id = $self->QueryParser->quote_value(@{$$flat_plan{container_list}}[0]); + $rank = "FIRST((SELECT create_time FROM container.biblio_record_entry_bucket_item cbrebi WHERE cbrebi.target_biblio_record_entry = m.source AND cbrebi.bucket = " . $container_id . "))"; } else { # default to rel ranking $rank = $rel; @@ -882,6 +886,7 @@ sub flatten { my $uses_bre = 0; my $uses_mrd = 0; my $uses_mrv = 0; + my @container_list; my @rank_list; for my $node ( @{$self->query_nodes} ) { @@ -1116,6 +1121,7 @@ sub flatten { my $rec_field = 'ci.target_biblio_record_entry'; if ($class eq 'bre') { $class = 'biblio_record_entry'; + push @container_list, $cid; } elsif ($class eq 'acn') { $class = 'call_number'; $rec_field = 'cn.record'; @@ -1245,7 +1251,8 @@ sub flatten { with => $with, uses_bre => $uses_bre, uses_mrv => $uses_mrv, - uses_mrd => $uses_mrd + uses_mrd => $uses_mrd, + container_list => \@container_list }; } -- 2.11.0