From fbe99e8e296fcc708b3dfff45ee9b1e7957ddf11 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Tue, 10 Dec 2024 14:42:39 +0000 Subject: [PATCH] Bug 38663: Add AdditionalFields to Library Test plan, k-t-d: 1) Add a new additional field to 'branches': /cgi-bin/koha/admin/additional-fields.pl?tablename=branches 2) Click 'New field'. Add a name. Click Save. 3) Repeat step 2 but repeatable. Repeat again for 2 more of AV category (one repeatable, one not repeatable) 4) Edit a library: /cgi-bin/koha/admin/branches.pl?op=add_form&branchcode=CPL 5) Input various values in the different additional fields. Click 'Submit' 6) Visit the detail page of the library and verify the additional fields data is displayed correctly: /cgi-bin/koha/admin/branches.pl?op=view&branchcode=CPL Signed-off-by: Martin Renvoize Signed-off-by: David Nind Signed-off-by: Baptiste Wojtkowski --- Koha/Libraries.pm | 2 +- Koha/Library.pm | 2 +- admin/branches.pl | 20 +++++++++++++++++++ .../prog/en/modules/admin/branches.tt | 8 ++++++++ 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/Koha/Libraries.pm b/Koha/Libraries.pm index 869c7053f08..9e50c49bd00 100644 --- a/Koha/Libraries.pm +++ b/Koha/Libraries.pm @@ -28,7 +28,7 @@ use Koha::Items; use Koha::Library; use Koha::Patrons; -use base qw(Koha::Objects); +use base qw(Koha::Objects::Mixin::AdditionalFields Koha::Objects); =head1 NAME diff --git a/Koha/Library.pm b/Koha/Library.pm index f2a050f1f0a..90db8e978c0 100644 --- a/Koha/Library.pm +++ b/Koha/Library.pm @@ -28,7 +28,7 @@ use Koha::StockRotationStages; use Koha::SMTP::Servers; use Koha::Library::Hours; -use base qw(Koha::Object); +use base qw(Koha::Object::Mixin::AdditionalFields Koha::Object); my $cache = Koha::Caches->get_instance(); diff --git a/admin/branches.pl b/admin/branches.pl index bcfead37f69..e6403c92d6d 100755 --- a/admin/branches.pl +++ b/admin/branches.pl @@ -28,6 +28,7 @@ use C4::Context; use C4::Output qw( output_html_with_http_headers ); use C4::Koha; +use Koha::AdditionalFields; use Koha::Database; use Koha::Patrons; use Koha::Items; @@ -50,6 +51,17 @@ my ( $template, $borrowernumber, $cookie ) = get_template_and_user( } ); +if ($branchcode) { + my @additional_fields = Koha::AdditionalFields->search( { tablename => 'branches' } )->as_list; + my @additional_field_values; + @additional_field_values = Koha::Libraries->find($branchcode)->get_additional_field_values_for_template; + + $template->param( + additional_fields => \@additional_fields, + additional_field_values => @additional_field_values, + ); +} + if ( $op eq 'add_form' ) { $template->param( library => Koha::Libraries->find($branchcode), @@ -148,6 +160,10 @@ if ( $op eq 'add_form' ) { $index++; } + my @additional_fields = + Koha::Libraries->find($branchcode)->prepare_cgi_additional_field_values( $input, 'branches' ); + Koha::Libraries->find($branchcode)->set_additional_fields( \@additional_fields ); + push @messages, { type => 'message', code => 'success_on_update' }; } ); @@ -209,6 +225,10 @@ if ( $op eq 'add_form' ) { $index++; } + my @additional_fields = + Koha::Libraries->find($branchcode)->prepare_cgi_additional_field_values( $input, 'branches' ); + Koha::Libraries->find($branchcode)->set_additional_fields( \@additional_fields ); + push @messages, { type => 'message', code => 'success_on_insert' }; } ); diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt index 7155bbe3e2e..0c29c2cb62a 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/branches.tt @@ -370,6 +370,7 @@ + [% INCLUDE 'additional-fields-entry.inc' available=additional_fields values=additional_field_values wrap_fieldset=1 %]
Cancel @@ -613,6 +614,12 @@ + [% IF additional_fields && additional_field_values %] +
+

Additional fields

+ [% INCLUDE 'additional-fields-display.inc' available=additional_fields values=additional_field_values %] +
+ [% END %] [% IF OpacLibraryInfo %]
@@ -629,6 +636,7 @@ [% MACRO jsinclude BLOCK %] [% Asset.js("js/admin-menu.js") | $raw %] + [% Asset.js("js/additional-fields-entry.js") | $raw %] [% INCLUDE 'calendar.inc' %] [% INCLUDE 'datatables.inc' %] [% Asset.js( "lib/codemirror/codemirror.min.js" ) | $raw %] -- 2.39.5