From 92fd65840a8d8c3f915d4ecf545fd5b3eaaebe18 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Fri, 3 Jan 2025 12:15:47 -0100 Subject: [PATCH] Bug 38751: Update Standard ILL backend migrate Make use of newly updated ILL::Request->extended_attributes method instead of creating the query manually The test plan in bug 38819 fails without this patch (page explodes with duplicate ID error). It's the same cause as the one being fixed here in bug 38751 so I'm submitting this here. Signed-off-by: David Nind Signed-off-by: Martin Renvoize Signed-off-by: Katrin Fischer --- Koha/ILL/Backend/Standard.pm | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Koha/ILL/Backend/Standard.pm b/Koha/ILL/Backend/Standard.pm index d3ed496f7f..fbfef9bc52 100644 --- a/Koha/ILL/Backend/Standard.pm +++ b/Koha/ILL/Backend/Standard.pm @@ -698,19 +698,19 @@ sub migrate { my $original_attributes = $original_request->extended_attributes->search( { type => { '-in' => \@default_attributes } } ); - my $request_details = - { map { $_->type => $_->value } ( $original_attributes->as_list ) }; - $request_details->{migrated_from} = $original_request->illrequest_id; - while ( my ( $type, $value ) = each %{$request_details} ) { - Koha::ILL::Request::Attribute->new( - { - illrequest_id => $new_request->illrequest_id, - column_exists( 'illrequestattributes', 'backend' ) ? ( backend => "Standard" ) : (), - type => $type, - value => $value, - } - )->store; - } + my @request_details_array = map { + { + 'type' => $_->type, + 'value' => $_->value, + } + } $original_attributes->as_list; + + push @request_details_array, { + 'type' => 'migrated_from', + 'value' => $original_request->illrequest_id, + }; + + $new_request->extended_attributes( \@request_details_array ); return { error => 0, @@ -993,8 +993,8 @@ sub add_request { my @request_details_array = map { { - 'type' => $_, - 'value' => $request_details->{$_}, + 'type' => $_, + 'value' => $request_details->{$_}, } } keys %{$request_details}; $request->extended_attributes( \@request_details_array );