From: Galen Charlton Date: Mon, 24 Feb 2020 17:55:45 +0000 (-0500) Subject: acq search: improvements to server-side sorting X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=473348419e4e12f6f66a4779b0c66b378edcd8f1;p=working%2FEvergreen.git 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 --- 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 {