Bug 33716: ILL Type Disclaimer - Staff
Update the way Availability is handled Add the new type disclaimer workflow operation after Availability Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
parent
712d7f29ef
commit
0d45394827
|
|
@ -27,7 +27,8 @@ use Koha::Notice::Templates;
|
|||
use Koha::AuthorisedValues;
|
||||
use Koha::Illcomment;
|
||||
use Koha::Illrequests;
|
||||
use Koha::Illrequest::Availability;
|
||||
use Koha::Illrequest::Workflow::Availability;
|
||||
use Koha::Illrequest::Workflow::TypeDisclaimer;
|
||||
use Koha::Libraries;
|
||||
use Koha::Token;
|
||||
|
||||
|
|
@ -106,55 +107,42 @@ if ( $backends_available ) {
|
|||
|
||||
|
||||
} elsif ( $op eq 'create' ) {
|
||||
# We're in the process of creating a request
|
||||
# Load the ILL backend
|
||||
my $request = Koha::Illrequest->new->load_backend( $params->{backend} );
|
||||
# Does this backend enable us to insert an availability stage and should
|
||||
# we? If not, proceed as normal.
|
||||
if (
|
||||
# If the user has elected to continue with the request despite
|
||||
# having viewed availability info, this flag will be set
|
||||
C4::Context->preference("ILLCheckAvailability")
|
||||
&& !$params->{checked_availability}
|
||||
&& $request->_backend_capability( 'should_display_availability', $params )
|
||||
) {
|
||||
# Establish which of the installed availability providers
|
||||
# can service our metadata
|
||||
my $availability = Koha::Illrequest::Availability->new($params);
|
||||
my $services = $availability->get_services({
|
||||
ui_context => 'staff'
|
||||
});
|
||||
if (scalar @{$services} > 0) {
|
||||
# Modify our method so we use the correct part of the
|
||||
# template
|
||||
$op = 'availability';
|
||||
$params->{method} = 'availability';
|
||||
delete $params->{stage};
|
||||
# Prepare the metadata we're sending them
|
||||
my $metadata = $availability->prep_metadata($params);
|
||||
$template->param(
|
||||
whole => $params,
|
||||
metadata => $metadata,
|
||||
services_json => scalar encode_json($services),
|
||||
services => $services
|
||||
);
|
||||
} else {
|
||||
# No services can process this metadata, so continue as normal
|
||||
my $backend_result = $request->backend_create($params);
|
||||
$template->param(
|
||||
whole => $backend_result,
|
||||
request => $request
|
||||
);
|
||||
handle_commit_maybe($backend_result, $request);
|
||||
}
|
||||
|
||||
# Before request creation operations - Preparation
|
||||
my $availability =
|
||||
Koha::Illrequest::Workflow::Availability->new( $params, 'staff' );
|
||||
my $type_disclaimer =
|
||||
Koha::Illrequest::Workflow::TypeDisclaimer->new( $params, 'staff' );
|
||||
|
||||
# ILLCheckAvailability operation
|
||||
if ($availability->show_availability($request)) {
|
||||
$op = 'availability';
|
||||
$template->param(
|
||||
$availability->availability_template_params($params)
|
||||
)
|
||||
# ILLModuleDisclaimerByType operation
|
||||
} elsif ( $type_disclaimer->show_type_disclaimer($request)) {
|
||||
$op = 'typedisclaimer';
|
||||
$template->param(
|
||||
$type_disclaimer->type_disclaimer_template_params($params)
|
||||
);
|
||||
# Ready to create ILL request
|
||||
} else {
|
||||
my $backend_result = $request->backend_create($params);
|
||||
|
||||
# After creation actions
|
||||
if ( $params->{type_disclaimer_submitted} ) {
|
||||
$type_disclaimer->after_request_created($params, $request);
|
||||
}
|
||||
|
||||
$template->param(
|
||||
whole => $backend_result,
|
||||
request => $request
|
||||
);
|
||||
handle_commit_maybe($backend_result, $request);
|
||||
}
|
||||
|
||||
} elsif ( $op eq 'migrate' ) {
|
||||
# We're in the process of migrating a request
|
||||
my $request = Koha::Illrequests->find($params->{illrequest_id});
|
||||
|
|
@ -313,7 +301,7 @@ if ( $backends_available ) {
|
|||
# Prepare availability searching, if required
|
||||
# Get the definition for the z39.50 plugin
|
||||
if ( C4::Context->preference('ILLCheckAvailability') ) {
|
||||
my $availability = Koha::Illrequest::Availability->new($request->metadata);
|
||||
my $availability = Koha::Illrequest::Workflow::Availability->new($request->metadata);
|
||||
my $services = $availability->get_services({
|
||||
ui_context => 'partners',
|
||||
metadata => {
|
||||
|
|
|
|||
|
|
@ -811,6 +811,45 @@
|
|||
[% INCLUDE 'ill-availability-table.inc' service=service %]
|
||||
[% END %]
|
||||
</div>
|
||||
[% ELSIF query_type == 'typedisclaimer' %]
|
||||
<!-- typedisclaimer -->
|
||||
<h1>Request type disclaimer</h1>
|
||||
<div id="results" class="page-section">
|
||||
<form method="post" id="typedisclaimer-form">
|
||||
<fieldset class="rows">
|
||||
[% disclaimer.text | $raw %]
|
||||
[% SET disc_av_category_code = AuthorisedValues.GetAuthValueDropbox(disclaimer.av_cat) %]
|
||||
[% IF disc_av_category_code.count %]
|
||||
<br>
|
||||
<select name="type_disclaimer_value">
|
||||
[% FOR av_option IN disc_av_category_code %]
|
||||
<option value="[% av_option.lib_opac | html %]">[% av_option.lib_opac | html %]</option>
|
||||
[% END %]
|
||||
</select>
|
||||
[% END %]
|
||||
</fieldset>
|
||||
<fieldset class="action">
|
||||
[% FOREACH key IN whole.keys %]
|
||||
[% value = whole.$key %]
|
||||
[% IF key != 'method' && key != 'custom_key' && key != 'custom_value' %]
|
||||
<input type="hidden" name="[% key | html %]" value="[% value | html %]">
|
||||
[% END %]
|
||||
[% END %]
|
||||
[% custom_keys = whole.custom_key.split('\0') %]
|
||||
[% custom_values = whole.custom_value.split('\0') %]
|
||||
[% i = 0 %]
|
||||
[% FOREACH custom_key IN custom_keys %]
|
||||
<input type="hidden" name="custom_key" value="[% custom_key | html %]">
|
||||
<input type="hidden" name="custom_value" value="[% custom_values.$i | html %]">
|
||||
[% i = i + 1 %]
|
||||
[% END %]
|
||||
<input type="hidden" name="method" value="create" />
|
||||
<input type="hidden" name="stage" value="form">
|
||||
<input type="hidden" name="type_disclaimer_submitted" value="1">
|
||||
<input type="submit" value="Next" />
|
||||
</fieldset>
|
||||
</form>
|
||||
</div>
|
||||
[% ELSE %]
|
||||
<!-- Custom Backend Action -->
|
||||
[% PROCESS $whole.template %]
|
||||
|
|
|
|||
Loading…
Reference in New Issue