From 473348419e4e12f6f66a4779b0c66b378edcd8f1 Mon Sep 17 00:00:00 2001 From: Galen Charlton Date: Mon, 24 Feb 2020 12:55:45 -0500 Subject: [PATCH] acq search: improvements to server-side sorting - create joins for aou, acqim, and acqipm as needed - look up identity column for a class rather than assuming that it's always 'id' Signed-off-by: Galen Charlton --- Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm index fde084c88d..2f5b94b96b 100644 --- a/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm +++ b/Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Search.pm @@ -227,6 +227,14 @@ sub get_fm_selector_by_hint { undef; } +sub get_fm_id_field_by_hint { + my ($hint) = @_; + foreach my $field (values %{$Fieldmapper::fieldmap}) { + return $field->{identity} if $field->{hint} eq $hint; + } + return 'id'; +} + sub gen_au_term { my ($value, $n) = @_; my $lc_value = { @@ -513,7 +521,7 @@ sub add_generic_id_joins { my $clause = { "class" => $specific, "type" => "left", - "field" => "id", + "field" => get_fm_id_field_by_hint($specific), "fkey" => $attr, }; @@ -536,6 +544,9 @@ sub add_acqpl_joins { return add_generic_id_joins( acqpl => @_ ) } sub add_acqpro_joins { return add_generic_id_joins( acqpro => @_ ) } sub add_acqpostlbl_joins { return add_generic_id_joins( acqpostlbl => @_ ) } sub add_jubstlbl_joins { return add_generic_id_joins( jubstlbl => @_ ) } +sub add_aou_joins { return add_generic_id_joins( aou => @_ ) } +sub add_acqim_joins { return add_generic_id_joins( acqim => @_ ) } +sub add_acqipm_joins { return add_generic_id_joins( acqipm => @_ ) } sub build_from_clause_and_joins { -- 2.11.0