diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt
index 0040166b79..f055a794c9 100644
--- a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests.tt
@@ -64,10 +64,6 @@
Your request has been placed. We'll contact you shortly.
-
diff --git a/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests_unauthenticated.tt b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests_unauthenticated.tt
new file mode 100644
index 0000000000..87d419ec96
--- /dev/null
+++ b/koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-illrequests_unauthenticated.tt
@@ -0,0 +1,115 @@
+[% USE raw %]
+[% USE KohaDates %]
+[% USE Branches %]
+[% USE AdditionalContents %]
+[% SET OpacNav = AdditionalContents.get( location => "OpacNav", lang => lang, library => logged_in_user.branchcode || default_branch, blocktitle => 0 ) %]
+[% INCLUDE 'doc-head-open.inc' %]
+
ILL requests
+[% INCLUDE 'doc-head-close.inc' %]
+[% BLOCK cssinclude %]
+[% END %]
+[% INCLUDE 'bodytag.inc' bodyid='opac-illrequests' %]
+
+[% INCLUDE 'masthead.inc' %]
+
+ [% WRAPPER breadcrumbs %]
+ [% IF op != 'list' %]
+ [% WRAPPER breadcrumb_item %]
+
Interlibrary loan requests
+ [% END %]
+ [% END %]
+ [% END #/ WRAPPER breadcrumbs %]
+
+
+
+
+ [% IF op == 'list' %]
+
Interlibrary loan requests
+ [% ELSIF op == 'view' %]
+ View interlibrary loan request
+ [% ELSIF op == 'unauth_view' %]
+ View interlibrary loan request
+ [% ELSIF op == 'availability' %]
+ Interlibrary loan item availability
+ [% ELSIF op == 'typedisclaimer' %]
+ ILL request disclaimer
+ [% ELSIF op == 'confirmautoill' %]
+ Confirming request
+ [% END %]
+
+ [% SET column_class = "col order-first order-md-first order-lg-2" %]
+ [% IF ( OpacNav||loggedinusername ) %]
+ [% column_class = "col-lg-10 order-first order-md-first order-lg-2" %]
+ [% END %]
+
+
+
Your request has been placed. We'll contact you shortly.
+
View interlibrary loan request
+ [% status = request.status %]
+
+
+
+
+
+
+
+
+[% INCLUDE 'opac-bottom.inc' %]
+
+[% BLOCK jsinclude %]
+[% END %]
diff --git a/opac/opac-illrequests-unauthenticated.pl b/opac/opac-illrequests-unauthenticated.pl
new file mode 100755
index 0000000000..ea49119d8d
--- /dev/null
+++ b/opac/opac-illrequests-unauthenticated.pl
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+
+use Modern::Perl;
+
+use JSON qw( decode_json );
+
+use CGI qw ( -utf8 );
+use C4::Auth qw( get_template_and_user );
+use C4::Output qw( output_html_with_http_headers );
+use URI::Escape qw( uri_unescape );
+
+my $query = CGI->new;
+
+my $sessionID = $query->cookie('CGISESSID');
+my $session = C4::Auth::get_session($sessionID);
+my $request =
+ eval { decode_json( uri_unescape( $session->param('ill_request_unauthenticated') ) ) };
+
+my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
+ {
+ template_name => "opac-illrequests_unauthenticated.tt",
+ query => $query,
+ type => "opac",
+ authnotrequired => 1,
+ }
+);
+
+$template->param( request => $request );
+
+output_html_with_http_headers $query, $cookie, $template->output;
diff --git a/opac/opac-illrequests.pl b/opac/opac-illrequests.pl
index 6db3c3ab7d..a5f5e3ac89 100755
--- a/opac/opac-illrequests.pl
+++ b/opac/opac-illrequests.pl
@@ -28,6 +28,7 @@ use C4::Output qw( output_html_with_http_headers );
use Digest::MD5 qw( md5_base64 );
use POSIX qw( strftime );
use String::Random qw( random_string );
+use URI::Escape qw( uri_escape );
use Koha::ILL::Request::Config;
use Koha::ILL::Requests;
@@ -197,7 +198,30 @@ if ( $op eq 'list' ) {
$type_disclaimer->after_request_created( $params, $request );
}
if ( C4::Context->preference('ILLOpacUnauthenticatedRequest') && !$patron ) {
- $op = 'unauth_view';
+ my $sessionID = $query->cookie('CGISESSID');
+ my $session = C4::Auth::get_session($sessionID);
+
+ my $request_unblessed = $request->unblessed;
+ $request_unblessed->{updated} = $request_unblessed->{updated}->ymd;
+ $request_unblessed->{placed} = $request_unblessed->{placed}->ymd;
+ $request_unblessed->{unauthenticated_first_name} =
+ $request->extended_attributes->find( { 'type' => 'unauthenticated_first_name' } )->value;
+ $request_unblessed->{unauthenticated_last_name} =
+ $request->extended_attributes->find( { 'type' => 'unauthenticated_last_name' } )->value;
+ $request_unblessed->{unauthenticated_email} =
+ $request->extended_attributes->find( { 'type' => 'unauthenticated_email' } )->value;
+ $request_unblessed->{metadata} = $request->metadata;
+
+ my $capabilities = $request->capabilities;
+ $request_unblessed->{status} = $capabilities->{ $request->status }->{name};
+ $request_unblessed->{type} = $request->get_type;
+
+ $session->param(
+ 'ill_request_unauthenticated',
+ uri_escape( encode_json($request_unblessed) )
+ );
+ $session->flush;
+ print $query->redirect('/cgi-bin/koha/opac-illrequests-unauthenticated.pl');
} else {
print $query->redirect('/cgi-bin/koha/opac-illrequests.pl?message=2');
exit;