View | Details | Raw Unified | Return to bug 37115
Collapse All | Expand All

(-)a/Koha/BackgroundJob/BatchDeleteItem.pm (-7 / +15 lines)
Lines 81-88 sub process { Link Here
81
81
82
    $self->start;
82
    $self->start;
83
83
84
    my @record_ids     = @{ $args->{record_ids} };
84
    my @record_ids           = @{ $args->{record_ids} };
85
    my $delete_biblios = $args->{delete_biblios};
85
    my $delete_biblios       = $args->{delete_biblios};
86
    my $delete_serial_issues = $args->{delete_serial_issues};
86
87
87
    my $report = {
88
    my $report = {
88
        total_records => scalar @record_ids,
89
        total_records => scalar @record_ids,
Lines 106-112 sub process { Link Here
106
107
107
                    my $item = Koha::Items->find($record_id) || next;
108
                    my $item = Koha::Items->find($record_id) || next;
108
109
109
                    my $return = $item->safe_delete( { skip_record_index => 1, skip_holds_queue => 1 } );
110
                    my $return = $item->safe_delete(
111
                        {
112
                            skip_record_index    => 1, skip_holds_queue => 1,
113
                            delete_serial_issues => $delete_serial_issues
114
                        }
115
                    );
110
                    unless ($return) {
116
                    unless ($return) {
111
117
112
                        # FIXME Do we need to rollback the whole transaction if a deletion failed?
118
                        # FIXME Do we need to rollback the whole transaction if a deletion failed?
Lines 221-235 sub enqueue { Link Here
221
    # TODO Raise exception instead
227
    # TODO Raise exception instead
222
    return unless exists $args->{record_ids};
228
    return unless exists $args->{record_ids};
223
229
224
    my @record_ids     = @{ $args->{record_ids} };
230
    my @record_ids           = @{ $args->{record_ids} };
225
    my $delete_biblios = $args->{delete_biblios} || 0;
231
    my $delete_biblios       = $args->{delete_biblios}       || 0;
232
    my $delete_serial_issues = $args->{delete_serial_issues} || 0;
226
233
227
    $self->SUPER::enqueue(
234
    $self->SUPER::enqueue(
228
        {
235
        {
229
            job_size => scalar @record_ids,
236
            job_size => scalar @record_ids,
230
            job_args => {
237
            job_args => {
231
                record_ids     => \@record_ids,
238
                record_ids           => \@record_ids,
232
                delete_biblios => $delete_biblios,
239
                delete_biblios       => $delete_biblios,
240
                delete_serial_issues => $delete_serial_issues,
233
            },
241
            },
234
            job_queue => 'long_tasks',
242
            job_queue => 'long_tasks',
235
        }
243
        }
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt (-1 / +10 lines)
Lines 174-180 Link Here
174
                        <input type="hidden" name="op" value="[% op | html %]" />
174
                        <input type="hidden" name="op" value="[% op | html %]" />
175
                        <p>This will delete [% IF ( too_many_items_display ) %]all the[% ELSE %]the selected[% END %] items.</p>
175
                        <p>This will delete [% IF ( too_many_items_display ) %]all the[% ELSE %]the selected[% END %] items.</p>
176
                        <input type="hidden" name="del" value="1" />
176
                        <input type="hidden" name="del" value="1" />
177
                        <input type="checkbox" name="del_records" id="del_records" /> <label for="del_records">Delete records if no items remain.</label>
177
                        <div style="display: flex; flex-direction: column; gap: 5px;">
178
                            <div>
179
                                <input type="checkbox" name="del_records" id="del_records" />
180
                                <label for="del_records">Delete records if no items remain.</label>
181
                            </div>
182
                            <div>
183
                                <input type="checkbox" name="del_serial_issues" id="del_serial_issues" />
184
                                <label for="del_serial_issues">Delete serial issues linked to items.</label>
185
                            </div>
186
                        </div>
178
187
179
                        <fieldset class="action">
188
                        <fieldset class="action">
180
                            [% IF too_many_items_display %]
189
                            [% IF too_many_items_display %]
(-)a/tools/batchMod.pl (-3 / +4 lines)
Lines 48-53 my $biblionumber = $input->param('biblionumber'); Link Here
48
my $op                                = $input->param('op');
48
my $op                                = $input->param('op');
49
my $del                               = $input->param('del');
49
my $del                               = $input->param('del');
50
my $del_records                       = $input->param('del_records');
50
my $del_records                       = $input->param('del_records');
51
my $del_serial_issues                 = $input->param('del_serial_issues');
51
my $src                               = $input->param('src');
52
my $src                               = $input->param('src');
52
my $use_default_values                = $input->param('use_default_values');
53
my $use_default_values                = $input->param('use_default_values');
53
my $exclude_from_local_holds_priority = $input->param('exclude_from_local_holds_priority');
54
my $exclude_from_local_holds_priority = $input->param('exclude_from_local_holds_priority');
Lines 93-100 if ( $op eq "cud-action" ) { Link Here
93
    if ($del) {
94
    if ($del) {
94
        try {
95
        try {
95
            my $params = {
96
            my $params = {
96
                record_ids     => \@itemnumbers,
97
                record_ids           => \@itemnumbers,
97
                delete_biblios => $del_records,
98
                delete_biblios       => $del_records,
99
                delete_serial_issues => $del_serial_issues,
98
            };
100
            };
99
            my $job_id = Koha::BackgroundJob::BatchDeleteItem->new->enqueue($params);
101
            my $job_id = Koha::BackgroundJob::BatchDeleteItem->new->enqueue($params);
100
            $nextop = 'enqueued';
102
            $nextop = 'enqueued';
101
- 

Return to bug 37115