Taking `Koha::Item->delete` as an example, it accepts many parameters. Calling `Koha::Items->delete` will find out there's a `delete()` method defined in `Koha::Item` and loop through all items, calling that particular method. It would be handy if we could pass on some parameters. As an example, the following sequence: ```perl $biblio->items->delete; DelBiblio( $biblio->id); ``` would trigger reindexing the record for each item, and then when actually deleting the biblio. With the current codebase, to avoid it, we could instead do: ```perl foreach my $item ($biblio->items->as_list) { $item->delete( { skip_record_index } ); } DelBiblio( $biblio->id); ``` But it would be great if we could just write: ```perl $biblio->items->delete( { skip_record_index => 1 } ); DelBiblio( $biblio->id ); ```
Created attachment 166790 [details] [review] Bug 36873: Unit tests Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 166791 [details] [review] Bug 36873: Make Koha::Objects->delete pass parameters to the underlying method This patch makes the generic method pass any parameters it got passed to the underlying `delete()` method. To test: 1. Apply the unit tests patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Objects.t => FAIL: Tests fail, parameters are not passed 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Created attachment 166799 [details] [review] Bug 36873: Unit tests Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: David Nind <david@davidnind.com>
Created attachment 166800 [details] [review] Bug 36873: Make Koha::Objects->delete pass parameters to the underlying method This patch makes the generic method pass any parameters it got passed to the underlying `delete()` method. To test: 1. Apply the unit tests patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Objects.t => FAIL: Tests fail, parameters are not passed 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: David Nind <david@davidnind.com>
Created attachment 168246 [details] [review] Bug 36873: Unit tests Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Created attachment 168247 [details] [review] Bug 36873: Make Koha::Objects->delete pass parameters to the underlying method This patch makes the generic method pass any parameters it got passed to the underlying `delete()` method. To test: 1. Apply the unit tests patch 2. Run: $ ktd --shell k$ prove t/db_dependent/Koha/Objects.t => FAIL: Tests fail, parameters are not passed 3. Apply this patch 4. Repeat 2 => SUCCESS: Tests pass! 5. Sign off :-D Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: David Nind <david@davidnind.com> Signed-off-by: Martin Renvoize <martin.renvoize@ptfs-europe.com>
Trivial bugfix, all working. Passing QA
Pushed for 24.11! Well done everyone, thank you!
I thought this might be a good candidate for the failing test: https://jenkins.koha-community.org/job/Koha_Main/2954/testReport/junit/(root)/t_db_dependent_Koha_Plugins_KitchenSink_t/Fun_with_KitchenSink__Handler__delete__2283_/ not ok 1 - Fun with KitchenSink, Handler->delete ... but again it's passing for me locally.
(In reply to Katrin Fischer from comment #9) > I thought this might be a good candidate for the failing test: > > https://jenkins.koha-community.org/job/Koha_Main/2954/testReport/junit/ > (root)/t_db_dependent_Koha_Plugins_KitchenSink_t/ > Fun_with_KitchenSink__Handler__delete__2283_/ > > not ok 1 - Fun with KitchenSink, Handler->delete > > ... but again it's passing for me locally. There are other factors there. Looking shortly.
Thanks!
(In reply to Katrin Fischer from comment #9) > I thought this might be a good candidate for the failing test: > > https://jenkins.koha-community.org/job/Koha_Main/2954/testReport/junit/ > (root)/t_db_dependent_Koha_Plugins_KitchenSink_t/ > Fun_with_KitchenSink__Handler__delete__2283_/ > > not ok 1 - Fun with KitchenSink, Handler->delete > > ... but again it's passing for me locally. I haven't found any relationship with this bug, unfortunately. What I was looking for were cases of ->delete being called with some parameter, and there aren't for plugin code.
(In reply to Tomás Cohen Arazi from comment #12) > (In reply to Katrin Fischer from comment #9) > > I thought this might be a good candidate for the failing test: > > > > https://jenkins.koha-community.org/job/Koha_Main/2954/testReport/junit/ > > (root)/t_db_dependent_Koha_Plugins_KitchenSink_t/ > > Fun_with_KitchenSink__Handler__delete__2283_/ > > > > not ok 1 - Fun with KitchenSink, Handler->delete > > > > ... but again it's passing for me locally. > > I haven't found any relationship with this bug, unfortunately. What I was > looking for were cases of ->delete being called with some parameter, and > there aren't for plugin code. It looks like it might have been a random one too. Let's see if ti appears again.
(In reply to Tomás Cohen Arazi from comment #12) > (In reply to Katrin Fischer from comment #9) > > I thought this might be a good candidate for the failing test: > > > > https://jenkins.koha-community.org/job/Koha_Main/2954/testReport/junit/ > > (root)/t_db_dependent_Koha_Plugins_KitchenSink_t/ > > Fun_with_KitchenSink__Handler__delete__2283_/ > > > > not ok 1 - Fun with KitchenSink, Handler->delete > > > > ... but again it's passing for me locally. > > I haven't found any relationship with this bug, unfortunately. What I was > looking for were cases of ->delete being called with some parameter, and > there aren't for plugin code. The error was: koha_1 | Could not unlink /tmp/LSL387s/Koha/Plugin/Com/ByWaterSolutions/KitchenSink.pm.pm: No such file or directory at /kohadevbox/koha/Koha/Plugins/Handler.pm line 110. koha_1 | koha_1 | # Failed test 'Module file no longer found' koha_1 | # at t/db_dependent/Koha/Plugins/KitchenSink.t line 68. koha_1 | # Looks like you failed 1 test of 7. koha_1 | koha_1 | # Failed test 'Fun with KitchenSink, Handler->delete' koha_1 | # at t/db_dependent/Koha/Plugins/KitchenSink.t line 74. koha_1 | # Looks like you failed 1 test of 1. koha_1 | [17:50:24] t/db_dependent/Koha/Plugins/KitchenSink.t ................................... koha_1 | Dubious, test returned 1 (wstat 256, 0x100) Which is bug 21670.
Backported to 24.05.x for upcoming 24.05.06
Pushed to 23.11.x for 23.11.11