Bug 36873 - Koha::Objects->delete should accept parameters and pass them through
Summary: Koha::Objects->delete should accept parameters and pass them through
Status: Signed Off
Alias: None
Product: Koha
Classification: Unclassified
Component: Architecture, internals, and plumbing (show other bugs)
Version: unspecified
Hardware: All All
: P5 - low enhancement (vote)
Assignee: Tomás Cohen Arazi
QA Contact: Testopia
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-05-15 19:01 UTC by Tomás Cohen Arazi
Modified: 2024-05-16 00:31 UTC (History)
4 users (show)

See Also:
Change sponsored?: ---
Patch complexity: Trivial patch
Documentation contact:
Documentation submission:
Text to go in the release notes:
Version(s) released in:


Attachments
Bug 36873: Unit tests (2.22 KB, patch)
2024-05-15 19:19 UTC, Tomás Cohen Arazi
Details | Diff | Splinter Review
Bug 36873: Make Koha::Objects->delete pass parameters to the underlying method (1.69 KB, patch)
2024-05-15 19:19 UTC, Tomás Cohen Arazi
Details | Diff | Splinter Review
Bug 36873: Unit tests (2.27 KB, patch)
2024-05-16 00:31 UTC, David Nind
Details | Diff | Splinter Review
Bug 36873: Make Koha::Objects->delete pass parameters to the underlying method (1.74 KB, patch)
2024-05-16 00:31 UTC, David Nind
Details | Diff | Splinter Review

Note You need to log in before you can comment on or make changes to this bug.
Description Tomás Cohen Arazi 2024-05-15 19:01:05 UTC
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 );
```
Comment 1 Tomás Cohen Arazi 2024-05-15 19:19:18 UTC
Created attachment 166790 [details] [review]
Bug 36873: Unit tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
Comment 2 Tomás Cohen Arazi 2024-05-15 19:19:21 UTC
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>
Comment 3 David Nind 2024-05-16 00:31:29 UTC
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>
Comment 4 David Nind 2024-05-16 00:31:32 UTC
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>