From 54ef9bd7755e86ce3905aeb53d8821d5c6f0e314 Mon Sep 17 00:00:00 2001 From: Alex Buckley Date: Tue, 27 Feb 2024 02:31:09 +0000 Subject: [PATCH] Bug 36169: Patron categories with type='Staff' should be able to have guarantees MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Library staff - whose patron category has a type='Staff' should be able to have guarantees added. Test plan: 1) Create a 'Library staff' patron category with 'Category type' = 'Staff' 2) Create a patron account using the 'Library staff' patron category 3) Notice the '+ Add guarantee' button is not displayed in the members toolbar for the 'Library staff' patron you created 4) Apply patches and restart services 5) Refresh your browser window 6) Notice the '+ Add guarantee' button is now displaying for the 'Library staff' patron 7) Confirm you can successfully add a guarantee 8) Run unit test t/db_dependent/Koha/Patrons.t Sponsored-By: Waitaki District Council, New Zealand Signed-off-by: Tadeusz „tadzik” Sośnierz Signed-off-by: Kyle M Hall Signed-off-by: Katrin Fischer --- Koha/Patron.pm | 4 ++-- t/db_dependent/Koha/Patrons.t | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/Koha/Patron.pm b/Koha/Patron.pm index 04c8ef6814..7234a3be5b 100644 --- a/Koha/Patron.pm +++ b/Koha/Patron.pm @@ -2020,13 +2020,13 @@ sub is_superlibrarian { my $is_adult = $patron->is_adult -Return true if the patron has a category with a type Adult (A) or Organization (I) +Return true if the patron has a category with a type Adult (A), Organization (I) or Staff (S) =cut sub is_adult { my ( $self ) = @_; - return $self->category->category_type =~ /^(A|I)$/ ? 1 : 0; + return $self->category->category_type =~ /^(A|I|S)$/ ? 1 : 0; } =head3 is_child diff --git a/t/db_dependent/Koha/Patrons.t b/t/db_dependent/Koha/Patrons.t index 38a322e444..4bcaac32a1 100755 --- a/t/db_dependent/Koha/Patrons.t +++ b/t/db_dependent/Koha/Patrons.t @@ -1459,7 +1459,7 @@ subtest 'account_locked' => sub { }; subtest 'is_child | is_adult' => sub { - plan tests => 8; + plan tests => 10; my $category = $builder->build_object( { class => 'Koha::Patron::Categories', @@ -1508,21 +1508,36 @@ subtest 'is_child | is_adult' => sub { value => { categorycode => $category->categorycode } } ); + $category = $builder->build_object( + { + class => 'Koha::Patron::Categories', + value => { category_type => 'S' } + } + ); + my $patron_staff = $builder->build_object( + { + class => 'Koha::Patrons', + value => { categorycode => $category->categorycode } + } + ); is( $patron_adult->is_adult, 1, 'Patron from category A should be considered adult' ); is( $patron_adult_i->is_adult, 1, 'Patron from category I should be considered adult' ); is( $patron_child->is_adult, 0, 'Patron from category C should not be considered adult' ); is( $patron_other->is_adult, 0, 'Patron from category O should not be considered adult' ); + is( $patron_staff->is_adult, 1, 'Patron from category S should be considered adult' ); is( $patron_adult->is_child, 0, 'Patron from category A should be considered child' ); is( $patron_adult_i->is_child, 0, 'Patron from category I should be considered child' ); is( $patron_child->is_child, 1, 'Patron from category C should not be considered child' ); is( $patron_other->is_child, 0, 'Patron from category O should not be considered child' ); + is( $patron_staff->is_child, 0, 'Patron from category S should not be considered child' ); # Clean up $patron_adult->delete; $patron_adult_i->delete; $patron_child->delete; $patron_other->delete; + $patron_staff->delete; }; subtest 'overdues' => sub { -- 2.39.5