Bugzilla – Attachment 140831 Details for
Bug 28799
Action logs should capture lost items found
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 28799: Log when item was lost and now found
Bug-28799-Log-when-item-was-lost-and-now-found.patch (text/plain), 3.99 KB, created by
Nick Clemens (kidclamp)
on 2022-09-21 19:18:10 UTC
(
hide
)
Description:
Bug 28799: Log when item was lost and now found
Filename:
MIME Type:
Creator:
Nick Clemens (kidclamp)
Created:
2022-09-21 19:18:10 UTC
Size:
3.99 KB
patch
obsolete
>From d1c21d4dfbbb3cdb68a80f06aa06c5a2a2415889 Mon Sep 17 00:00:00 2001 >From: Nick Clemens <nick@bywatersolutions.com> >Date: Thu, 5 Aug 2021 13:17:19 +0000 >Subject: [PATCH] Bug 28799: Log when item was lost and now found > >In the subroutine ModDateLastSeen we unset an item's lost status when >checked in. > >This routine passes a noi log parameter to the store request, this is >to avoid spamming the cataloguing log on every checkin. > >When marking an item unlost we should record this change. > >To test: >1 - Enable cataloguing log >2 - Mark an item lost >3 - View the log and confirm this chagne was recorded >4 - Check the item in >5 - The message indicates item is now found, but logs have no new entry >6 - Apply patch, restart all >7 - Mark the item lost and verify it is logged >8 - Check the item in, reported found and log entry recorded >--- > C4/Items.pm | 3 ++- > t/db_dependent/Items.t | 31 ++++++++++++++++++++++++++++--- > 2 files changed, 30 insertions(+), 4 deletions(-) > >diff --git a/C4/Items.pm b/C4/Items.pm >index 817e86e940..a34527d51d 100644 >--- a/C4/Items.pm >+++ b/C4/Items.pm >@@ -401,8 +401,9 @@ sub ModDateLastSeen { > > my $item = Koha::Items->find($itemnumber); > $item->datelastseen(dt_from_string); >+ my $log = $item->itemlost && !$leave_item_lost ? 1 : 0; # If item was lost, record the change to the item > $item->itemlost(0) unless $leave_item_lost; >- $item->store({ log_action => 0, skip_record_index => $params->{skip_record_index}, skip_holds_queue => $params->{skip_holds_queue} }); >+ $item->store({ log_action => $log, skip_record_index => $params->{skip_record_index}, skip_holds_queue => $params->{skip_holds_queue} }); > } > > =head2 CheckItemPreSave >diff --git a/t/db_dependent/Items.t b/t/db_dependent/Items.t >index 10b9bab3b7..7ba1c0e670 100755 >--- a/t/db_dependent/Items.t >+++ b/t/db_dependent/Items.t >@@ -19,7 +19,7 @@ use Modern::Perl; > use Data::Dumper; > > use MARC::Record; >-use C4::Items qw( ModItemTransfer SearchItems AddItemFromMarc ModItemFromMarc get_hostitemnumbers_of Item2Marc ); >+use C4::Items qw( ModItemTransfer SearchItems AddItemFromMarc ModItemFromMarc get_hostitemnumbers_of Item2Marc ModDateLastSeen ); > use C4::Biblio qw( GetMarcFromKohaField AddBiblio ); > use C4::Circulation qw( AddIssue ); > use Koha::Items; >@@ -34,7 +34,7 @@ use Koha::AuthorisedValues; > use t::lib::Mocks; > use t::lib::TestBuilder; > >-use Test::More tests => 11; >+use Test::More tests => 12; > > use Test::Warn; > >@@ -931,4 +931,29 @@ subtest 'ModItemFromMarc' => sub { > > $schema->storage->txn_rollback; > Koha::Caches->get_instance->clear_from_cache( "MarcSubfieldStructure-" ); >-} >+}; >+ >+subtest 'ModDateLastSeen' => sub { >+ plan tests => 5; >+ $schema->storage->txn_begin; >+ >+ my $builder = t::lib::TestBuilder->new; >+ my $item = $builder->build_sample_item; >+ t::lib::Mocks::mock_preference('CataloguingLog', '1'); >+ my $logs_before = Koha::ActionLogs->search({ module => 'CATALOGUING', action => 'MODIFY', object => $item->itemnumber })->count; >+ ModDateLastSeen($item->itemnumber); >+ my $logs_after = Koha::ActionLogs->search({ module => 'CATALOGUING', action => 'MODIFY', object => $item->itemnumber })->count; >+ is( $logs_after, $logs_before, "ModDateLastSeen doesn't log if item not lost"); >+ $item->itemlost(1)->store({ log_action => 0 }); >+ ModDateLastSeen($item->itemnumber, 1); >+ $item->discard_changes; >+ $logs_after = Koha::ActionLogs->search({ module => 'CATALOGUING', action => 'MODIFY', object => $item->itemnumber })->count; >+ is( $item->itemlost, 1, "Item left lost when parameter is passed"); >+ is( $logs_after, $logs_before, "ModDateLastSeen doesn't log if item not lost"); >+ ModDateLastSeen($item->itemnumber); >+ $item->discard_changes; >+ $logs_after = Koha::ActionLogs->search({ module => 'CATALOGUING', action => 'MODIFY', object => $item->itemnumber })->count; >+ is( $item->itemlost, 0, "Item no longer lost when no parameter is passed"); >+ is( $logs_after, $logs_before + 1, "ModDateLastSeen logs if item was lost and now found"); >+}; >+ >-- >2.30.2
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 28799
:
123480
|
123530
|
140831
|
140849
|
141542