Jonathan Druart
551721f702
This patch will rewrite some of our patron searches to make them use the REST API routes (and so the powerful the DataTables wrapper which will bring all the nice DT feature to filter, sort, etc.) The patron searches we will take into account here are those that we use to select a patron in a pop-up: * Guarantor * Suggestion's manager * Patron's card * Serial routing list * Users to notify when order is received * Manager of an acquisition basket * Owner and users of a fund Regarding permissions there are two main problematics: * Filter a patron set by patrons having a specific subpermissions (in case of adding a manager to a suggestion or when we deal with acquisition and funds). We added a new Koha::Patrons->filter_by_have_subpermission method that will take in parameter a subpermission. To make thing transparent for the callers we are adding new routes, like /suggestions/managers to list the possible managers of suggestions. * Restrict/allow access to the default patron searches /patrons We need to access it when a logged in patron does not have borrowers permission. Ideally we need a separate "search_borrowers" subpermissions but it's considered outside the scope of this change. For each patch you will take care of testing the different permissions that are into effect (either for the logged in patron or the patrons returned by the search). The tables should contain the same columns as prior to this patch, except for "categories" and "library". We have the filter on top of the page and so we need to add them to the table as new columns if they weren't there before. Test plan (for this patch): Search for guarantor and select Test plan (for all patches): Add/Select patrons from the correct place where you can search for patrons, play extensively with the filters/pagination/etc Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Séverine Queune <severine.queune@bulac.fr> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com> Signed-off-by: Fridolin Somers <fridolin.somers@biblibre.com>
44 lines
1.4 KiB
Perl
Executable file
44 lines
1.4 KiB
Perl
Executable file
#!/usr/bin/perl
|
|
|
|
# This file is part of Koha.
|
|
#
|
|
# Koha is free software; you can redistribute it and/or modify it
|
|
# under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 3 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# Koha is distributed in the hope that it will be useful, but
|
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with Koha; if not, see <http://www.gnu.org/licenses>.
|
|
|
|
use Modern::Perl;
|
|
|
|
use CGI qw ( -utf8 );
|
|
use C4::Auth qw( get_template_and_user );
|
|
use C4::Output qw( output_html_with_http_headers );
|
|
|
|
my $input = CGI->new;
|
|
|
|
my ( $template, $loggedinuser, $cookie, $staff_flags ) = get_template_and_user(
|
|
{ template_name => "members/search.tt",
|
|
query => $input,
|
|
type => "intranet",
|
|
flagsrequired => { catalogue => '*' },
|
|
}
|
|
);
|
|
|
|
my $referer = $input->referer();
|
|
|
|
my @columns = split ',', $input->param('columns');
|
|
|
|
$template->param(
|
|
view => ( $input->request_method() eq "GET" ) ? "show_form" : "show_results",
|
|
columns => \@columns,
|
|
selection_type => 'select',
|
|
alphabet => ( C4::Context->preference('alphabet') || join ' ', 'A' .. 'Z' ),
|
|
);
|
|
output_html_with_http_headers( $input, $cookie, $template->output );
|