From 5f79daf14702872b92ac20192aeb1d02434039c6 Mon Sep 17 00:00:00 2001 From: Matt Blenkinsop Date: Wed, 30 Apr 2025 14:09:51 +0100 Subject: [PATCH] Bug 38010: (QA follow-up) Move syspref values to config endpoint Signed-off-by: Jonathan Druart --- Koha/REST/V1/Acquisitions/Vendors.pm | 9 +++++++++ acqui/vendors.pl | 16 ---------------- api/v1/swagger/definitions/vendors_config.yaml | 12 ++++++++++++ .../prog/en/modules/acqui/vendors.tt | 8 +------- .../prog/js/vue/components/Vendors/Main.vue | 8 ++++---- 5 files changed, 26 insertions(+), 27 deletions(-) diff --git a/Koha/REST/V1/Acquisitions/Vendors.pm b/Koha/REST/V1/Acquisitions/Vendors.pm index 564a5dbdd95..b508ec36625 100644 --- a/Koha/REST/V1/Acquisitions/Vendors.pm +++ b/Koha/REST/V1/Acquisitions/Vendors.pm @@ -20,6 +20,9 @@ use Modern::Perl; use Mojo::Base 'Mojolicious::Controller'; use Koha::Acquisition::Booksellers; +use Koha::Acquisition::Currencies; + +use C4::Context; use Try::Tiny qw( catch try ); @@ -182,10 +185,16 @@ sub config { my $userflags = C4::Auth::getuserflags( $patron->flags, $patron->id ); my $permissions = Koha::Auth::Permissions->get_authz_from_flags( { flags => $userflags } ); + my @gst_values = map { option => $_ + 0.0 }, split( '\|', C4::Context->preference("TaxRates") ); + return $c->render( status => 200, openapi => { permissions => $permissions, + currencies => Koha::Acquisition::Currencies->search->unblessed, + gst_values => \@gst_values, + edifact => C4::Context->preference('EDIFACT'), + marc_orders => C4::Context->preference('MarcOrderingAutomation'), }, ); } diff --git a/acqui/vendors.pl b/acqui/vendors.pl index fdf77a6f2a4..79d2c337b10 100755 --- a/acqui/vendors.pl +++ b/acqui/vendors.pl @@ -36,20 +36,4 @@ my ( $template, $loggedinuser, $cookie, $userflags ) = get_template_and_user( } ); -my $user_permissions = {}; -my $var_data = $template->{VARS}; -foreach my $key ( keys %{$var_data} ) { - $user_permissions->{$key} = $var_data->{$key} if ( $key =~ /CAN_user_(.*)/ ); -} - -my @gst_values = map { option => $_ + 0.0 }, split( '\|', C4::Context->preference("TaxRates") ); - -$template->param( - user_permissions => $user_permissions, - currencies => Koha::Acquisition::Currencies->search->unblessed, - gst_values => \@gst_values, - edifact => C4::Context->preference('EDIFACT'), - marc_orders => C4::Context->preference('MarcOrderingAutomation'), -); - output_html_with_http_headers $query, $cookie, $template->output; diff --git a/api/v1/swagger/definitions/vendors_config.yaml b/api/v1/swagger/definitions/vendors_config.yaml index f9e71160cd1..7c52ced670d 100644 --- a/api/v1/swagger/definitions/vendors_config.yaml +++ b/api/v1/swagger/definitions/vendors_config.yaml @@ -4,4 +4,16 @@ properties: permissions: type: object description: List of permissions for the user + currencies: + type: array + description: List of currencies + gst_values: + type: array + description: List of GST values + edifact: + type: boolean + description: EDIFACT syspref value + marc_orders: + type: boolean + description: MarcOrderingAutomation syspref value additionalProperties: false diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/vendors.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/vendors.tt index f0db6268e9b..822f5940b1c 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/vendors.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/acqui/vendors.tt @@ -30,13 +30,7 @@ [% INCLUDE 'js-patron-format.inc' %] [% INCLUDE 'js-date-format.inc' %] [% INCLUDE 'format_price.inc' %] - + [% Asset.js("js/vue/dist/acquisitions.js") | $raw %] [% INCLUDE 'select2.inc' %] [% END %] diff --git a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/Main.vue b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/Main.vue index 907c17ae85c..b41b27f46f4 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/Main.vue +++ b/koha-tmpl/intranet-tmpl/prog/js/vue/components/Vendors/Main.vue @@ -65,11 +65,11 @@ export default { const client = APIClient.acquisition; client.config.get("vendors").then(config => { this.userPermissions = config.permissions; - this.config.settings.edifact = edifact; + this.config.settings.edifact = config.edifact; this.config.settings.marcOrderAutomation = - marcOrderAutomation; - this.vendorStore.currencies = currencies; - this.vendorStore.gstValues = gstValues.map(gv => { + config.marcOrderAutomation; + this.vendorStore.currencies = config.currencies; + this.vendorStore.gstValues = config.gst_values.map(gv => { return { label: `${Number(gv.option * 100).format_price()}%`, value: gv.option, -- 2.34.1